LOM2M  0.8.0
Entity.h
Go to the documentation of this file.
1 /*
2  Copyright (c) 2013-2021 LAAS-CNRS (www.laas.fr)
3  7 Colonel Roche 31077 Toulouse - France
4 
5  The use of this source code requires an agreement with the CNRS.
6 
7  Initial Contributors:
8  David Gauchard, Guillaume Garzone, Thierry Monteil.
9 */
10 
11 #ifndef __LOM2M_ENTITY_H
12 #define __LOM2M_ENTITY_H
13 
14 #include <list>
15 
16 #include "lom2m.h"
17 #include "bsp.h"
18 #include "stdio.h"
19 #include "Enum.h"
20 #include "Observer.h"
21 #include "AccessControlRule.h"
22 #include "configuration.h"
23 
24 struct AccessControlPolicy;
25 struct Application;
26 struct Container;
27 struct ContentInstance;
28 struct CseBase;
29 struct RemoteCse;
30 struct Subscription;
31 #if GROUP_FEAT
32 struct Group;
33 #endif
34 struct FilterCriteria;
35 
42 {
43 protected:
44  String createdBefore;
45  String createdAfter;
46  String modifiedSince;
50  String expireBefore;
51  String expireAfter;
52  std::list<String> labels;
53  std::list<int> resourceType;
54  int sizeAbove;
55  int sizeBelow;
56  std::list<String> contentType;
57  // TODO to add when supported
58  //std::list<Attribute> attribute;
60  int limit;
61  int level;
62  int offset;
63  bool unsupportedFilter = false;
64 
65  void init()
66  {
67  resourceType.clear();
68  stateTagSmaller = -1;
69  stateTagBigger = -1;
70  sizeAbove = -1;
71  sizeBelow = -1;
72  filterUsage = -1;
73  limit = -1;
74  level = 1;
75  offset = -1;
77  }
78 
79 public:
82  {
83  this->init();
84  }
86  {
87  this->unsupportedFilter = true;
88  }
90  {
91  return this->unsupportedFilter;
92  }
94  {
95  return this->filterUsage;
96  }
97  void setFilterUsage(int filterUsage)
98  {
99  this->filterUsage = filterUsage;
100  }
101  int getLimit()
102  {
103  return this->limit;
104  }
105  void setLimit(int limit)
106  {
107  this->limit = limit;
108  }
109  int getLevel()
110  {
111  return this->level;
112  }
113  void setLevel(int level)
114  {
115  this->level = level;
116  }
117  int getOffset()
118  {
119  return this->offset;
120  }
121  void setOffset(int offset)
122  {
123  this->offset = offset;
124  }
126  {
127  return this->sizeBelow;
128  }
129  void setSizeBelow(int sizeBelow)
130  {
131  this->sizeBelow = sizeBelow;
132  }
133  std::list<String> getContentType()
134  {
135  return this->contentType;
136  }
137  void setContentType(std::list<String> contentType)
138  {
139  this->contentType = contentType;
140  }
142  {
143  return this->stateTagSmaller;
144  }
145  void setStateTagSmaller(int stateTagSmaller)
146  {
147  this->stateTagSmaller = stateTagSmaller;
148  }
150  {
151  return this->stateTagBigger;
152  }
153  void setStateTagBigger(int stateTagBigger)
154  {
155  this->stateTagBigger = stateTagBigger;
156  }
157  const String&getExpireBefore()
158  {
159  return this->expireBefore;
160  }
161  void setExpireBefore(const String&expireBefore)
162  {
163  this->expireBefore = expireBefore;
164  }
165  const String&getExpireAfter()
166  {
167  return this->expireAfter;
168  }
169  void setExpireAfter(const String&expireAfter)
170  {
171  this->expireAfter = expireAfter;
172  }
173  std::list<String>& getLabels()
174  {
175  return this->labels;
176  }
177  void setLabels(std::list<String>& labels)
178  {
179  this->labels = labels;
180  }
181  std::list<int> getResourceType()
182  {
183  return this->resourceType;
184  }
185  void addResourceType(int resourceType)
186  {
187  this->resourceType.push_back(resourceType);
188  }
190  {
191  return this->sizeAbove;
192  }
193  void setSizeAbove(int sizeAbove)
194  {
195  this->sizeAbove = sizeAbove;
196  }
197  const String& getCreatedBefore()
198  {
199  return this->createdBefore;
200  }
201  void setCreatedBefore(const String& createdBefore)
202  {
203  this->createdBefore = createdBefore;
204  }
205  const String& getCreatedAfter()
206  {
207  return this->createdAfter;
208  }
209  void setCreatedAfter(const String& createdAfter)
210  {
211  this->createdAfter = createdAfter;
212  }
213  const String& getModifiedSince()
214  {
215  return this->modifiedSince;
216  }
217  void setModifiedSince(const String& modifiedSince)
218  {
219  this->modifiedSince = modifiedSince;
220  }
221  const String& getUnmodifiedSince()
222  {
223  return this->unmodifiedSince;
224  }
226  {
227  this->unmodifiedSince = unmodifiedSince;
228  }
229 };
230 
234 struct Entity
235 {
236 private:
237  std::vector<std::reference_wrapper<Observer>> observers;
238 
239 public:
244  {
245  observers.push_back(o);
246  }
251  {
252  for (Observer& o : observers)
253  {
254  o.notify(this->m_name);
255  }
256  }
261  static Entity* getByHierUri(const String& uri);
262 
263  using collection = std::list<Entity*>;
264  using collectionIt = collection::iterator;
265  using Children = std::list<Entity*>;
266  using Child = Children::iterator;
267 
269  String m_resourceId;
270  String m_name;
271  String m_parentID;
272  int m_type; // discriminator (dynamic_cast<> not allowed without rtti)
275  std::list<String> m_labels;
276  String m_creator;
277  std::list<AccessControlPolicy*> m_acps;
278 
279  Entity(){};
280  Entity(const String& name, int type, Entity* parent);
281  virtual ~Entity();
282 
283  virtual const __FlashStringHelper* headerStr() const
284  {
285  return nullptr;
286  }
287  void init(); // from constructor
288  virtual void clear(); // not from constuctor
289  void printTo(printfmt to, int level = 0) const;
290  virtual void printLocalTo(printfmt to, int level) const
291  {
292  (void)to;
293  (void)level;
294  }
295  void setExpirationTime(String et);
296  void setResourceID(String id)
297  {
298  m_resourceId = id;
299  }
300 
301  const String& getCreator() const
302  {
303  return this->m_creator;
304  }
305  void setCreator(String creator)
306  {
307  this->m_creator = creator;
308  }
309  static String generateName(int type)
310  {
311  return String(type) + "_" + String((long)get_utime());
312  }
313  const String getParentID() const
314  {
315  if (m_parent)
316  {
317  #if DEBUG
318  printf("DEBUG: getting parent RI: %s\n", m_parent->getResourceIdentifier().c_str());
319  #endif
321  }
322  else
323  {
324  return emptyString;
325  }
326  }
327  const String& getName() const
328  {
329  return m_name;
330  }
331  int getType() const
332  {
333  return m_type;
334  }
335  String getResourceIdentifier();
336  String getIdentifier();
337  String getFullName();
338 
339  bool addChild(Entity* e);
340 
342  {
343  return children;
344  };
345 
351  #if GROUP_FEAT
352  Group* getGroup();
353  #endif
354  CseBase* getCseBase();
357 
359  {
360  return m_parent ? m_parent->getApplication() : nullptr;
361  }
363  {
364  return m_parent ? m_parent->getContainer() : nullptr;
365  }
366 
368 
369  static Entity* getByName(const String& name);
370  static Entity* getByName(const String& name, const String& parentName);
371  static Entity* getByIdentifier(const String& identifier);
372 
374  static collectionIt findByName(const String& name);
375  static collectionIt findByResource(const String& name);
376 
377  //static Entity* addNew (const String& name, int type);
378 
379  static ContentInstance* addInstance(const String& name, Container* parent);
380  static Container* addContainer(const String& name, Entity* parent);
381  static Application* addApplication(const String& name);
382  #if GROUP_FEAT
383  static Group* addGroup(const String& name, Entity* parent);
384  #endif
385  static RemoteCse* addRemoteCse(const String& name, CseBase* parent);
386  #if SUBSCRIPTION_FEAT
387  static Subscription* addSubscription(const String& name, Entity* parent);
388  #endif
389  static bool remove(const String& name, int ty = TY_NONE);
390 
391  static void deleteEntity(Entity* e, bool r = false);
392 
393 private:
394  void clearTimes();
395 };
396 
401 struct CseBase : Entity
402 {
403  String m_cseId;
404  int m_cst;
405  std::list<int> m_supportedResTypes;
406  std::list<String> m_poas;
407  std::list<String> m_contentSerializationTypes;
408  std::list<String> m_supportedReleaseVersions;
414  {
415  init();
416  m_cseId = CSE_ID;
417  m_cst = CSE_TYPE;
418  #if HTTP_BINDING
419  m_poas.push_back("http://" + IP + ":" + PORT);
420  #endif // HTTP_BINDING
421  #if MQTTS_BINDING
422  m_poas.push_back("mqtts://"+ String(MQTTS_ENDPOINT) + ":" + String(MQTTS_PORT));
423  #endif // MQTTS_BINDING
428  }
430 
431 
432 
433 public:
438  {
439  if (!csbInstance)
440  {
441  csbInstance = arduino_new(CseBase);
442  }
443  return csbInstance;
444  }
445 
446  void init(); // from constructor
447  void clear(); // not from constructor
448  String getResourceIdentifier();
449  const String& getParentID() const
450  {
451  return emptyString;
452  }
453 };
454 
459 {
460  int cseType;
461  std::list<String> poas;
462  String cseBase;
463  String cseID;
464  // M2M EXT identifier
465  // TRIGGER RECIPIENT ID
467  // nodelink
468  std::list<String> contentSerializationTypes;
469  // E2ESECINFO
470  // trigger reference getMaxNumberOfInstances
471  std::list<String> descendantCses;
472  // multicast capability
473  // external group ID
474  // trigger ENABLE+ activity pattern ELEMENTS
475  std::list<String> supportedReleaseVersions;
481  RemoteCse(const String& name, Entity* parent) : Entity(name, TY16_REMOTE_CSE, (Entity*)parent)
482  {
483  init();
484  }
485 
486  void init(); // from constructor
487  void clear(); // from not constructor
488  static RemoteCse* getByName(const String& name);
489  static RemoteCse* getByIdentifier(const String& identifier);
490 
491  const std::list<String>& getSupportedReleaseVersions() const
492  {
493  return this->supportedReleaseVersions;
494  }
495 
497  {
498  this->supportedReleaseVersions = std::move(supportedReleaseVersions);
499  }
500 
501  const std::list<String>& getDescendantCses() const
502  {
503  return this->descendantCses;
504  }
505 
506  void setDescendantCses(std::list<String>&& descendantCses)
507  {
508  this->descendantCses = std::move(descendantCses);
509  }
510 
511  const std::list<String>& getContentSerializationTypes() const
512  {
513  return this->contentSerializationTypes;
514  }
515 
517  {
518  this->contentSerializationTypes = std::move(contentSerializationTypes);
519  }
520 
522  {
523  return this->requestReachability;
524  }
525 
526  void setRequestReachability(bool requestReachability)
527  {
528  this->requestReachability = requestReachability;
529  }
530 
531  const String& getCseID() const
532  {
533  return this->cseID;
534  }
535 
536  void setCseID(const String& cseID)
537  {
538  this->cseID = cseID;
539  }
540 
541  const String& getCseBase() const
542  {
543  return this->cseBase;
544  }
545 
546  void setCseBase(const String& cseBase)
547  {
548  this->cseBase = cseBase;
549  }
550 
551  const std::list<String>& getPoas() const
552  {
553  return this->poas;
554  }
555 
556  void setPoas(std::list<String>&& poas)
557  {
558  this->poas = std::move(poas);
559  }
560 
561  int getCseType() const
562  {
563  return this->cseType;
564  }
565 
566  void setCseType(int cseType)
567  {
568  this->cseType = cseType;
569  }
570 };
571 
576 {
577 public:
580 
582  // currentNrInstances -> generated
583  // currentByteSize -> generated
584  String m_locationID; // used when considering localization dynamic_cast
587  unsigned int m_stateTag;
588 
590  int getCurrentByteSize();
591 
592  int getMaxInstanceAge() const
593  {
594  return m_maxInstanceAge;
595  }
596 
597  void setMaxInstanceAge(int mia)
598  {
599  m_maxInstanceAge = mia;
600  }
601 
603  {
604  return this->m_maxNumberOfInstances;
605  }
606 
607  void setMaxNumberOfInstances(int maxNumberOfInstances)
608  {
609  this->m_maxNumberOfInstances = maxNumberOfInstances;
610  }
611 
613  {
614  return this->m_maxByteSize;
615  }
616 
617  void setMaxByteSize(int m_maxByteSize)
618  {
619  this->m_maxByteSize = m_maxByteSize;
620  }
621 
622  const String& getLocationID() const
623  {
624  return this->m_locationID;
625  }
626 
627  void setLocationID(const String& locationID)
628  {
629  this->m_locationID = locationID;
630  }
631 
632  const String& getOntologyRef() const
633  {
634  return this->m_ontologyRef;
635  }
636 
637  void setOntologyRef(const String& ontologyRef)
638  {
639  this->m_ontologyRef = ontologyRef;
640  }
641 
642  bool getDisableRetrieval() const
643  {
644  return this->m_disableRetrieval;
645  }
646 
647  void setDisableRetrieval(bool disableRetrieval)
648  {
649  this->m_disableRetrieval = disableRetrieval;
650  }
651 
652  virtual const __FlashStringHelper* headerStr() const
653  {
654  return F("cnt-");
655  }
661  Container(const String& name, Entity* parent) : Entity(name, TY3_CONTAINER, (Entity*)parent)
662  {
664  m_maxByteSize = -1;
665  m_maxInstanceAge = -1;
666  m_disableRetrieval = false;
667  m_stateTag = 0;
668  }
669 
671  {
672  if (m_stateTag == UINT_MAX-1)
673  {
674  m_stateTag = 0;
675  }
676  m_stateTag++;
677  }
678 
679  unsigned int getStateTag()
680  {
681  return m_stateTag;
682  }
683 
684  virtual ~Container();
685 
686  void init(); // from constructor
687  void clear(); // not from constructor
688  virtual void printLocalTo(printfmt to, int level) const;
689 
690  static Container* getByIdentifier(const String& identifier);
691  static Container* getByName(const String& name);
692 };
693 
698 {
700  String m_content;
701  unsigned int m_stateTag = 0;
702 
703  virtual const __FlashStringHelper* headerStr() const
704  {
705  return F("cin-");
706  }
707 
713  ContentInstance(const String& name, Container* parent) : Entity(name, TY4_CONTENT_INSTANCE, parent) {}
714  virtual ~ContentInstance();
715 
716  void init(); // from constructor
717  //void clear (); // not from constructor
718  virtual void printLocalTo(printfmt to, int level) const;
719 
720  unsigned int getStateTag() {
721  return this->m_stateTag;
722  }
723  void setStateTag(unsigned int stateTag) {
724  this->m_stateTag = stateTag;
725  }
726 
727  const String& getContent() const
728  {
729  return m_content;
730  }
731 
732  void setContent(String content)
733  {
734  m_content = content;
735  }
736 
737  const String& getContentFormat() const
738  {
739  return m_contentFormat;
740  }
741 
742  void setContentFormat(const String& contentFormat)
743  {
744  m_contentFormat = contentFormat;
745  }
746 
747  static ContentInstance* getByName(const String& name);
748  static ContentInstance* getByIdentifier(const String& identifier);
749 };
750 
755 {
756  String m_api; // M
757  String m_apn;
758  std::list<String> m_poa;
760  bool m_rr; // M
761  std::list<String> m_contentSerialisation;
762  // E2ESECINFO
763  // ACTIVITY PATTERN ELEMENTS
764  // TRIGGER ENABLE
765  // SESSION CAPABILITIES
766  std::list<String> m_supportedReleaseVersions; // M
767 
768  virtual const __FlashStringHelper* headerStr() const
769  {
770  return F("ae-");
771  };
772 
778  Application(const String& name): Entity(name, TY2_APPL_ENTITY, CseBase::getInstance())
779  {
780  this->m_rr = false;
781  }
782 
783  virtual ~Application();
784 
785  void init(); // from constructor
786  //void clear (); // not from constructor
787  //const String& getParentIdentifier () const;
788  virtual void printLocalTo(printfmt to, int level) const;
789 
790  static Application* getByName(const String& name);
791  static Application* getByIdentifier(const String& identifier);
792 };
793 
794 #if SUBSCRIPTION_FEAT
799 {
800  static Subscription* getByName(const String& name);
801  static Subscription* getByIdentifier(const String& identifier);
802 
803  // EventNotificationCriteria eventNotificationCriteria;
805  std::list<String> notificationURI;
806  String groupID;
814  String creator;
816 
822  Subscription(const String& name, Entity* parent) : Entity(name, TY23_SUBSCRIPTION, (Entity*)parent)
823  {
825  expirationCounter = -1;
829  }
830 
831  virtual ~Subscription();
832 
834  {
835  return this->expirationCounter;
836  }
837 
838  void setExpirationCounter(int expirationCounter)
839  {
840  this->expirationCounter = expirationCounter;
841  }
842 
843  const String& getNotificationForwardingURI() const
844  {
845  return this->notificationForwardingURI;
846  }
847 
849  {
850  this->notificationForwardingURI = notificationForwardingURI;
851  }
852 
853  // BatchNotify batchNotify;
854  // RateLimit rateLimit;
855 
857  {
858  return this->preSubscriptionNotify;
859  }
860 
861  void setPreSubscriptionNotify(int preSubscriptionNotify)
862  {
863  this->preSubscriptionNotify = preSubscriptionNotify;
864  }
865 
867  {
868  return this->pendingNotification;
869  }
870 
871  void setPendingNotification(int pendingNotification)
872  {
873  this->pendingNotification = pendingNotification;
874  }
875 
877  {
878  return this->notificationStoragePriority;
879  }
880 
881  void setNotificationStoragePriority(int notificationStoragePriority)
882  {
883  this->notificationStoragePriority = notificationStoragePriority;
884  }
885 
886  bool getLatestNotify() const
887  {
888  return this->latestNotify;
889  }
890 
891  void setLatestNotify(bool latestNotify)
892  {
893  this->latestNotify = latestNotify;
894  }
895 
897  {
898  return this->notificationContentType;
899  }
900 
902  {
903  this->notificationContentType = notificationContentType;
904  }
905 
907  {
908  this->notificationContentType = static_cast<NotificationContentType>(nct);
909  }
910 
911  const String& getNotificationEventCat() const
912  {
913  return this->notificationEventCat;
914  }
915 
917  {
918  this->notificationEventCat = notificationEventCat;
919  }
920 
921  const String& getCreator() const
922  {
923  return this->creator;
924  }
925 
926  void setCreator(const String& creator)
927  {
928  this->creator = creator;
929  }
930 
931  const String& getSubscriberURI() const
932  {
933  return this->subscriberURI;
934  }
935 
936  void setSubscriberURI(const String& subscriberURI)
937  {
938  this->subscriberURI = subscriberURI;
939  }
940 
941  std::list<String> getNotificationURI()
942  {
943  return this->notificationURI;
944  }
945 
946  void setNotificationURI(std::list<String>&& notificationURI)
947  {
948  this->notificationURI = std::move(notificationURI);
949  }
950 };
951 #endif // SUBSCRIPTION_FEAT
952 
957 {
958  std::list<AccessControlRule> m_privileges;
959  std::list<AccessControlRule> m_selfPrivileges;
960  // authorization Decision ResourceIDs
961  // authorization Politcy ResourcesIDS
962  // authorization Information ResourceIDs
963 public:
968  AccessControlPolicy(const String& name)
969  : Entity(name, TY1_ACP, (Entity*)CseBase::getInstance())
970  {
971  }
972 };
973 
978 {
979 
981  : AccessControlPolicy("ACP_ADMIN")
982  {
983  init();
984  }
986 
987 public:
992  {
993  if (!acpInstance)
994  {
995  Entity* e = Entity::getByHierUri("/" + CSE_ID + "/" + CSE_NAME + "/" + ACP_ADMIN_NAME);
996  if (e)
997  {
998  // Entity::deleteEntity(e);
999  acpInstance = e->getAcp();
1000  }
1001  else
1002  {
1003  acpInstance = arduino_new(AcpAdmin);
1004  }
1005  }
1006  return acpInstance;
1007  }
1008  void init();
1009 };
1010 
1011 #if GROUP_FEAT
1016 struct Group : Entity
1017 {
1018  std::list<String> m_memberIds;
1019  virtual const __FlashStringHelper* headerStr() const
1020  {
1021  return F("grp-");
1022  };
1028  Group(const String& name, Entity* parent) : Entity(name, TY9_GROUP, parent) {
1029  m_memberIds.clear();
1030  }
1031  virtual ~Group();
1032 
1033  void add(Entity* e);
1034  virtual void printLocalTo(printfmt to, int level) const;
1035  void addMemberId(const String& id)
1036  {
1037  m_memberIds.push_back(id);
1038  }
1039  const std::list<String>& getMemberIds()
1040  {
1041  return m_memberIds;
1042  }
1043  static Group* getByName(const String& name);
1044  static Group* getByIdentifier(const String& identifier);
1045 };
1046 
1047 #endif // GROUP FEATURE
1048 
1049 #endif // __LOM2M_ENTITY_H
NotificationContentType
Definition: Enum.h:31
@ NCT_ALL_ATTRIBUTES
Definition: Enum.h:33
@ FU_CONDITIONAL_RETRIEVAL
Definition: Enum.h:93
utime_t get_utime()
Definition: bsp-esp8266.cpp:23
std::function< void(int level, const char *tag, const char *data)> printfmt
Definition: bsp.h:108
const String emptyString
Definition: Observer.h:21
String IP
Definition: lom2m.cpp:18
String ACP_ADMIN_NAME
Definition: lom2m.cpp:15
int MQTTS_PORT
Definition: lom2m.cpp:34
String MQTTS_ENDPOINT
Definition: lom2m.cpp:36
String CSE_ID
Definition: lom2m.cpp:13
String CSE_NAME
Definition: lom2m.cpp:14
String PORT
Definition: lom2m.cpp:17
int MAX_NUMBER_OF_INSTANCES_DEFAULT
Definition: lom2m.cpp:40
std::list< int > SUPPORTED_RESTYPE
Definition: lom2m.cpp:43
std::list< String > SUPPORTED_RELEASE_VERSIONS
Definition: lom2m.cpp:44
std::list< String > SERIALISATION_TYPES
Definition: lom2m.cpp:45
int CSE_TYPE
Definition: lom2m.cpp:16
#define TY9_GROUP
Definition: lom2m.h:24
#define TY1_ACP
Definition: lom2m.h:19
#define TY4_CONTENT_INSTANCE
Definition: lom2m.h:22
#define TY2_APPL_ENTITY
Definition: lom2m.h:20
#define TY5_CSEBASE
Definition: lom2m.h:23
#define TY16_REMOTE_CSE
Definition: lom2m.h:25
#define TY3_CONTAINER
Definition: lom2m.h:21
#define TY23_SUBSCRIPTION
Definition: lom2m.h:26
#define TY_NONE
Definition: lom2m.h:18
Definition: Entity.h:957
std::list< AccessControlRule > m_selfPrivileges
Definition: Entity.h:959
std::list< AccessControlRule > m_privileges
Definition: Entity.h:958
AccessControlPolicy(const String &name)
Definition: Entity.h:968
Definition: Entity.h:978
static AccessControlPolicy * getInstance()
Definition: Entity.h:991
AcpAdmin()
Definition: Entity.h:980
static AccessControlPolicy * acpInstance
Definition: Entity.h:985
void init()
Definition: Entity.cpp:588
Definition: Entity.h:755
String m_ontologyRef
Definition: Entity.h:759
std::list< String > m_contentSerialisation
Definition: Entity.h:761
virtual const __FlashStringHelper * headerStr() const
Definition: Entity.h:768
static Application * getByName(const String &name)
Definition: Entity.cpp:404
virtual ~Application()
Definition: Entity.cpp:400
std::list< String > m_supportedReleaseVersions
Definition: Entity.h:766
String m_api
Definition: Entity.h:756
std::list< String > m_poa
Definition: Entity.h:758
Application(const String &name)
Definition: Entity.h:778
bool m_rr
Definition: Entity.h:760
virtual void printLocalTo(printfmt to, int level) const
Definition: Entity.cpp:416
static Application * getByIdentifier(const String &identifier)
Definition: Entity.cpp:410
String m_apn
Definition: Entity.h:757
Definition: Entity.h:576
int getMaxNumberOfInstances() const
Definition: Entity.h:602
int getCurrentNumberOfInstances()
Definition: Entity.cpp:514
void setOntologyRef(const String &ontologyRef)
Definition: Entity.h:637
int m_maxByteSize
Definition: Entity.h:579
bool getDisableRetrieval() const
Definition: Entity.h:642
unsigned int getStateTag()
Definition: Entity.h:679
void setMaxNumberOfInstances(int maxNumberOfInstances)
Definition: Entity.h:607
int getMaxInstanceAge() const
Definition: Entity.h:592
void setLocationID(const String &locationID)
Definition: Entity.h:627
int getCurrentByteSize()
Definition: Entity.cpp:527
unsigned int m_stateTag
Definition: Entity.h:587
String m_ontologyRef
Definition: Entity.h:585
int m_maxInstanceAge
Definition: Entity.h:581
void setMaxInstanceAge(int mia)
Definition: Entity.h:597
bool m_disableRetrieval
Definition: Entity.h:586
String m_locationID
Definition: Entity.h:584
int m_maxNumberOfInstances
Definition: Entity.h:578
static Container * getByIdentifier(const String &identifier)
Definition: Entity.cpp:489
void incrementStateTag()
Definition: Entity.h:670
void clear()
Definition: Entity.cpp:495
void setDisableRetrieval(bool disableRetrieval)
Definition: Entity.h:647
int getMaxByteSize()
Definition: Entity.h:612
const String & getOntologyRef() const
Definition: Entity.h:632
void setMaxByteSize(int m_maxByteSize)
Definition: Entity.h:617
void init()
static Container * getByName(const String &name)
Definition: Entity.cpp:502
const String & getLocationID() const
Definition: Entity.h:622
virtual const __FlashStringHelper * headerStr() const
Definition: Entity.h:652
virtual void printLocalTo(printfmt to, int level) const
Definition: Entity.cpp:508
virtual ~Container()
Definition: Entity.cpp:485
Container(const String &name, Entity *parent)
Definition: Entity.h:661
Definition: Entity.h:698
virtual void printLocalTo(printfmt to, int level) const
Definition: Entity.cpp:559
virtual const __FlashStringHelper * headerStr() const
Definition: Entity.h:703
ContentInstance(const String &name, Container *parent)
Definition: Entity.h:713
void setContentFormat(const String &contentFormat)
Definition: Entity.h:742
const String & getContentFormat() const
Definition: Entity.h:737
String m_contentFormat
Definition: Entity.h:699
void setStateTag(unsigned int stateTag)
Definition: Entity.h:723
void setContent(String content)
Definition: Entity.h:732
const String & getContent() const
Definition: Entity.h:727
String m_content
Definition: Entity.h:700
unsigned int getStateTag()
Definition: Entity.h:720
virtual ~ContentInstance()
Definition: Entity.cpp:549
static ContentInstance * getByName(const String &name)
Definition: Entity.cpp:553
unsigned int m_stateTag
Definition: Entity.h:701
static ContentInstance * getByIdentifier(const String &identifier)
Definition: Entity.cpp:543
Definition: Entity.h:402
CseBase()
Definition: Entity.h:413
std::list< String > m_supportedReleaseVersions
Definition: Entity.h:408
void init()
Definition: Entity.cpp:435
String m_cseId
Definition: Entity.h:403
std::list< String > m_contentSerializationTypes
Definition: Entity.h:407
int m_cst
Definition: Entity.h:404
String getResourceIdentifier()
Definition: Entity.cpp:430
void clear()
Definition: Entity.cpp:439
static CseBase * csbInstance
Definition: Entity.h:429
std::list< int > m_supportedResTypes
Definition: Entity.h:405
std::list< String > m_poas
Definition: Entity.h:406
const String & getParentID() const
Definition: Entity.h:449
static CseBase * getInstance()
Definition: Entity.h:437
Definition: Entity.h:235
void printTo(printfmt to, int level=0) const
Definition: Entity.cpp:261
time_t m_time_expiration
Definition: Entity.h:273
std::list< Entity * > collection
Definition: Entity.h:263
void setExpirationTime(String et)
Definition: Entity.cpp:202
String m_name
Definition: Entity.h:270
static bool remove(const String &name, int ty=TY_NONE)
String getFullName()
Definition: Entity.cpp:180
static collectionIt findByResource(const String &name)
Definition: Entity.cpp:123
Application * getApplication()
Definition: Entity.cpp:80
CseBase * getCseBase()
Definition: Entity.cpp:66
void notify_observers()
Definition: Entity.h:250
bool addChild(Entity *e)
Definition: Entity.cpp:357
const String & getName() const
Definition: Entity.h:327
Container * getContainer()
Definition: Entity.cpp:85
static void deleteEntity(Entity *e, bool r=false)
Definition: Entity.cpp:287
static Entity * getByIdentifier(const String &identifier)
Definition: Entity.cpp:243
static String generateName(int type)
Definition: Entity.h:309
time_t m_time_creation
Definition: Entity.h:273
static Entity * getByName(const String &name)
Definition: Entity.cpp:220
collection::iterator collectionIt
Definition: Entity.h:264
int getType() const
Definition: Entity.h:331
void register_observer(Observer &o)
Definition: Entity.h:243
int m_type
Definition: Entity.h:272
std::list< String > m_labels
Definition: Entity.h:275
AccessControlPolicy * getAcp()
Definition: Entity.cpp:70
Application * getApplicationParent()
Definition: Entity.h:358
static Subscription * addSubscription(const String &name, Entity *parent)
Definition: Entity.cpp:351
String getIdentifier()
Definition: Entity.cpp:159
void init()
Definition: Entity.cpp:207
Entity()
Definition: Entity.h:279
virtual void clear()
Definition: Entity.cpp:212
virtual void printLocalTo(printfmt to, int level) const
Definition: Entity.h:290
void setCreator(String creator)
Definition: Entity.h:305
Subscription * getSubscription()
Definition: Entity.cpp:102
String getResourceIdentifier()
Definition: Entity.cpp:168
Children::iterator Child
Definition: Entity.h:266
std::list< AccessControlPolicy * > m_acps
Definition: Entity.h:277
Entity * m_parent
Definition: Entity.h:274
static collection entities
Definition: Entity.h:373
static Entity * getByHierUri(const String &uri)
Definition: Entity.cpp:140
void setResourceID(String id)
Definition: Entity.h:296
Container * getContainerParent()
Definition: Entity.h:362
virtual const __FlashStringHelper * headerStr() const
Definition: Entity.h:283
Children children
Definition: Entity.h:268
static Application * addApplication(const String &name)
Definition: Entity.cpp:332
const String & getCreator() const
Definition: Entity.h:301
String m_resourceId
Definition: Entity.h:269
const String getParentID() const
Definition: Entity.h:313
time_t m_time_modification
Definition: Entity.h:273
ContentInstance * getInstance()
Definition: Entity.cpp:90
std::list< Entity * > Children
Definition: Entity.h:265
virtual ~Entity()
Definition: Entity.cpp:275
String m_creator
Definition: Entity.h:276
static RemoteCse * addRemoteCse(const String &name, CseBase *parent)
Definition: Entity.cpp:339
static collectionIt findByName(const String &name)
Definition: Entity.cpp:113
String m_parentID
Definition: Entity.h:271
Children getChildren()
Definition: Entity.h:341
static ContentInstance * addInstance(const String &name, Container *parent)
Definition: Entity.cpp:345
static Container * addContainer(const String &name, Entity *parent)
Definition: Entity.cpp:327
RemoteCse * getRemoteCse()
Definition: Entity.cpp:75
Definition: Entity.h:42
FilterCriteria()
Definition: Entity.h:81
int getStateTagBigger()
Definition: Entity.h:149
String unmodifiedSince
Definition: Entity.h:47
void init()
Definition: Entity.h:65
void setOffset(int offset)
Definition: Entity.h:121
bool unsupportedFilter
Definition: Entity.h:63
String createdBefore
Definition: Entity.h:44
void setStateTagBigger(int stateTagBigger)
Definition: Entity.h:153
String expireBefore
Definition: Entity.h:50
int getSizeBelow()
Definition: Entity.h:125
int getLimit()
Definition: Entity.h:101
std::list< int > resourceType
Definition: Entity.h:53
void setLimit(int limit)
Definition: Entity.h:105
void setExpireAfter(const String &expireAfter)
Definition: Entity.h:169
void setExpireBefore(const String &expireBefore)
Definition: Entity.h:161
int level
Definition: Entity.h:61
int stateTagSmaller
Definition: Entity.h:48
void setLabels(std::list< String > &labels)
Definition: Entity.h:177
const String & getExpireBefore()
Definition: Entity.h:157
bool hasUnsupportedFilter()
Definition: Entity.h:89
int filterUsage
Definition: Entity.h:59
int getLevel()
Definition: Entity.h:109
int getSizeAbove()
Definition: Entity.h:189
int stateTagBigger
Definition: Entity.h:49
std::list< String > labels
Definition: Entity.h:52
void unsupportedFilterOn()
Definition: Entity.h:85
int getStateTagSmaller()
Definition: Entity.h:141
const String & getCreatedAfter()
Definition: Entity.h:205
int getFilterUsage()
Definition: Entity.h:93
int sizeBelow
Definition: Entity.h:55
std::list< String > & getLabels()
Definition: Entity.h:173
void setLevel(int level)
Definition: Entity.h:113
void setCreatedAfter(const String &createdAfter)
Definition: Entity.h:209
const String & getCreatedBefore()
Definition: Entity.h:197
std::list< int > getResourceType()
Definition: Entity.h:181
void setUnmodifiedSince(const String &unmodifiedSince)
Definition: Entity.h:225
void setFilterUsage(int filterUsage)
Definition: Entity.h:97
int limit
Definition: Entity.h:60
int sizeAbove
Definition: Entity.h:54
String createdAfter
Definition: Entity.h:45
String modifiedSince
Definition: Entity.h:46
void setSizeBelow(int sizeBelow)
Definition: Entity.h:129
void setModifiedSince(const String &modifiedSince)
Definition: Entity.h:217
void setCreatedBefore(const String &createdBefore)
Definition: Entity.h:201
std::list< String > contentType
Definition: Entity.h:56
int getOffset()
Definition: Entity.h:117
std::list< String > getContentType()
Definition: Entity.h:133
void addResourceType(int resourceType)
Definition: Entity.h:185
void setSizeAbove(int sizeAbove)
Definition: Entity.h:193
String expireAfter
Definition: Entity.h:51
const String & getModifiedSince()
Definition: Entity.h:213
const String & getUnmodifiedSince()
Definition: Entity.h:221
void setStateTagSmaller(int stateTagSmaller)
Definition: Entity.h:145
void setContentType(std::list< String > contentType)
Definition: Entity.h:137
int offset
Definition: Entity.h:62
const String & getExpireAfter()
Definition: Entity.h:165
Definition: Entity.h:459
void setSupportedReleaseVersions(std::list< String > &&supportedReleaseVersions)
Definition: Entity.h:496
static RemoteCse * getByName(const String &name)
Definition: Entity.cpp:470
void setContentSerializationTypes(std::list< String > &&contentSerializationTypes)
Definition: Entity.h:516
const String & getCseID() const
Definition: Entity.h:531
std::list< String > supportedReleaseVersions
Definition: Entity.h:475
std::list< String > poas
Definition: Entity.h:461
void setPoas(std::list< String > &&poas)
Definition: Entity.h:556
String cseID
Definition: Entity.h:463
const std::list< String > & getDescendantCses() const
Definition: Entity.h:501
static RemoteCse * getByIdentifier(const String &identifier)
Definition: Entity.cpp:476
const std::list< String > & getPoas() const
Definition: Entity.h:551
std::list< String > contentSerializationTypes
Definition: Entity.h:468
const std::list< String > & getSupportedReleaseVersions() const
Definition: Entity.h:491
RemoteCse(const String &name, Entity *parent)
Definition: Entity.h:481
int getCseType() const
Definition: Entity.h:561
void setDescendantCses(std::list< String > &&descendantCses)
Definition: Entity.h:506
bool getRequestReachability() const
Definition: Entity.h:521
void setCseBase(const String &cseBase)
Definition: Entity.h:546
void setRequestReachability(bool requestReachability)
Definition: Entity.h:526
int cseType
Definition: Entity.h:460
const String & getCseBase() const
Definition: Entity.h:541
std::list< String > descendantCses
Definition: Entity.h:471
const std::list< String > & getContentSerializationTypes() const
Definition: Entity.h:511
void setCseID(const String &cseID)
Definition: Entity.h:536
void clear()
Definition: Entity.cpp:459
String cseBase
Definition: Entity.h:462
void setCseType(int cseType)
Definition: Entity.h:566
bool requestReachability
Definition: Entity.h:466
void init()
Definition: Entity.cpp:454
Definition: Entity.h:799
void setPreSubscriptionNotify(int preSubscriptionNotify)
Definition: Entity.h:861
int notificationStoragePriority
Definition: Entity.h:810
void setCreator(const String &creator)
Definition: Entity.h:926
void setNotificationForwardingURI(String notificationForwardingURI)
Definition: Entity.h:848
String notificationEventCat
Definition: Entity.h:813
virtual ~Subscription()
Definition: Entity.cpp:568
static Subscription * getByName(const String &name)
Definition: Entity.cpp:579
const String & getSubscriberURI() const
Definition: Entity.h:931
void setPendingNotification(int pendingNotification)
Definition: Entity.h:871
int preSubscriptionNotify
Definition: Entity.h:808
NotificationContentType notificationContentType
Definition: Entity.h:812
std::list< String > getNotificationURI()
Definition: Entity.h:941
const String & getNotificationForwardingURI() const
Definition: Entity.h:843
String notificationForwardingURI
Definition: Entity.h:807
void setLatestNotify(bool latestNotify)
Definition: Entity.h:891
void setNotificationURI(std::list< String > &&notificationURI)
Definition: Entity.h:946
const String & getNotificationEventCat() const
Definition: Entity.h:911
int getNotificationStoragePriority() const
Definition: Entity.h:876
const String & getCreator() const
Definition: Entity.h:921
bool getLatestNotify() const
Definition: Entity.h:886
int pendingNotification
Definition: Entity.h:809
static Subscription * getByIdentifier(const String &identifier)
Definition: Entity.cpp:573
void setSubscriberURI(const String &subscriberURI)
Definition: Entity.h:936
void setExpirationCounter(int expirationCounter)
Definition: Entity.h:838
int getPendingNotification() const
Definition: Entity.h:866
Subscription(const String &name, Entity *parent)
Definition: Entity.h:822
int getExpirationCounter() const
Definition: Entity.h:833
int getPreSubscriptionNotify() const
Definition: Entity.h:856
String groupID
Definition: Entity.h:806
void setNotificationContentType(NotificationContentType notificationContentType)
Definition: Entity.h:901
NotificationContentType getNotificationContentType() const
Definition: Entity.h:896
void setNotificationEventCat(const String &notificationEventCat)
Definition: Entity.h:916
void setNotificationContentType(int nct)
Definition: Entity.h:906
void setNotificationStoragePriority(int notificationStoragePriority)
Definition: Entity.h:881
int expirationCounter
Definition: Entity.h:804
String subscriberURI
Definition: Entity.h:815
bool latestNotify
Definition: Entity.h:811
std::list< String > notificationURI
Definition: Entity.h:805
String creator
Definition: Entity.h:814