|
hecl
High-Level Extensible Combiner Language and Resource Database
|
Base object to subclass for integrating with key project operations. More...
#include <HECLDatabase.hpp>

Public Member Functions | |
| ObjectBase (const SystemString &path) | |
| const SystemString & | getPath () const |
Protected Types | |
| enum | DataEndianness { DE_NONE, DE_BIG, DE_LITTLE } |
| Byte-order of target system. More... | |
| enum | DataPlatform { DP_NONE, DP_GENERIC, DP_REVOLUTION, DP_CAFE } |
| Data-formats of target system. More... | |
| typedef std::function< void(const void *data, size_t len)> | FDataAppender |
| typedef std::function< void(ObjectBase *)> | FDepAdder |
Protected Member Functions | |
| virtual bool | _cookObject (FDataAppender dataAppender, DataEndianness endianness, DataPlatform platform) |
| Optional private method implemented by CProjectObject subclasses to cook objects. More... | |
| virtual void | _gatherDeps (FDepAdder depAdder) |
| Optional private method implemented by CProjectObject subclasses to resolve dependencies. More... | |
Friends | |
| class | Project |
Base object to subclass for integrating with key project operations.
All project objects are provided with IDataObject pointers to their database entries. Subclasses register themselves with a type registry so instances are automatically constructed when performing operations like cooking and packaging.
DO NOT CONSTRUCT THIS OR SUBCLASSES DIRECTLY!!
|
protected |
|
protected |
|
inlineprotectedvirtual |
Optional private method implemented by CProjectObject subclasses to cook objects.
| dataAppender | subclass calls this function zero or more times to provide cooked-data linearly |
| endianness | byte-order to target |
| platform | data-formats to target |
This method is called during IProject::cookPath(). Part of the cooking process may include embedding database-refs to dependencies. This method should store the 64-bit value provided by IDataObject::id() when doing this.
|
inlineprotectedvirtual |
Optional private method implemented by CProjectObject subclasses to resolve dependencies.
| depAdder | subclass calls this function zero or more times to register each dependency |
This method is called during IProject::packagePath(). Dependencies registered via this method will eventually have this method called on themselves as well. This is a non-recursive operation, no need for subclasses to implement recursion-control.
1.8.9.1