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

#include <SDOM_AssetHandle.hpp>

Inheritance diagram for SDOM::AssetHandle:
SDOM::IDataObject SDOM::IUnitTest

Public Member Functions

 AssetHandle ()
 
 AssetHandle (const std::string &name, const std::string &type, const std::string &filename)
 
 AssetHandle (const AssetHandle &other)
 
virtual ~AssetHandle ()
 
virtual bool onInit () override
 
virtual void onQuit () override
 
virtual bool onUnitTest () override
 Runs unit tests for this object.
 
void reset ()
 
IAssetObjectget () const
 
template<typename T >
T * as () const
 
IAssetObjectoperator* () const
 
IAssetObjectoperator-> () const
 
 operator bool () const
 
bool operator== (std::nullptr_t) const
 
bool operator!= (std::nullptr_t) const
 
bool operator== (const AssetHandle &other) const
 
bool operator!= (const AssetHandle &other) const
 
AssetHandleoperator= (const AssetHandle &other)=default
 
 AssetHandle (AssetHandle &&)=default
 
AssetHandleoperator= (AssetHandle &&)=default
 
bool isValid () const
 
const std::string & getName () const
 
const std::string & getType () const
 
const std::string & getFilename () const
 
std::string getName_lua () const
 
std::string getType_lua () const
 
std::string getFilename_lua () const
 
void setName (const std::string &newName)
 
void registerLuaBindings (const std::string &typeName, sol::state_view lua)
 

Static Public Member Functions

static sol::table ensure_handle_table (sol::state_view lua)
 
static void bind_minimal (sol::state_view lua)
 
static AssetHandle resolveSpec (const sol::object &spec)
 
template<typename T >
static T lua_value_case_insensitive (const sol::table &tbl, const std::string &key, const T &default_value)
 

Static Public Attributes

static constexpr const char * LuaHandleName = "AssetHandle"
 
static Factoryfactory_ = nullptr
 

Protected Member Functions

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

Protected Attributes

friend Core
 
friend Factory
 
std::string name_
 
std::string type_
 
std::string filename_
 
sol::usertype< IDataObjectobjHandleType_
 

Constructor & Destructor Documentation

◆ AssetHandle() [1/4]

SDOM::AssetHandle::AssetHandle ( )
inline

◆ AssetHandle() [2/4]

SDOM::AssetHandle::AssetHandle ( const std::string &  name,
const std::string &  type,
const std::string &  filename 
)
inline

◆ AssetHandle() [3/4]

SDOM::AssetHandle::AssetHandle ( const AssetHandle other)
inline

◆ ~AssetHandle()

SDOM::AssetHandle::~AssetHandle ( )
virtual

◆ AssetHandle() [4/4]

SDOM::AssetHandle::AssetHandle ( AssetHandle &&  )
default

Member Function Documentation

◆ _registerLuaBindings()

void SDOM::AssetHandle::_registerLuaBindings ( const std::string &  typeName,
sol::state_view  lua 
)
overrideprotectedvirtual

Reimplemented from SDOM::IDataObject.

◆ as()

template<typename T >
T * SDOM::AssetHandle::as ( ) const
inline

◆ bind_minimal()

void SDOM::AssetHandle::bind_minimal ( sol::state_view  lua)
static

◆ ensure_handle_table()

sol::table SDOM::AssetHandle::ensure_handle_table ( sol::state_view  lua)
static

◆ get()

IAssetObject * SDOM::AssetHandle::get ( ) const

◆ getFilename()

const std::string & SDOM::AssetHandle::getFilename ( ) const
inline

◆ getFilename_lua()

std::string SDOM::AssetHandle::getFilename_lua ( ) const
inline

◆ getName()

const std::string & SDOM::AssetHandle::getName ( ) const
inline

◆ getName_lua()

std::string SDOM::AssetHandle::getName_lua ( ) const
inline

◆ getType()

const std::string & SDOM::AssetHandle::getType ( ) const
inline

◆ getType_lua()

std::string SDOM::AssetHandle::getType_lua ( ) const
inline

◆ isValid()

bool SDOM::AssetHandle::isValid ( ) const
inline

◆ 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()

virtual bool SDOM::AssetHandle::onInit ( )
inlineoverridevirtual

Implements SDOM::IDataObject.

◆ onQuit()

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

Implements SDOM::IDataObject.

◆ onUnitTest()

virtual bool SDOM::AssetHandle::onUnitTest ( )
inlineoverridevirtual

Runs unit tests for this object.

Returns
true if all tests pass, false otherwise.

Reimplemented from SDOM::IDataObject.

◆ operator bool()

SDOM::AssetHandle::operator bool ( ) const
inline

◆ operator!=() [1/2]

bool SDOM::AssetHandle::operator!= ( const AssetHandle other) const
inline

◆ operator!=() [2/2]

bool SDOM::AssetHandle::operator!= ( std::nullptr_t  ) const
inline

◆ operator*()

IAssetObject & SDOM::AssetHandle::operator* ( ) const
inline

◆ operator->()

IAssetObject * SDOM::AssetHandle::operator-> ( ) const
inline

◆ operator=() [1/2]

AssetHandle & SDOM::AssetHandle::operator= ( AssetHandle &&  )
default

◆ operator=() [2/2]

AssetHandle & SDOM::AssetHandle::operator= ( const AssetHandle other)
default

◆ operator==() [1/2]

bool SDOM::AssetHandle::operator== ( const AssetHandle other) const
inline

◆ operator==() [2/2]

bool SDOM::AssetHandle::operator== ( std::nullptr_t  ) const
inline

◆ registerLuaBindings()

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

◆ reset()

void SDOM::AssetHandle::reset ( )
inline

◆ resolveSpec()

AssetHandle SDOM::AssetHandle::resolveSpec ( const sol::object &  spec)
static

◆ setName()

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

Member Data Documentation

◆ Core

friend SDOM::AssetHandle::Core
protected

◆ Factory

friend SDOM::AssetHandle::Factory
protected

◆ factory_

Factory* SDOM::AssetHandle::factory_ = nullptr
inlinestatic

◆ filename_

std::string SDOM::AssetHandle::filename_
protected

◆ LuaHandleName

constexpr const char* SDOM::AssetHandle::LuaHandleName = "AssetHandle"
staticconstexpr

◆ name_

std::string SDOM::AssetHandle::name_
protected

◆ objHandleType_

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

◆ type_

std::string SDOM::AssetHandle::type_
protected

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