april  1.0.0
...
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
component.h
Go to the documentation of this file.
1 /* ========================================================================= */
2 /* ------------------------------------------------------------------------- *//*
12 
13 
14  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15  Please read COPYING and README files in root folder
16  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
17 */
18 /* ------------------------------------------------------------------------- */
19 /* ========================================================================= */
20 #ifndef __COMPONENT_INC__
21 #define __COMPONENT_INC__
22 //
23 //
24 //
25 //
26 /* INCLUDES ------------------------------------------------------------ */
27 
28 #include <april/april.h>
29 #include <libbbb/1/list2d.h>
30 #include <libbbb/1/amorph.h>
31 #include <april/logic/uniqueid.h>
32 
33 /* INCLUDES ============================================================ */
34 //
35 //
36 //
37 //
38 /* DEFINITIONS --------------------------------------------------------- */
39 
40 class QSettings;
41 
42 namespace april {
43 class Factory;
44 
45 /* DEFINITIONS ========================================================= */
46 //
47 //
48 //
49 //
50 /* CLASS --------------------------------------------------------------- */
51 
58 class
60  Component : public List2De, public libbbb::RefCnt, public MemTrack {
61  BBM_TRACK( Component );
62 
63  //
64  //
65  //
66  //
67  /* DEFINITIONS ----------------------------------------------------- */
68 
69  friend class AprilLibrary;
70  friend class World;
71  friend class Actor;
72 
73  /* DEFINITIONS ===================================================== */
74  //
75  //
76  //
77  //
78  /* DATA ------------------------------------------------------------ */
79 
80 private:
81 
83  Amorph payload_;
84 
85  /* DATA ============================================================ */
86  //
87  //
88  //
89  //
90  /* FUNCTIONS ------------------------------------------------------- */
91 
92 public:
93 
94 
98  Component ( void );
99 
100 protected:
101 
105  virtual ~Component ( void );
106 
107 public:
108 
110  Amorph & payload ( void )
111  { return payload_; }
112 
114  virtual ID identificator ( void ) const
115  { return InvalidId; }
116 
118  virtual Factory * factory ( void ) const
119  { return NULL; }
120 
122  virtual bool save ( QSettings & s ) const = 0;
123 
125  virtual bool load ( QSettings & s ) = 0;
126 
127 protected:
128 
130 
133  virtual void inserted ( void )
134  { }
135 
136 
137 
138  /* FUNCTIONS ======================================================= */
139  //
140  //
141  //
142  //
143 
144 }; /* class Component */
145 
146 /* CLASS =============================================================== */
147 //
148 //
149 //
150 //
151 
152 } // namespace april
153 
154 #endif // __COMPONENT_INC__
155 /* ------------------------------------------------------------------------- */
156 /* ========================================================================= */