Source release v2.1.3-2-789 + third_party libs
Change-Id: I8648756dab3fe1f53d6da18b83cd1294581d1abe
This commit is contained in:
@@ -13,31 +13,37 @@ class IFileFactory;
|
||||
class File::Impl {
|
||||
public:
|
||||
explicit Impl(cdm::Host* const host) : host_(host) {}
|
||||
FILE* file_;
|
||||
|
||||
static void RegisterFileFactory(IFileFactory* factory) {
|
||||
factory_ = factory;
|
||||
}
|
||||
static IFileFactory* factory_;
|
||||
|
||||
virtual bool Exists(const std::string& name);
|
||||
virtual bool Open(const std::string& name);
|
||||
virtual bool Close();
|
||||
virtual bool Remove(const std::string& name);
|
||||
virtual size_t Read(char* buffer, size_t bytes);
|
||||
virtual size_t Write(const char* buffer, size_t bytes);
|
||||
virtual size_t FileSize(const std::string& name);
|
||||
virtual ssize_t Read(char* buffer, size_t bytes);
|
||||
virtual ssize_t Write(const char* buffer, size_t bytes);
|
||||
virtual ssize_t FileSize(const std::string& name);
|
||||
|
||||
private:
|
||||
static IFileFactory* factory_;
|
||||
friend class File;
|
||||
|
||||
cdm::Host* const host_;
|
||||
std::string fname_;
|
||||
};
|
||||
|
||||
class IFileFactory {
|
||||
protected:
|
||||
IFileFactory(){File::Impl::RegisterFileFactory(this);}
|
||||
virtual ~IFileFactory(){}
|
||||
IFileFactory() {
|
||||
File::Impl::RegisterFileFactory(this);
|
||||
}
|
||||
|
||||
virtual ~IFileFactory() {}
|
||||
|
||||
public:
|
||||
virtual File::Impl* NewFileImpl () = 0;
|
||||
virtual File::Impl* NewFileImpl() = 0;
|
||||
};
|
||||
|
||||
} // namespace wvcdm
|
||||
|
||||
Reference in New Issue
Block a user