Cortex  10.0.0-a4
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
IECore::FileIndexedIO Class Reference

#include <FileIndexedIO.h>

+ Inheritance diagram for IECore::FileIndexedIO:

Public Member Functions

 IE_CORE_DECLARERUNTIMETYPED (FileIndexedIO, StreamIndexedIO)
 
 FileIndexedIO (const std::string &path, const IndexedIO::EntryIDList &root, IndexedIO::OpenMode mode)
 Open or create an file at the given root location.
 
const std::string & fileName () const
 Returns the full file name accessed by this object.
 
- Public Member Functions inherited from IECore::StreamIndexedIO
 IE_CORE_DECLARERUNTIMETYPED (StreamIndexedIO, IndexedIO)
 
IndexedIO::OpenMode openMode () const override
 Returns the mode with which the interface was created.
 
void path (IndexedIO::EntryIDList &result) const override
 Retrieve the current directory. Returns empty list at the root location.
 
bool hasEntry (const IndexedIO::EntryID &name) const override
 Returns whether the given entry exists in the file.
 
const IndexedIO::EntryIDcurrentEntryId () const override
 Returns the EntryID for the current directory in the file. The root location has a special name "/".
 
void entryIds (IndexedIO::EntryIDList &names) const override
 Stores in the given array all the ids of all files and directories.
 
void entryIds (IndexedIO::EntryIDList &names, IndexedIO::EntryType type) const override
 
IndexedIOPtr subdirectory (const IndexedIO::EntryID &name, IndexedIO::MissingBehaviour missingBehaviour=IndexedIO::ThrowIfMissing) override
 Returns a new interface for the child or if missing then consults missingBehaviour and throws exception if ThrowIfMissing,.
 
ConstIndexedIOPtr subdirectory (const IndexedIO::EntryID &name, IndexedIO::MissingBehaviour missingBehaviour=IndexedIO::ThrowIfMissing) const override
 Returns read-only interface for the child directory or if missing then consults missingBehaviour and throws exception if.
 
IndexedIO::Entry entry (const IndexedIO::EntryID &name) const override
 Return details of a specific child entry or raises an exception if it doesn't exist.
 
IndexedIOPtr createSubdirectory (const IndexedIO::EntryID &name) override
 Creates a subdirectory and returns a writable interface for it or Throws an exception if the subdirectory already exists.
 
void remove (const IndexedIO::EntryID &name) override
 
void removeAll () override
 
IndexedIOPtr parentDirectory () override
 Returns a new interface for the parent of this node in the file or a NULL pointer if it's the root.
 
ConstIndexedIOPtr parentDirectory () const override
 Returns a read-only interface for the parent of this node in the file or a NULL pointer if it's the root.
 
IndexedIOPtr directory (const IndexedIO::EntryIDList &path, IndexedIO::MissingBehaviour missingBehaviour=IndexedIO::ThrowIfMissing) override
 Returns a new interface for the given path in the file.
 
ConstIndexedIOPtr directory (const IndexedIO::EntryIDList &path, IndexedIO::MissingBehaviour missingBehaviour=IndexedIO::ThrowIfMissing) const override
 Returns a read-only interface for the given path in the file.
 
void commit () override
 
void write (const IndexedIO::EntryID &name, const float *x, unsigned long arrayLength) override
 
void write (const IndexedIO::EntryID &name, const double *x, unsigned long arrayLength) override
 
void write (const IndexedIO::EntryID &name, const half *x, unsigned long arrayLength) override
 
void write (const IndexedIO::EntryID &name, const int *x, unsigned long arrayLength) override
 
void write (const IndexedIO::EntryID &name, const int64_t *x, unsigned long arrayLength) override
 
void write (const IndexedIO::EntryID &name, const uint64_t *x, unsigned long arrayLength) override
 
void write (const IndexedIO::EntryID &name, const unsigned int *x, unsigned long arrayLength) override
 
void write (const IndexedIO::EntryID &name, const char *x, unsigned long arrayLength) override
 
void write (const IndexedIO::EntryID &name, const unsigned char *x, unsigned long arrayLength) override
 
void write (const IndexedIO::EntryID &name, const std::string *x, unsigned long arrayLength) override
 
void write (const IndexedIO::EntryID &name, const short *x, unsigned long arrayLength) override
 
void write (const IndexedIO::EntryID &name, const unsigned short *x, unsigned long arrayLength) override
 
void write (const IndexedIO::EntryID &name, const InternedString *x, unsigned long arrayLength) override
 
void write (const IndexedIO::EntryID &name, const float &x) override
 
void write (const IndexedIO::EntryID &name, const double &x) override
 
void write (const IndexedIO::EntryID &name, const half &x) override
 
void write (const IndexedIO::EntryID &name, const int &x) override
 
void write (const IndexedIO::EntryID &name, const int64_t &x) override
 
void write (const IndexedIO::EntryID &name, const uint64_t &x) override
 
void write (const IndexedIO::EntryID &name, const std::string &x) override
 
void write (const IndexedIO::EntryID &name, const unsigned int &x) override
 
void write (const IndexedIO::EntryID &name, const char &x) override
 
void write (const IndexedIO::EntryID &name, const unsigned char &x) override
 
void write (const IndexedIO::EntryID &name, const short &x) override
 
void write (const IndexedIO::EntryID &name, const unsigned short &x) override
 
void read (const IndexedIO::EntryID &name, float *&x, unsigned long arrayLength) const override
 
void read (const IndexedIO::EntryID &name, double *&x, unsigned long arrayLength) const override
 
void read (const IndexedIO::EntryID &name, half *&x, unsigned long arrayLength) const override
 
void read (const IndexedIO::EntryID &name, int *&x, unsigned long arrayLength) const override
 
void read (const IndexedIO::EntryID &name, int64_t *&x, unsigned long arrayLength) const override
 
void read (const IndexedIO::EntryID &name, uint64_t *&x, unsigned long arrayLength) const override
 
void read (const IndexedIO::EntryID &name, unsigned int *&x, unsigned long arrayLength) const override
 
void read (const IndexedIO::EntryID &name, char *&x, unsigned long arrayLength) const override
 
void read (const IndexedIO::EntryID &name, unsigned char *&x, unsigned long arrayLength) const override
 
void read (const IndexedIO::EntryID &name, std::string *&x, unsigned long arrayLength) const override
 
void read (const IndexedIO::EntryID &name, short *&x, unsigned long arrayLength) const override
 
void read (const IndexedIO::EntryID &name, unsigned short *&x, unsigned long arrayLength) const override
 
void read (const IndexedIO::EntryID &name, InternedString *&x, unsigned long arrayLength) const override
 
void read (const IndexedIO::EntryID &name, float &x) const override
 
void read (const IndexedIO::EntryID &name, double &x) const override
 
void read (const IndexedIO::EntryID &name, half &x) const override
 
void read (const IndexedIO::EntryID &name, int &x) const override
 
void read (const IndexedIO::EntryID &name, int64_t &x) const override
 
void read (const IndexedIO::EntryID &name, uint64_t &x) const override
 
void read (const IndexedIO::EntryID &name, std::string &x) const override
 
void read (const IndexedIO::EntryID &name, unsigned int &x) const override
 
void read (const IndexedIO::EntryID &name, char &x) const override
 
void read (const IndexedIO::EntryID &name, unsigned char &x) const override
 
void read (const IndexedIO::EntryID &name, short &x) const override
 
void read (const IndexedIO::EntryID &name, unsigned short &x) const override
 
- Public Member Functions inherited from IECore::IndexedIO
 IE_CORE_DECLARERUNTIMETYPED (IndexedIO, RunTimeTyped)
 
- Public Member Functions inherited from IECore::RunTimeTyped
 IE_CORE_DECLAREMEMBERPTR (RunTimeTyped)
 
virtual TypeId typeId () const
 
virtual const char * typeName () const
 
virtual bool isInstanceOf (TypeId typeId) const
 
virtual bool isInstanceOf (const char *typeName) const
 
- Public Member Functions inherited from IECore::RefCounted
 IE_CORE_DECLAREMEMBERPTR (RefCounted)
 
void addRef () const
 Add a reference to the current object.
 
void removeRef () const
 Remove a reference from the current object.
 
RefCount refCount () const
 Returns the current reference count.
 

Static Public Member Functions

static IndexedIOPtr create (const std::string &path, const IndexedIO::EntryIDList &root, IndexedIO::OpenMode mode)
 
static bool canRead (const std::string &path)
 
- Static Public Member Functions inherited from IECore::IndexedIO
static IndexedIOPtr create (const std::string &path, const EntryIDList &root, IndexedIO::OpenMode mode)
 
static void supportedExtensions (std::vector< std::string > &extensions)
 
- Static Public Member Functions inherited from IECore::RunTimeTyped
static TypeId staticTypeId ()
 Returns the TypeId for this class, without needing an instance.
 
static const char * staticTypeName ()
 Returns the type name for this class, without needing an instance.
 
static TypeId baseTypeId ()
 
static const char * baseTypeName ()
 
static bool inheritsFrom (TypeId typeId)
 Returns true if this class inherits from the specified type.
 
static bool inheritsFrom (const char *typeName)
 Returns true if this class inherits from the specified type.
 
static bool inheritsFrom (TypeId type, TypeId baseType)
 Returns true if type inherits from baseType.
 
static bool inheritsFrom (const char *typeName, const char *baseTypeName)
 Returns true if typeName inherits from baseTypeName.
 
static TypeId baseTypeId (TypeId typeId)
 Returns the base type of the given type, or InvalidTypeId if no such base exists.
 
static const std::vector< TypeId > & baseTypeIds (TypeId typeId)
 
static const std::set< TypeId > & derivedTypeIds (TypeId typeId)
 
static TypeId typeIdFromTypeName (const char *typeName)
 
static const char * typeNameFromTypeId (TypeId typeId)
 
static void registerType (TypeId derivedTypeId, const char *derivedTypeName, TypeId baseTypeId)
 Allows external modules to register their own type ids.
 

Protected Member Functions

 FileIndexedIO (StreamIndexedIO::Node &rootNode)
 
IndexedIOduplicate (StreamIndexedIO::Node &rootNode) const override
 
- Protected Member Functions inherited from IECore::StreamIndexedIO
 IE_CORE_DECLAREPTR (Index)
 
 IE_CORE_DECLAREPTR (Node)
 
 IE_CORE_DECLAREPTR (StreamFile)
 
 StreamIndexedIO ()
 Create an instance with unnitialized state. Must call open() method.
 
 StreamIndexedIO (Node &node)
 Constructor based on the node.
 
void open (StreamFilePtr file, const IndexedIO::EntryIDList &root)
 Opens a file using the given IndexedFile accessor.
 
void remove (const IndexedIO::EntryID &name, bool throwIfNonExistent)
 
template<typename T >
void write (const IndexedIO::EntryID &name, const T *x, unsigned long arrayLength)
 
template<typename T >
void rawWrite (const IndexedIO::EntryID &name, const T *x, unsigned long arrayLength)
 
template<typename T >
void read (const IndexedIO::EntryID &name, T *&x, unsigned long arrayLength) const
 
template<typename T >
void rawRead (const IndexedIO::EntryID &name, T *&x, unsigned long arrayLength) const
 
template<typename T >
void write (const IndexedIO::EntryID &name, const T &x)
 
template<typename T >
void rawWrite (const IndexedIO::EntryID &name, const T &x)
 
template<typename T >
void read (const IndexedIO::EntryID &name, T &x) const
 
template<typename T >
void rawRead (const IndexedIO::EntryID &name, T &x) const
 
virtual IndexedIOduplicate (Node &rootNode) const =0
 
void flush ()
 
StreamFilestreamFile () const
 
- Protected Member Functions inherited from IECore::IndexedIO
virtual void readable (const IndexedIO::EntryID &name) const
 
virtual void writable (const IndexedIO::EntryID &name) const
 

Additional Inherited Members

- Public Types inherited from IECore::IndexedIO
enum  OpenModeFlags {
  Read = 1L << 0, Write = 1L << 1, Append = 1L << 2, Shared = 1L << 3,
  Exclusive = 1L << 4
}
 General enums and low level structures.
 
enum  EntryType { Directory =0, File }
 
enum  DataType {
  Invalid =0, Float, FloatArray, Double,
  DoubleArray, Int, IntArray, Long,
  LongArray, String, StringArray, UInt,
  UIntArray, Char, CharArray, UChar,
  UCharArray, Half, HalfArray, Short,
  ShortArray, UShort, UShortArray, Int64,
  Int64Array, UInt64, UInt64Array, InternedStringArray
}
 
enum  MissingBehaviour { ThrowIfMissing = 0, NullIfMissing, CreateIfMissing }
 Enum used to specify behavior when querying child directories.
 
typedef unsigned OpenMode
 
typedef InternedString EntryID
 
typedef std::vector< EntryIDEntryIDList
 
typedef IndexedIOPtr(* CreatorFn) (const std::string &, const EntryIDList &, IndexedIO::OpenMode)
 
- Public Types inherited from IECore::RunTimeTyped
typedef RefCounted BaseClass
 A typedef for the class this class derives from. All RunTimeTyped classes define this typedef.
 
- Public Types inherited from IECore::RefCounted
typedef size_t RefCount
 
- Static Public Attributes inherited from IECore::IndexedIO
static const EntryID rootName
 
static const EntryIDList rootPath
 
- Protected Types inherited from IECore::RunTimeTyped
typedef std::map< TypeId, TypeIdBaseTypeRegistryMap
 
typedef std::map< TypeId, std::vector< TypeId > > BaseTypesRegistryMap
 
typedef std::map< TypeId, std::set< TypeId > > DerivedTypesRegistryMap
 
typedef tbb::spin_rw_mutex Mutex
 
typedef std::map< TypeId, std::string > TypeIdsToTypeNamesMap
 
typedef std::map< std::string, TypeIdTypeNamesToTypeIdsMap
 
- Static Protected Member Functions inherited from IECore::IndexedIO
static void validateOpenMode (IndexedIO::OpenMode &mode)
 
- Static Protected Member Functions inherited from IECore::RunTimeTyped
static BaseTypeRegistryMap & baseTypeRegistry ()
 
static DerivedTypesRegistryMap & derivedTypesRegistry ()
 
static BaseTypesRegistryMap & completeBaseTypesRegistry ()
 
static DerivedTypesRegistryMap & completeDerivedTypesRegistry ()
 
static void derivedTypeIdsWalk (TypeId typeId, std::set< TypeId > &)
 
static TypeIdsToTypeNamesMap & typeIdsToTypeNames ()
 
static TypeNamesToTypeIdsMap & typeNamesToTypeIds ()
 
- Static Protected Attributes inherited from IECore::RunTimeTyped
static Mutex g_baseTypeIdsMutex
 
static Mutex g_derivedTypeIdsMutex
 

Detailed Description

An implementation of StreamIndexedIO which operates within a single file on disk.


The documentation for this class was generated from the following file: