Cortex  10.0.0-a4
Classes | Public Member Functions | Static Public Member Functions | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
IECore::Writer Class Referenceabstract

#include <Writer.h>

+ Inheritance diagram for IECore::Writer:

Classes

class  WriterDescription
 

Public Member Functions

const std::string & fileName () const
 
const Objectobject () const
 
void write ()
 
- 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.
 

Static Public Member Functions

static WriterPtr create (ObjectPtr object, const std::string &fileName)
 
static WriterPtr create (const std::string &fileName)
 
static void supportedExtensions (std::vector< std::string > &extensions)
 
static void supportedExtensions (TypeId typeId, 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 Types

typedef WriterPtr(* CreatorFn) ()
 Definition of a function which can create a Writer.
 
typedef bool(* CanWriteFn) (ConstObjectPtr object, const std::string &fileName)
 
- 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
 

Protected Member Functions

 Writer (const std::string &description, TypeId writableType)
 
 Writer (const std::string &description, const ObjectParameter::TypeIdSet &writableTypes)
 
ObjectPtr doOperation (const CompoundObject *operands) override
 Implemented to call doWrite(), so derived classes need only implement that.
 
virtual void doWrite (const CompoundObject *operands)=0
 

Static Protected Member Functions

static void registerWriter (const std::string &extensions, CanWriteFn canWrite, CreatorFn creator, TypeId typeId)
 
- 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 ()
 

Protected Attributes

ParameterPtr m_objectParameter
 
FileNameParameterPtr m_fileNameParameter
 

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 Protected Attributes inherited from IECore::RunTimeTyped
static Mutex g_baseTypeIdsMutex
 
static Mutex g_derivedTypeIdsMutex
 

Detailed Description

The Writer class defines an interface for creating files of arbitrary type from Object instances.

Member Typedef Documentation

typedef bool(* IECore::Writer::CanWriteFn) (ConstObjectPtr object, const std::string &fileName)
protected

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

Member Function Documentation

static WriterPtr IECore::Writer::create ( ObjectPtr  object,
const std::string &  fileName 
)
static

Creates and returns a Writer appropriate for saving the specified object to the specified file (the file extension is used to determine format). Throws an Exception if no suitable writer can be found.

Referenced by IECoreMaya.FnParameterisedHolder::ls(), and IECore.BasicPreset::save().

static WriterPtr IECore::Writer::create ( const std::string &  fileName)
static

Creates and returns a Writer appropriate for writing the specified file (the file extension is used to determine format). It is the responsibility of the caller to subsequently set the object to be written via the object parameter. Throws an Exception if no suitable writer can be found.

virtual void IECore::Writer::doWrite ( const CompoundObject operands)
protectedpure virtual

Must be implemented by subclasses to write object() to fileName(). Implementations should throw an Exception on failure.

Implemented in IECoreRI::RIBWriter, and IECore::ObjectWriter.

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

Returns the name of the file this Writer is set to create. This is just a convenience returning the equivalent of parameters()->parameter<FileNameParameter>( "fileName" )->getTypedValue().

const Object* IECore::Writer::object ( ) const

Returns the Object this Writer will use to write the file. This is just a convenience returning the equivalent of parameters()->parameter<Parameter>( "object" )->getValue().

Referenced by IECoreMaya.FnParameterisedHolder::fullPathName(), IECoreMaya.FnProceduralHolder::selectedComponentNames(), and IECoreMaya.FnSceneShape::selectedComponentNames().

static void IECore::Writer::registerWriter ( const std::string &  extensions,
CanWriteFn  canWrite,
CreatorFn  creator,
TypeId  typeId 
)
staticprotected

Registers a Writer type which is capable of writing files ending with the space separated extensions specified (e.g. "tif tiff"). Before creating a Writer the canWrite function will be called as a final check that the Writer is appropriate for the given Object type - if this returns true then the creator function will then be called. Typically you will not call this function directly to register a writer type - you will instead use the registration utility class below.

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

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

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

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

void IECore::Writer::write ( )

Writes object() to fileName(). This just calls operate() and is provided for backwards compatibility and pretty syntax.


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