entity.h
Go to the documentation of this file.
1 #ifndef DNAI_MODELS_CORE_ENTITY_H
2 #define DNAI_MODELS_CORE_ENTITY_H
3 
4 #include <QDebug>
5 #include "core.h"
6 #include "entitydata.h"
9 
10 namespace dnai
11 {
12  namespace models
13  {
14  namespace gcore
15  {
17  {
18  public:
19  virtual ~IEntityCore() = default;
20  virtual void replicate() const = 0;
21  };
22 
23  class Entity : public IEntityCore, public interfaces::IModelData<EntityData>, public interfaces::ASerializable<Entity>
24  {
25  public:
26  Entity(::core::ENTITY type = ::core::ENTITY::UNDEFINED);
27  Entity(const Entity &entity);
28  explicit Entity(const QString& name, ::core::ENTITY type = ::core::ENTITY::UNDEFINED, qint32 ctId = -1);
29  explicit Entity(qint32 id, const QString& name, ::core::ENTITY type = ::core::ENTITY::UNDEFINED, qint32 ctId = -1);
30  virtual ~Entity();
31 
32  bool setId(quint32 id);
33  quint32 id() const;
34 
35  bool setEntityType(::core::ENTITY e);
36  ::core::ENTITY entityType() const;
37 
38  bool setContainerId(quint32 c);
39  quint32 containerId() const;
40 
41  bool setName(const QString &d);
42  const QString &name() const;
43 
44  bool setVisibility(::core::VISIBILITY v);
45  ::core::VISIBILITY visibility() const;
46 
47  Entity& operator=(const Entity& other);
48 
49  public:
50  //will replicate the current entity into the CoreDaemon
51  virtual void replicate() const override;
52 
53  // IModelData implementation
54  public:
55  bool setData(const EntityData &d) override;
56  const EntityData &data() const override;
57 
58  void serialize(QJsonObject& obj) const override;
59  protected:
60  void _deserialize(const QJsonObject& obj) override;
61  private:
63  };
64  }
65  }
66 }
67 
68 #endif //DNAI_MODELS_CORE_ENTITY_H
virtual ~Entity()
Definition: entity.cpp:39
Allow inherited class to serialize and deserialize itself.
Definition: iserializable.h:33
bool setId(quint32 id)
Definition: entity.cpp:44
bool setName(const QString &d)
Definition: entity.cpp:110
Entity & operator=(const Entity &other)
Definition: entity.cpp:136
bool setEntityType(::core::ENTITY e)
Definition: entity.cpp:84
Definition: entity.h:23
Definition: imodeldata.h:9
Definition: entitydata.h:12
const QString & name() const
Definition: entity.cpp:118
bool setData(const EntityData &d) override
Definition: entity.cpp:57
bool setVisibility(::core::VISIBILITY v)
Definition: entity.cpp:123
Definition: guitype.h:14
virtual void replicate() const override
Definition: entity.cpp:142
bool setContainerId(quint32 c)
Definition: entity.cpp:97
const EntityData & data() const override
Return the data component.
Definition: entity.cpp:65
::core::ENTITY entityType() const
Definition: entity.cpp:92
quint32 containerId() const
Definition: entity.cpp:105
quint32 id() const
Definition: entity.cpp:52
Definition: api.h:13
void _deserialize(const QJsonObject &obj) override
Implement this function in order to use deserialize(const QJsonObject &obj)
Definition: entity.cpp:77
Definition: entity.h:16
virtual void replicate() const =0
void serialize(QJsonObject &obj) const override
Implement this function to serialize into QJsonObject.
Definition: entity.cpp:70
EntityData m_data
Definition: entity.h:62
::core::VISIBILITY visibility() const
Definition: entity.cpp:131
Entity(::core::ENTITY type=::core::ENTITY::UNDEFINED)
Definition: entity.cpp:12