Cortex  10.0.0-a4
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
IECore::Reader Class Reference

#include <Reader.h>

+ Inheritance diagram for IECore::Reader:

Classes

class  ReaderDescription
 

Public Member Functions

 IE_CORE_DECLARERUNTIMETYPED (Reader, Op)
 
const std::string & fileName () const
 
virtual CompoundObjectPtr readHeader ()
 
ObjectPtr read ()
 
- Public Member Functions inherited from IECore::Op
 IE_CORE_DECLARERUNTIMETYPED (Op, Parameterised)
 
 Op (const std::string &description, ParameterPtr resultParameter)
 
 Op (const std::string &description, CompoundParameterPtr compoundParameter, ParameterPtr resultParameter)
 
ObjectPtr operate ()
 
ObjectPtr operate (const CompoundObject *operands)
 Performs the operation using the given values of parameters.
 
const ParameterresultParameter () const
 
- Public Member Functions inherited from IECore::Parameterised
 IE_CORE_DECLARERUNTIMETYPED (Parameterised, RunTimeTyped)
 
 Parameterised (const std::string &description)
 
 Parameterised (const std::string &description, CompoundParameterPtr compoundParameter)
 Another constructor added later on that gives defines the CompoundParameter object to be hold in this Parameterised instance.
 
const std::string & description () const
 Returns a description for this parameterised object.
 
CompoundParameterparameters () override
 
const CompoundParameterparameters () const override
 Returns the parameters for query.
 
CompoundObjectuserData ()
 Returns an object that anyone can use for storing anything.
 
const CompoundObjectuserData () const
 Read only version of the above.
 
- 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.
 

Protected Member Functions

 Reader (const std::string &description, ParameterPtr resultParameter=nullptr)
 
- Protected Member Functions inherited from IECore::Op
virtual ObjectPtr doOperation (const CompoundObject *operands)=0
 

Protected Attributes

FileNameParameterPtr m_fileNameParameter
 

Factory functions

typedef boost::function< ReaderPtr(const std::string &fileName)> CreatorFn
 
typedef boost::function< bool(const std::string &fileName)> CanReadFn
 
static ReaderPtr create (const std::string &fileName)
 
static void supportedExtensions (std::vector< std::string > &extensions)
 
static void supportedExtensions (TypeId typeId, std::vector< std::string > &extensions)
 
static void registerReader (const std::string &extensions, CanReadFn canRead, CreatorFn creator, TypeId typeId)
 

Additional Inherited Members

- 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 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 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::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

The Reader class defines an interface for loading files of arbitrary type in the form of Object instances.

Member Typedef Documentation

typedef boost::function<bool ( const std::string &fileName )> IECore::Reader::CanReadFn

Definition of a function to answer the question can this file be read?

typedef boost::function<ReaderPtr ( const std::string &fileName )> IECore::Reader::CreatorFn

Definition of a function which can create a Reader when given a fileName.

Constructor & Destructor Documentation

IECore::Reader::Reader ( const std::string &  description,
ParameterPtr  resultParameter = nullptr 
)
protected

If resultParameter is not specified then creates a resultParameter which is a simple Parameter instance. If a derived class provides more concrete constraints on the type of the result it should pass an appropriate resultParameter in its initialiser.

Member Function Documentation

static ReaderPtr IECore::Reader::create ( const std::string &  fileName)
static

Creates and returns a Reader appropriate to the specified file. Throws an Exception if no suitable reader can be found.

Referenced by IECoreRI::executeProcedural(), IECore.ParameterParser::parse(), and IECore.BasicPreset::save().

const std::string& IECore::Reader::fileName ( ) const

Returns the name of the file this Reader is set to read. Actually calls parameters()->parameter<FileNameParameter>( "fileName" )->getTypedValue(); and therefore can potentially throw an Exception if the fileName is invalid.

ObjectPtr IECore::Reader::read ( )

Reads the file specified by fileName() and returns it in the form of an Object. This function actually just calls Op::operate() - it's provided for backwards compatibility and prettier syntax.

virtual CompoundObjectPtr IECore::Reader::readHeader ( )
virtual

Returns the file header in the file specified by fileName(). This is intended to give fast access to some information about the contents of the file, without having to load the entire thing. Classes implementing this method should call the base class method first, and append any additional data to the CompoundObject it returns.

Reimplemented in IECore::ObjectReader.

static void IECore::Reader::registerReader ( const std::string &  extensions,
CanReadFn  canRead,
CreatorFn  creator,
TypeId  typeId 
)
static

Registers a Reader type which is capable of reading files ending with the space separated extensions specified (e.g. "tif tiff"). Before creating a reader the canRead function will be called as a final check that the Reader is appropriate - if this returns true then the creator function will then be called. If a file has no extension then all registered canRead functions are called in a last ditch attempt to find a suitable reader. Typically you will not call this function directly to register a reader type - you will instead use the ReaderDescription registration utility class below.

static void IECore::Reader::supportedExtensions ( std::vector< std::string > &  extensions)
static

Fills the passed vector with all the extensions for which a Reader is available. Extensions are of the form "tif" - ie without a preceding '.'.

static void IECore::Reader::supportedExtensions ( TypeId  typeId,
std::vector< std::string > &  extensions 
)
static

Fills the passed vector with all the extensions for which a Reader of, or inherited from, the given type is available. Extensions are of the form "tif" - ie without a preceding '.'.


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