#include <objecthandler.h>

Inheritance diagram for dnai::gcore::ObjectHandler:
Inheritance graph
Collaboration diagram for dnai::gcore::ObjectHandler:
Collaboration graph

Public Slots

void onEntityAdded (::core::EntityID id, models::Entity &entity)
 
void onEntityRemoved (::core::EntityID id, models::Entity &entity)
 

Signals

void attributeAdded (models::Entity *obj, QString name, models::Entity *type, VISIBILITY visi)
 
void attributeRemoved (models::Entity *obj, QString name)
 
void attributeRenamed (models::Entity *obj, QString name, QString newName)
 
void functionSetAsMember (models::Entity *obj, QString name, models::Entity *thisParam)
 
void functionSetAsStatic (models::Entity *obj, QString name)
 

Public Member Functions

 ObjectHandler (EntityManager &manager)
 
 ~ObjectHandler ()=default
 
void setup ()
 
Q_INVOKABLE void addAttribute (quint32 obj, QString name, quint32 type, qint32 visi, bool save=true)
 
Q_INVOKABLE void removeAttribute (quint32 obj, QString name, bool save=true)
 
Q_INVOKABLE void renameAttribute (quint32 obj, QString name, QString newName, bool save=true)
 
Q_INVOKABLE void setAttributeType (quint32 obj, QString name, quint32 type, bool save=true)
 
Q_INVOKABLE void setFunctionAsMember (quint32 obj, QString name, bool save=true)
 
Q_INVOKABLE void setFunctionAsStatic (quint32 obj, QString name, bool save=true)
 

Private Types

using AttrMap = std::unordered_map< models::Entity *, QList< QString >>
 
using AttrSet = std::unordered_set< std::string >
 

Private Member Functions

bool isAttributePending (EntityID obj, QString const &name) const
 
void removePendingAttribute (EntityID obj, QString const &name)
 
void refreshPendingAttributes (models::Entity &entity)
 
void onAttributeAdded (EntityID obj, QString name, EntityID type, VISIBILITY visi)
 
void onAddAttributeError (EntityID obj, QString name, EntityID type, VISIBILITY visi, QString msg)
 
void onAttributeRemoved (EntityID obj, QString name)
 
void onRemoveAttributeError (EntityID obj, QString name, QString msg)
 
void onAttributeRenamed (EntityID obj, QString name, QString newName)
 
void onRenameAttributeError (EntityID obj, QString name, QString newName, QString msg)
 
void onFunctionSetAsMember (EntityID obj, QString name, EntityID thisId)
 
void onSetFunctionAsMemberError (EntityID obj, QString name, QString msg)
 

Private Attributes

EntityManagermanager
 
std::queue< std::function< void()> > m_pendingAdd
 
AttrMap m_pendingAttributes
 
AttrSet m_attributeAdded
 

Member Typedef Documentation

using dnai::gcore::ObjectHandler::AttrMap = std::unordered_map<models::Entity *, QList<QString>>
private
using dnai::gcore::ObjectHandler::AttrSet = std::unordered_set<std::string>
private

Constructor & Destructor Documentation

dnai::gcore::ObjectHandler::ObjectHandler ( EntityManager manager)
dnai::gcore::ObjectHandler::~ObjectHandler ( )
default

Member Function Documentation

void dnai::gcore::ObjectHandler::addAttribute ( quint32  obj,
QString  name,
quint32  type,
qint32  visi,
bool  save = true 
)
void dnai::gcore::ObjectHandler::attributeAdded ( models::Entity obj,
QString  name,
models::Entity type,
VISIBILITY  visi 
)
signal
void dnai::gcore::ObjectHandler::attributeRemoved ( models::Entity obj,
QString  name 
)
signal
void dnai::gcore::ObjectHandler::attributeRenamed ( models::Entity obj,
QString  name,
QString  newName 
)
signal
void dnai::gcore::ObjectHandler::functionSetAsMember ( models::Entity obj,
QString  name,
models::Entity thisParam 
)
signal
void dnai::gcore::ObjectHandler::functionSetAsStatic ( models::Entity obj,
QString  name 
)
signal
bool dnai::gcore::ObjectHandler::isAttributePending ( EntityID  obj,
QString const &  name 
) const
private
void dnai::gcore::ObjectHandler::onAddAttributeError ( EntityID  obj,
QString  name,
EntityID  type,
VISIBILITY  visi,
QString  msg 
)
private
void dnai::gcore::ObjectHandler::onAttributeAdded ( EntityID  obj,
QString  name,
EntityID  type,
VISIBILITY  visi 
)
private
void dnai::gcore::ObjectHandler::onAttributeRemoved ( EntityID  obj,
QString  name 
)
private
void dnai::gcore::ObjectHandler::onAttributeRenamed ( EntityID  obj,
QString  name,
QString  newName 
)
private
void dnai::gcore::ObjectHandler::onEntityAdded ( ::core::EntityID  id,
models::Entity entity 
)
slot
void dnai::gcore::ObjectHandler::onEntityRemoved ( ::core::EntityID  id,
models::Entity entity 
)
slot
void dnai::gcore::ObjectHandler::onFunctionSetAsMember ( EntityID  obj,
QString  name,
EntityID  thisId 
)
private
void dnai::gcore::ObjectHandler::onRemoveAttributeError ( EntityID  obj,
QString  name,
QString  msg 
)
private
void dnai::gcore::ObjectHandler::onRenameAttributeError ( EntityID  obj,
QString  name,
QString  newName,
QString  msg 
)
private
void dnai::gcore::ObjectHandler::onSetFunctionAsMemberError ( EntityID  obj,
QString  name,
QString  msg 
)
private
void dnai::gcore::ObjectHandler::refreshPendingAttributes ( models::Entity entity)
private
void dnai::gcore::ObjectHandler::removeAttribute ( quint32  obj,
QString  name,
bool  save = true 
)
void dnai::gcore::ObjectHandler::removePendingAttribute ( EntityID  obj,
QString const &  name 
)
private
void dnai::gcore::ObjectHandler::renameAttribute ( quint32  obj,
QString  name,
QString  newName,
bool  save = true 
)
void dnai::gcore::ObjectHandler::setAttributeType ( quint32  obj,
QString  name,
quint32  type,
bool  save = true 
)
void dnai::gcore::ObjectHandler::setFunctionAsMember ( quint32  obj,
QString  name,
bool  save = true 
)
void dnai::gcore::ObjectHandler::setFunctionAsStatic ( quint32  obj,
QString  name,
bool  save = true 
)
void dnai::gcore::ObjectHandler::setup ( )

Member Data Documentation

AttrSet dnai::gcore::ObjectHandler::m_attributeAdded
private
std::queue<std::function<void()> > dnai::gcore::ObjectHandler::m_pendingAdd
private
AttrMap dnai::gcore::ObjectHandler::m_pendingAttributes
private
EntityManager& dnai::gcore::ObjectHandler::manager
private

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