ANNA Suite  2020b
Multipurpose development suite for Telco applications
SetFacade.hpp
Go to the documentation of this file.
1 // ANNA - Anna is Not Nothingness Anymore //
2 // //
3 // (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo //
4 // //
5 // See project site at http://redmine.teslayout.com/projects/anna-suite //
6 // See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
7 
8 
9 #ifndef anna_dbos_SetFacade_hpp
10 #define anna_dbos_SetFacade_hpp
11 
12 #include <vector>
13 
14 #include <anna/dbos/Set.hpp>
16 
17 namespace anna {
18 
19 namespace dbos {
20 
36 template <typename T> class SetFacade : public ObjectFacade < Set <T> > {
37 public:
38  typedef typename Set<T>::iterator iterator;
40 
48  static int size(Set<T>* t) { return (t == NULL) ? 0 : t->size(); }
49 
55  static iterator begin(Set<T>* t) {
56  return (t == NULL) ? iterator(0) : t->begin();
57  }
58 
64  static iterator end(Set<T>* t) {
65  return (t == NULL) ? iterator(0) : t->end();
66  }
67 
73  static const_iterator begin(const Set<T>* t) {
74  return (t == NULL) ? const_iterator(0) : t->begin();
75  }
76 
82  static const_iterator end(const Set<T>* t) {
83  return (t == NULL) ? const_iterator(0) : t->end();
84  }
89  static T* data(iterator ii) { return Set<T>::data(ii); }
90 
95  static const T* data(const_iterator ii) { return Set<T>::data(ii); }
96 
97 protected:
102 };
103 
110 #define dbos_prepare_set(T) \
111  template <> anna::dbos::StorageArea* anna::dbos::ObjectFacade < anna::dbos::Set <T> >::st_storageArea = NULL
112 
119 #define dbos_declare_set(T) \
120  friend class anna::Allocator<T>; \
121  friend class anna::dbos::Set <T>
122 
123 }
124 }
125 
126 #endif
const_iterator begin() const
Definition: Set.hpp:88
Set< T >::iterator iterator
Definition: SetFacade.hpp:38
Definition: SetFacade.hpp:36
Definition: Set.hpp:65
Container::iterator iterator
Definition: Set.hpp:82
static T * data(iterator &ii)
Definition: Set.hpp:130
static iterator begin(Set< T > *t)
Definition: SetFacade.hpp:55
static const_iterator begin(const Set< T > *t)
Definition: SetFacade.hpp:73
Container::const_iterator const_iterator
Definition: Set.hpp:76
static int size(Set< T > *t)
Definition: SetFacade.hpp:48
SetFacade()
Definition: SetFacade.hpp:101
Definition: ObjectFacade.hpp:49
Set< T >::const_iterator const_iterator
Definition: SetFacade.hpp:39
static const T * data(const_iterator ii)
Definition: SetFacade.hpp:95
Definition: app.hpp:12
const_iterator end() const
Definition: Set.hpp:100
static const_iterator end(const Set< T > *t)
Definition: SetFacade.hpp:82
static T * data(iterator ii)
Definition: SetFacade.hpp:89
static iterator end(Set< T > *t)
Definition: SetFacade.hpp:64
int size() const
Definition: Set.hpp:124