Cortex
10.0.0-a4
|
#include <IndexedIO.h>
Classes | |
struct | Description |
class | Entry |
A representation of a single file/directory. More... | |
Public Types | |
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< EntryID > | EntryIDList |
typedef IndexedIOPtr(* | CreatorFn) (const std::string &, const EntryIDList &, IndexedIO::OpenMode) |
![]() | |
typedef RefCounted | BaseClass |
A typedef for the class this class derives from. All RunTimeTyped classes define this typedef. | |
![]() | |
typedef size_t | RefCount |
Public Member Functions | |
IE_CORE_DECLARERUNTIMETYPED (IndexedIO, RunTimeTyped) | |
virtual IndexedIO::OpenMode | openMode () const =0 |
Returns the mode with which the interface was created. | |
virtual void | path (IndexedIO::EntryIDList &) const =0 |
Retrieve the current directory. Returns empty list at the root location. | |
virtual bool | hasEntry (const IndexedIO::EntryID &name) const =0 |
Returns whether the given entry exists in the file. | |
virtual const IndexedIO::EntryID & | currentEntryId () const =0 |
Returns the EntryID for the current directory in the file. The root location has a special name "/". | |
virtual void | entryIds (IndexedIO::EntryIDList &names) const =0 |
Stores in the given array all the ids of all files and directories. | |
virtual void | entryIds (IndexedIO::EntryIDList &names, IndexedIO::EntryType type) const =0 |
virtual IndexedIOPtr | subdirectory (const IndexedIO::EntryID &name, MissingBehaviour missingBehaviour=ThrowIfMissing)=0 |
Returns a new interface for the child or if missing then consults missingBehaviour and throws exception if ThrowIfMissing,. | |
virtual ConstIndexedIOPtr | subdirectory (const IndexedIO::EntryID &name, MissingBehaviour missingBehaviour=ThrowIfMissing) const =0 |
Returns read-only interface for the child directory or if missing then consults missingBehaviour and throws exception if. | |
virtual IndexedIO::Entry | entry (const IndexedIO::EntryID &name) const =0 |
Return details of a specific child entry or raises an exception if it doesn't exist. | |
virtual IndexedIOPtr | createSubdirectory (const IndexedIO::EntryID &name)=0 |
Creates a subdirectory and returns a writable interface for it or Throws an exception if the subdirectory already exists. | |
virtual void | remove (const IndexedIO::EntryID &name)=0 |
virtual void | removeAll ()=0 |
virtual void | commit ()=0 |
virtual IndexedIOPtr | parentDirectory ()=0 |
Returns a new interface for the parent of this node in the file or a NULL pointer if it's the root. | |
virtual ConstIndexedIOPtr | parentDirectory () const =0 |
Returns a read-only interface for the parent of this node in the file or a NULL pointer if it's the root. | |
virtual IndexedIOPtr | directory (const IndexedIO::EntryIDList &path, MissingBehaviour missingBehaviour=ThrowIfMissing)=0 |
Returns a new interface for the given path in the file. | |
virtual ConstIndexedIOPtr | directory (const IndexedIO::EntryIDList &path, MissingBehaviour missingBehaviour=ThrowIfMissing) const =0 |
Returns a read-only interface for the given path in the file. | |
virtual void | write (const IndexedIO::EntryID &name, const float *x, unsigned long arrayLength)=0 |
virtual void | write (const IndexedIO::EntryID &name, const double *x, unsigned long arrayLength)=0 |
virtual void | write (const IndexedIO::EntryID &name, const half *x, unsigned long arrayLength)=0 |
virtual void | write (const IndexedIO::EntryID &name, const int *x, unsigned long arrayLength)=0 |
virtual void | write (const IndexedIO::EntryID &name, const int64_t *x, unsigned long arrayLength)=0 |
virtual void | write (const IndexedIO::EntryID &name, const uint64_t *x, unsigned long arrayLength)=0 |
virtual void | write (const IndexedIO::EntryID &name, const unsigned int *x, unsigned long arrayLength)=0 |
virtual void | write (const IndexedIO::EntryID &name, const char *x, unsigned long arrayLength)=0 |
virtual void | write (const IndexedIO::EntryID &name, const unsigned char *x, unsigned long arrayLength)=0 |
virtual void | write (const IndexedIO::EntryID &name, const short *x, unsigned long arrayLength)=0 |
virtual void | write (const IndexedIO::EntryID &name, const unsigned short *x, unsigned long arrayLength)=0 |
virtual void | write (const IndexedIO::EntryID &name, const std::string *x, unsigned long arrayLength)=0 |
virtual void | write (const IndexedIO::EntryID &name, const InternedString *x, unsigned long arrayLength)=0 |
virtual void | write (const IndexedIO::EntryID &name, const float &x)=0 |
virtual void | write (const IndexedIO::EntryID &name, const double &x)=0 |
virtual void | write (const IndexedIO::EntryID &name, const half &x)=0 |
virtual void | write (const IndexedIO::EntryID &name, const int &x)=0 |
virtual void | write (const IndexedIO::EntryID &name, const int64_t &x)=0 |
virtual void | write (const IndexedIO::EntryID &name, const uint64_t &x)=0 |
virtual void | write (const IndexedIO::EntryID &name, const std::string &x)=0 |
virtual void | write (const IndexedIO::EntryID &name, const unsigned int &x)=0 |
virtual void | write (const IndexedIO::EntryID &name, const char &x)=0 |
virtual void | write (const IndexedIO::EntryID &name, const unsigned char &x)=0 |
virtual void | write (const IndexedIO::EntryID &name, const short &x)=0 |
virtual void | write (const IndexedIO::EntryID &name, const unsigned short &x)=0 |
virtual void | read (const IndexedIO::EntryID &name, float *&x, unsigned long arrayLength) const =0 |
virtual void | read (const IndexedIO::EntryID &name, double *&x, unsigned long arrayLength) const =0 |
virtual void | read (const IndexedIO::EntryID &name, half *&x, unsigned long arrayLength) const =0 |
virtual void | read (const IndexedIO::EntryID &name, int *&x, unsigned long arrayLength) const =0 |
virtual void | read (const IndexedIO::EntryID &name, int64_t *&x, unsigned long arrayLength) const =0 |
virtual void | read (const IndexedIO::EntryID &name, uint64_t *&x, unsigned long arrayLength) const =0 |
virtual void | read (const IndexedIO::EntryID &name, unsigned int *&x, unsigned long arrayLength) const =0 |
virtual void | read (const IndexedIO::EntryID &name, char *&x, unsigned long arrayLength) const =0 |
virtual void | read (const IndexedIO::EntryID &name, unsigned char *&x, unsigned long arrayLength) const =0 |
virtual void | read (const IndexedIO::EntryID &name, short *&x, unsigned long arrayLength) const =0 |
virtual void | read (const IndexedIO::EntryID &name, unsigned short *&x, unsigned long arrayLength) const =0 |
virtual void | read (const IndexedIO::EntryID &name, std::string *&x, unsigned long arrayLength) const =0 |
virtual void | read (const IndexedIO::EntryID &name, InternedString *&x, unsigned long arrayLength) const =0 |
virtual void | read (const IndexedIO::EntryID &name, float &x) const =0 |
virtual void | read (const IndexedIO::EntryID &name, double &x) const =0 |
virtual void | read (const IndexedIO::EntryID &name, half &x) const =0 |
virtual void | read (const IndexedIO::EntryID &name, int &x) const =0 |
virtual void | read (const IndexedIO::EntryID &name, int64_t &x) const =0 |
virtual void | read (const IndexedIO::EntryID &name, uint64_t &x) const =0 |
virtual void | read (const IndexedIO::EntryID &name, std::string &x) const =0 |
virtual void | read (const IndexedIO::EntryID &name, unsigned int &x) const =0 |
virtual void | read (const IndexedIO::EntryID &name, char &x) const =0 |
virtual void | read (const IndexedIO::EntryID &name, unsigned char &x) const =0 |
virtual void | read (const IndexedIO::EntryID &name, short &x) const =0 |
virtual void | read (const IndexedIO::EntryID &name, unsigned short &x) const =0 |
![]() | |
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 |
![]() | |
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 EntryIDList &root, IndexedIO::OpenMode mode) |
static void | supportedExtensions (std::vector< std::string > &extensions) |
![]() | |
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. | |
Static Public Attributes | |
static const EntryID | rootName |
static const EntryIDList | rootPath |
Protected Member Functions | |
virtual void | readable (const IndexedIO::EntryID &name) const |
virtual void | writable (const IndexedIO::EntryID &name) const |
Static Protected Member Functions | |
static void | validateOpenMode (IndexedIO::OpenMode &mode) |
![]() | |
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 () |
Additional Inherited Members | |
![]() | |
typedef std::map< TypeId, TypeId > | BaseTypeRegistryMap |
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, TypeId > | TypeNamesToTypeIdsMap |
![]() | |
static Mutex | g_baseTypeIdsMutex |
static Mutex | g_derivedTypeIdsMutex |
Abstract interface to define operations on a random-access indexed input/output device. All methods throw an instance of IOException, or one of its subclasses, if an error is encountered.
|
pure virtual |
Commit the contents of the current directory to the file, further changes on this directory or it's subdirectories are not allowed. This helps freeing memory and also gives hints to the implementation classes to structure the file format in a sensible way. The commit() method is called by Object::save function. Any IndexedIO instances to child directories will be in a invalid state and should not be used after commit is called.
Implemented in IECore::StreamIndexedIO.
|
static |
Create an instance of a subclass which is able to open the IndexedIO structure found at "path". Files can be opened for Read, Overwrite, or Append. During "Read" operations it is not permitted to make any modifications to the underlying files. When opening a device in "Write" mode its contents below the root directory are removed. For "Append" operations it is possible to write new files, or overwrite existing ones. It is not possible to overwrite entire directories, however.
path | A file or directory on disk. The appropriate reader for reading/writing is determined by the path's extension. |
root | The root point to 'mount' the structure. |
mode | A bitwise-ORed combination of constants which determine how the file system should be accessed. |
|
pure virtual |
Read a float array from an existing file.
name | The name of the file to be read |
x | The buffer to fill. If 0 is passed, then memory is allocated and should be freed by the caller. |
arrayLength | The number of elements in the array |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Read a double array from an existing file.
name | The name of the file to be read |
x | The buffer to fill. If 0 is passed, then memory is allocated and should be freed by the caller. |
arrayLength | The number of elements in the array |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Read a half array from an existing file.
name | The name of the file to be read |
x | The buffer to fill. If 0 is passed, then memory is allocated and should be freed by the caller. |
arrayLength | The number of elements in the array |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Read an int array from an existing file.
name | The name of the file to be read |
x | The buffer to fill. If 0 is passed, then memory is allocated and should be freed by the caller. |
arrayLength | The number of elements in the array |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Read a long array from an existing file.
name | The name of the file to be read |
x | The buffer to fill. If 0 is passed, then memory is allocated and should be freed by the caller. |
arrayLength | The number of elements in the array |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Read a long array from an existing file.
name | The name of the file to be read |
x | The buffer to fill. If 0 is passed, then memory is allocated and should be freed by the caller. |
arrayLength | The number of elements in the array |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Read an unsigned int array from an existing file.
name | The name of the file to be read |
x | The buffer to fill. If 0 is passed, then memory is allocated and should be freed by the caller. |
arrayLength | The number of elements in the array |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Read a char array from an existing file.
name | The name of the file to be read |
x | The buffer to fill. If 0 is passed, then memory is allocated and should be freed by the caller. |
arrayLength | The number of elements in the array |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Read an unsigned char array from an existing file.
name | The name of the file to be read |
x | The buffer to fill. If 0 is passed, then memory is allocated and should be freed by the caller. |
arrayLength | The number of elements in the array |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Read a short array from an existing file.
name | The name of the file to be read |
x | The buffer to fill. If 0 is passed, then memory is allocated and should be freed by the caller. |
arrayLength | The number of elements in the array |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Read an unsigned short array from an existing file.
name | The name of the file to be read |
x | The buffer to fill. If 0 is passed, then memory is allocated and should be freed by the caller. |
arrayLength | The number of elements in the array |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Read a string array from an existing file.
name | The name of the file to be read |
x | The buffer to fill. If 0 is passed, then memory is allocated and should be freed by the caller. |
arrayLength | The number of elements in the array |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Read an InternedString array from an existing file
name | The name of the file to be read |
x | The buffer to fill. If 0 is passed, then memory is allocated and should be freed by the caller. |
arrayLength | The number of elements in the array |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Read a float from an existing file.
name | The name of the file to be read |
x | Returns the data read. |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Read a double from an existing file
name | The name of the file to be read |
x | Returns the data read. |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Read a half from an existing file
name | The name of the file to be read |
x | Returns the data read. |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Read an int from an existing file
name | The name of the file to be read |
x | Returns the data read. |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Read a long from an existing file
name | The name of the file to be read |
x | Returns the data read. |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Read a long from an existing file
name | The name of the file to be read |
x | Returns the data read. |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Read a string from an existing file
name | The name of the file to be read |
x | Returns the data read. |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Read an unsigned int from an existing file
name | The name of the file to be read |
x | Returns the data read. |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Read a char from an existing file
name | The name of the file to be read |
x | Returns the data read. |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Read an unsigned char from an existing file
name | The name of the file to be read |
x | Returns the data read. |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Read a short from an existing file
name | The name of the file to be read |
x | Returns the data read. |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Read an unsigned char from an existing file
name | The name of the file to be read |
x | Returns the data read. |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Remove a specified child file or directory. Any IndexedIO instances to child directories will be in a invalid state and should not be used after remove is called.
Implemented in IECore::StreamIndexedIO.
Referenced by IECore.MenuDefinition::append(), IECore.MenuDefinition::insertAfter(), IECore.MenuDefinition::insertBefore(), and IECore.MenuDefinition::prepend().
|
pure virtual |
Remove all entries. Any IndexedIO instances to child directories will be in a invalid state and should not be used after remove is called.
Implemented in IECore::StreamIndexedIO.
|
static |
Fills the passed vector with all the extensions for which an IndexedIO implementation is available. Extensions are of the form "fio" - ie without a preceding '.'.
|
pure virtual |
Create a new file containing the specified float array contents
name | The name of the file to be written |
x | The data to write |
arrayLength | The number of elements in the array |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Create a new file containing the specified double array contents
name | The name of the file to be written |
x | The data to write |
arrayLength | The number of elements in the array |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Create a new file containing the specified half array contents
name | The name of the file to be written |
x | The data to write |
arrayLength | The number of elements in the array |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Create a new file containing the specified unsigned int array contents
name | The name of the file to be written |
x | The data to write |
arrayLength | The number of elements in the array |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Create a new file containing the specified unsigned long array contents
name | The name of the file to be written |
x | The data to write |
arrayLength | The number of elements in the array |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Create a new file containing the specified unsigned long array contents
name | The name of the file to be written |
x | The data to write |
arrayLength | The number of elements in the array |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Create a new file containing the specified unsigned int array contents
name | The name of the file to be written |
x | The data to write |
arrayLength | The number of elements in the array |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Create a new file containing the specified char array contents
name | The name of the file to be written |
x | The data to write |
arrayLength | The number of elements in the array |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Create a new file containing the specified unsigned char array contents
name | The name of the file to be written |
x | The data to write |
arrayLength | The number of elements in the array |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Create a new file containing the specified short array contents
name | The name of the file to be written |
x | The data to write |
arrayLength | The number of elements in the array |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Create a new file containing the specified unsigned short array contents
name | The name of the file to be written |
x | The data to write |
arrayLength | The number of elements in the array |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Create a new file containing the specified string array contents
name | The name of the file to be written |
x | The data to write |
arrayLength | The number of elements in the array |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Create a new file containing the specified InternedString array contents
name | The name of the file to be written |
x | The data to write |
arrayLength | The number of elements in the array |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Create a new file containing the specified float
name | The name of the file to be written |
x | The data to write |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Create a new file containing the specified double
name | The name of the file to be written |
x | The data to write |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Create a new file containing the specified half
name | The name of the file to be written |
x | The data to write |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Create a new file containing the specified int
name | The name of the file to be written |
x | The data to write |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Create a new file containing the specified long
name | The name of the file to be written |
x | The data to write |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Create a new file containing the specified long
name | The name of the file to be written |
x | The data to write |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Create a new file containing the specified string
name | The name of the file to be written |
x | The data to write |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Create a new file containing the specified unsigned int
name | The name of the file to be written |
x | The data to write |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Create a new file containing the specified char
name | The name of the file to be written |
x | The data to write |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Create a new file containing the specified unsigned char
name | The name of the file to be written |
x | The data to write |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Create a new file containing the specified short
name | The name of the file to be written |
x | The data to write |
Implemented in IECore::StreamIndexedIO.
|
pure virtual |
Create a new file containing the specified unsigned short
name | The name of the file to be written |
x | The data to write |
Implemented in IECore::StreamIndexedIO.