35 #ifndef IMS_CONTAINERS_H__
36 #define IMS_CONTAINERS_H__
45 #if defined _WIN32 || defined __CYGWIN__
47 #define DLL_EXPORT __attribute__ ((dllexport))
48 #define DLL_IMPORT __attribute__ ((dllimport))
50 #define DLL_EXPORT __declspec(dllexport) // Note: actually gcc seems to also supports this syntax.
51 #define DLL_IMPORT __declspec(dllimport) // Note: actually gcc seems to also supports this syntax.
56 #define DLL_EXPORT __attribute__ ((visibility ("default")))
57 #define DLL_IMPORT __attribute__ ((visibility ("default")))
58 #define DLL_LOCAL __attribute__ ((visibility ("hidden")))
66 #if defined(_EXPORTING_IMS)
67 #define LIBSPEC DLL_EXPORT
68 #define LIBLOCAL DLL_LOCAL
69 #define EXPIMP_TEMPLATE
70 #elif defined(_STATIC_IMS)
73 #define EXPIMP_TEMPLATE
75 #define LIBSPEC DLL_IMPORT
76 #define LIBLOCAL DLL_LOCAL
77 #define EXPIMP_TEMPLATE extern
96 ListBase(
const std::string& Name =
"[no name]",
const std::time_t& modified_time = std::time(
nullptr));
116 typedef typename std::list<T>::iterator
iterator;
137 const_iterator begin()
const;
141 const_iterator end()
const;
144 const_iterator cbegin()
const;
147 const_iterator cend()
const;
154 bool operator==(
ListBase const& rhs)
const;
159 const std::array<std::uint8_t, 16> GetUUID()
const;
169 const std::time_t& ModifiedTime()
const;
180 std::string ModifiedTimeFormat()
const;
187 const std::string& Name()
const;
198 void assign(
size_t n,
const T& val);
211 void push_front(
const T& val);
223 void push_back(
const T& val);
236 iterator insert(iterator position,
const T& val);
247 iterator insert(iterator position, const_iterator first, const_iterator last);
254 iterator erase(iterator position);
262 iterator erase(iterator first, iterator last);
271 void resize(
size_t n);
285 std::size_t size()
const;
290 ListImpl *p_ListImpl;
301 template <
typename T>
315 typedef typename std::deque<T>::iterator
iterator;
336 const_iterator begin()
const;
340 const_iterator end()
const;
343 const_iterator cbegin()
const;
346 const_iterator cend()
const;
351 DequeBase(
const std::string& Name =
"[no name]",
const std::time_t& modified_time = std::time(
nullptr));
356 DequeBase(
size_t,
const T&,
const std::string& Name =
"[no name]",
const std::time_t& modified_time = std::time(
nullptr));
358 DequeBase(const_iterator first, const_iterator last,
const std::string& Name =
"[no name]",
const std::time_t& modified_time = std::time(
nullptr));
368 T& operator[](
int idx);
385 const T& operator[](
int idx)
const;
391 bool operator==(
DequeBase const& rhs)
const;
406 const std::array<std::uint8_t, 16> GetUUID()
const;
413 const std::time_t& ModifiedTime()
const;
424 std::string ModifiedTimeFormat()
const;
431 const std::string& Name()
const;
446 iterator insert(iterator pos,
const T& value);
449 iterator insert(const_iterator pos,
size_t count,
const T& value);
452 iterator insert(iterator pos, const_iterator first, const_iterator last);
455 void push_back(
const T& value);
461 void push_front(
const T& value);
467 iterator erase(iterator pos);
470 iterator erase(iterator first, iterator last);
473 std::size_t size()
const;
477 DequeImpl *p_DequeImpl;
Template Class encapsulating a list object and acting as a base list class for other classes in the l...
Definition: Containers.h:91
std::deque< T >::const_iterator const_iterator
Const Iterator defined for user readback of DequeBase.
Definition: Containers.h:318
std::list< T >::const_iterator const_iterator
Const Iterator defined for user readback of ListBase.
Definition: Containers.h:119
The entire API is encapsulated by the iMS namespace.
Definition: Auxiliary.h:95
Template Class encapsulating a deque object and acting as a base deque class for other classes in the...
Definition: Containers.h:302
std::list< T >::iterator iterator
Iterator defined for user manipulation of ListBase.
Definition: Containers.h:117
std::deque< T >::iterator iterator
Iterator defined for user manipulation of DequeBase.
Definition: Containers.h:316