SDOM - Simple SDL Document Object Model
A lightweight, extensible Document Object Model for SDL-based applications.
Loading...
Searching...
No Matches
SDOM::Factory Class Referencefinal

#include <SDOM_Factory.hpp>

Inheritance diagram for SDOM::Factory:
SDOM::IDataObject SDOM::IUnitTest

Public Member Functions

 Factory ()
 
virtual ~Factory ()=default
 
virtual bool onInit () override
 
bool isInitialized () const
 
virtual void onQuit () override
 
virtual bool onUnitTest () override
 Runs unit tests for this object.
 
void registerDomType (const std::string &typeName, const TypeCreators &creators)
 
void registerResType (const std::string &typeName, const AssetTypeCreators &creators)
 
DisplayHandle create (const std::string &typeName, const sol::table &config)
 
DisplayHandle create (const std::string &typeName, const IDisplayObject::InitStruct &init)
 
DisplayHandle create (const std::string &typeName, const std::string &luaScript)
 
AssetHandle createAsset (const std::string &typeName, const sol::table &config)
 
AssetHandle createAsset (const std::string &typeName, const IAssetObject::InitStruct &init)
 
AssetHandle createAsset (const std::string &typeName, const std::string &luaScript)
 
bool attachCreatedObjectToParentFromConfig (const std::string &name, const std::string &typeName, const sol::object &parentConfig)
 
IDisplayObjectgetDomObj (const std::string &name)
 
IAssetObjectgetResObj (const std::string &name)
 
DisplayHandle getDisplayObject (const std::string &name)
 
AssetHandle getAssetObject (const std::string &name)
 
DisplayHandle getStageHandle ()
 
void addDisplayObject (const std::string &name, std::unique_ptr< IDisplayObject > displayObject)
 
void destroyDisplayObject (const std::string &name)
 
void destroyAssetObject (const std::string &name)
 
int countOrphanedDisplayObjects () const
 
std::vector< DisplayHandlegetOrphanedDisplayObjects ()
 
void destroyOrphanedDisplayObjects ()
 
void detachOrphans ()
 
void collectGarbage ()
 
void attachFutureChildren ()
 
void addToOrphanList (const DisplayHandle orphan)
 
void addToFutureChildrenList (const DisplayHandle child, const DisplayHandle parent, bool useWorld=false, int worldX=0, int worldY=0)
 
std::vector< std::string > listDisplayObjectNames () const
 
void clear ()
 
void printObjectRegistry () const
 
void printAssetRegistry () const
 
void printAssetTree () const
 
void printAssetTreeGrouped () const
 
void initFromLua (const sol::table &lua)
 
AssetHandle findAssetByFilename (const std::string &filename, const std::string &typeName="") const
 
AssetHandle findSpriteSheetByParams (const std::string &filename, int spriteW, int spriteH) const
 
std::string getName () const
 
void setName (const std::string &newName)
 
void registerLuaBindings (const std::string &typeName, sol::state_view lua)
 

Static Public Member Functions

template<typename T >
static T lua_value_case_insensitive (const sol::table &tbl, const std::string &key, const T &default_value)
 

Protected Member Functions

virtual void _registerLuaBindings (const std::string &typeName, sol::state_view lua)
 

Protected Attributes

sol::usertype< IDataObjectobjHandleType_
 
std::string name_ = "IDataObject"
 

Friends

class Core
 

Constructor & Destructor Documentation

◆ Factory()

SDOM::Factory::Factory ( )

◆ ~Factory()

virtual SDOM::Factory::~Factory ( )
virtualdefault

Member Function Documentation

◆ _registerLuaBindings()

◆ addDisplayObject()

void SDOM::Factory::addDisplayObject ( const std::string &  name,
std::unique_ptr< IDisplayObject displayObject 
)

◆ addToFutureChildrenList()

void SDOM::Factory::addToFutureChildrenList ( const DisplayHandle  child,
const DisplayHandle  parent,
bool  useWorld = false,
int  worldX = 0,
int  worldY = 0 
)

◆ addToOrphanList()

void SDOM::Factory::addToOrphanList ( const DisplayHandle  orphan)

◆ attachCreatedObjectToParentFromConfig()

bool SDOM::Factory::attachCreatedObjectToParentFromConfig ( const std::string &  name,
const std::string &  typeName,
const sol::object &  parentConfig 
)

◆ attachFutureChildren()

void SDOM::Factory::attachFutureChildren ( )

◆ clear()

void SDOM::Factory::clear ( )

◆ collectGarbage()

void SDOM::Factory::collectGarbage ( )

◆ countOrphanedDisplayObjects()

int SDOM::Factory::countOrphanedDisplayObjects ( ) const

◆ create() [1/3]

DisplayHandle SDOM::Factory::create ( const std::string &  typeName,
const IDisplayObject::InitStruct init 
)

◆ create() [2/3]

DisplayHandle SDOM::Factory::create ( const std::string &  typeName,
const sol::table &  config 
)

◆ create() [3/3]

DisplayHandle SDOM::Factory::create ( const std::string &  typeName,
const std::string &  luaScript 
)

◆ createAsset() [1/3]

AssetHandle SDOM::Factory::createAsset ( const std::string &  typeName,
const IAssetObject::InitStruct init 
)

◆ createAsset() [2/3]

AssetHandle SDOM::Factory::createAsset ( const std::string &  typeName,
const sol::table &  config 
)

◆ createAsset() [3/3]

AssetHandle SDOM::Factory::createAsset ( const std::string &  typeName,
const std::string &  luaScript 
)

◆ destroyAssetObject()

void SDOM::Factory::destroyAssetObject ( const std::string &  name)

◆ destroyDisplayObject()

void SDOM::Factory::destroyDisplayObject ( const std::string &  name)

◆ destroyOrphanedDisplayObjects()

void SDOM::Factory::destroyOrphanedDisplayObjects ( )

◆ detachOrphans()

void SDOM::Factory::detachOrphans ( )

◆ findAssetByFilename()

AssetHandle SDOM::Factory::findAssetByFilename ( const std::string &  filename,
const std::string &  typeName = "" 
) const

◆ findSpriteSheetByParams()

AssetHandle SDOM::Factory::findSpriteSheetByParams ( const std::string &  filename,
int  spriteW,
int  spriteH 
) const

◆ getAssetObject()

AssetHandle SDOM::Factory::getAssetObject ( const std::string &  name)

◆ getDisplayObject()

DisplayHandle SDOM::Factory::getDisplayObject ( const std::string &  name)

◆ getDomObj()

IDisplayObject * SDOM::Factory::getDomObj ( const std::string &  name)

◆ getName()

std::string SDOM::IDataObject::getName ( ) const
inlineinherited

◆ getOrphanedDisplayObjects()

std::vector< DisplayHandle > SDOM::Factory::getOrphanedDisplayObjects ( )

◆ getResObj()

IAssetObject * SDOM::Factory::getResObj ( const std::string &  name)

◆ getStageHandle()

DisplayHandle SDOM::Factory::getStageHandle ( )

◆ initFromLua()

void SDOM::Factory::initFromLua ( const sol::table &  lua)

◆ isInitialized()

bool SDOM::Factory::isInitialized ( ) const
inline

◆ listDisplayObjectNames()

std::vector< std::string > SDOM::Factory::listDisplayObjectNames ( ) const

◆ lua_value_case_insensitive()

template<typename T >
static T SDOM::IDataObject::lua_value_case_insensitive ( const sol::table &  tbl,
const std::string &  key,
const T &  default_value 
)
inlinestaticinherited

◆ onInit()

bool SDOM::Factory::onInit ( )
overridevirtual

Implements SDOM::IDataObject.

◆ onQuit()

virtual void SDOM::Factory::onQuit ( )
inlineoverridevirtual

Implements SDOM::IDataObject.

◆ onUnitTest()

bool SDOM::Factory::onUnitTest ( )
overridevirtual

Runs unit tests for this object.

Returns
true if all tests pass, false otherwise.

Reimplemented from SDOM::IDataObject.

◆ printAssetRegistry()

void SDOM::Factory::printAssetRegistry ( ) const

◆ printAssetTree()

void SDOM::Factory::printAssetTree ( ) const

◆ printAssetTreeGrouped()

void SDOM::Factory::printAssetTreeGrouped ( ) const

◆ printObjectRegistry()

void SDOM::Factory::printObjectRegistry ( ) const

◆ registerDomType()

void SDOM::Factory::registerDomType ( const std::string &  typeName,
const TypeCreators creators 
)

◆ registerLuaBindings()

void SDOM::IDataObject::registerLuaBindings ( const std::string &  typeName,
sol::state_view  lua 
)
inlineinherited

◆ registerResType()

void SDOM::Factory::registerResType ( const std::string &  typeName,
const AssetTypeCreators creators 
)

◆ setName()

void SDOM::IDataObject::setName ( const std::string &  newName)
inlineinherited

Friends And Related Symbol Documentation

◆ Core

friend class Core
friend

Member Data Documentation

◆ name_

std::string SDOM::IDataObject::name_ = "IDataObject"
protectedinherited

◆ objHandleType_

sol::usertype<IDataObject> SDOM::IDataObject::objHandleType_
protectedinherited

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