Go to the documentation of this file.
2 # define _OME_SET_H "$Id: OMEset.h 312 2020-03-21 21:25:35Z geoff $"
60 template <
typename STREAMTYPE> STREAMTYPE &
outputOnStream(STREAMTYPE &outputStream,
101 if (this->data == arg.
data) {
102 std::cerr <<
"OMEset assignment to self, ref=" <<
totalReferences() <<
"\n";
116 if (data == arg.
data) {
119 return (*data == *arg.
data);
124 if (data == arg.
data) {
127 return (*data != *arg.
data);
130 bool operator==(
const OMEbaseType &arg)
const;
132 bool operator!=(
const OMEbaseType &arg)
const;
209 OMEbaseType *nextElement();
211 void resetIterator();
215 return (data->elementCount());
220 return (data->isEmpty());
225 return (data->elementExists(elem));
238 template <
typename STREAMTYPE> STREAMTYPE &
outputOnStream(STREAMTYPE &outputStream, int_fast16_t indent = 0,
241 data->outputOnStream(outputStream, indent, includeTypePrefix);
242 return (outputStream);
248 template <
typename STREAMTYPE>
inline STREAMTYPE &
operator<<(STREAMTYPE &outputStream,
const OMEset &data)
251 return (outputStream);
OME reference count implementation.
uint32_t isEmpty() const OME_ALWAYS_INLINE
Definition: OMEset.h:53
bool operator!=(const OMEtype &lArg, const OMEtype &rArg)
Definition: OMEtype_operators.cpp:5508
uint32_t elementCount() const OME_ALWAYS_INLINE
Returns the number of elements in the set.
Definition: OMEset.h:213
#define OME_DELETE_OBJECT(ptr)
Definition: OMEmanifests.h:159
const char s[]
Definition: t.cpp:4
OMEset * deepCopy() const
Definition: OMEset.h:134
bool elementExists(const OMEtype &elem) const OME_ALWAYS_INLINE
Returns a Boolean indication if an indicated OMEtype element is present within the set.
Definition: OMEset.h:223
bool operator==(const OMEset &arg) const
Definition: OMEset.h:114
bool operator==(const OMEsetStorage &arg) const
Definition: OMEset.cpp:55
Implements text and binary string storage.
Definition: OMEstring.h:305
OMEset(OMEsetStorage *s)
Definition: OMEset.h:70
OMEsetStorage * data
Definition: OMErefCount.h:82
OMEset & operator=(const OMEset &arg)
Definition: OMEset.h:99
bool operator!=(const OMEset &arg) const
Definition: OMEset.h:122
OMEset & operator+=(const OMEtype &item)
Add element as-is into set. If the element is a set, it is added as a single element.
Definition: OMEset.h:141
void unlockMe()
Definition: OMErefCount.cpp:132
OMEset & operator-=(const OMEtype &item)
Remove element from set.
Definition: OMEset.h:150
OMEset(const OMEset &org)
Definition: OMEset.h:86
Templated type-specific reference to a reference-counted object.
Definition: OMErefCount.h:79
Base class for reference-counted data.
Definition: OMErefCount.h:31
uint32_t isEmpty() const OME_ALWAYS_INLINE
Definition: OMEset.h:218
int_fast32_t totalReferences() const OME_ALWAYS_INLINE
Get current reference total.
Definition: OMErefCount.h:141
const char srcID[]
Definition: catSym.c:17
_STD deque< OMEbaseTypeP >::const_iterator * iterator
Definition: OMEset.h:67
Implements an ordered list of OMEtype elements.
Definition: OMEset.h:64
OMEsetStorage & operator&=(const OMEtype &)
Definition: OMEset.cpp:195
STREAMTYPE & outputOnStream(STREAMTYPE &outputStream, int_fast16_t indent=0, uint8_t includeTypePrefix=OME_DEFAULT_COMPLEX_OUTPUT_MODE) const
Definition: OMEoutputOnStream.h:273
#define _OME_SET_H
Definition: OMEset.h:2
bool elementExists(const OMEtype &elem) const
Definition: OMEset.cpp:224
OME fundamental type implementation.
OMEset * operator|(const OMEtype &item) const
Definition: OMEset.h:193
OMEset & operator&=(const OMEtype &item)
Set intersection. Returns elements that are in both sets.
Definition: OMEset.h:169
const char srcID[] OME_USED
Definition: tick_time.cpp:24
void addReadOnlyReference()
Definition: OMErefCount.cpp:139
OMEsetStorage & operator-=(const OMEtype &)
Definition: OMEset.cpp:159
@ OME_SET
Definition: OMEmanifests.h:89
OMEset * operator&(const OMEtype &item) const
Definition: OMEset.h:201
STREAMTYPE & operator<<(STREAMTYPE &outputStream, const OMEset &data)
Write an OMEset to an output stream.
Definition: OMEset.h:248
OMEsetStorage()
Definition: OMEset.cpp:19
_STD deque< OMEbaseTypeP > dataSet
Definition: OMEset.h:26
#define OME_ALWAYS_INLINE
Tell the compiler to alway inline a function, regardless of optimization level.
Definition: compiler_hints.h:364
class OMEtype * OMEbaseTypeP
Definition: OMEset.h:15
void dropReference(C *newData=nullptr) OME_ALWAYS_INLINE
Definition: OMErefCount.h:91
uint32_t elementCount() const OME_ALWAYS_INLINE
Definition: OMEset.h:48
void lockMe()
Definition: OMErefCount.cpp:125
~OMEset()
Definition: OMEset.h:93
OMEsetStorage & operator|=(const OMEtype &)
Definition: OMEset.cpp:178
OMEset * operator+(const OMEtype &item) const
Definition: OMEset.h:179
OMEsetStorage & operator+=(const OMEtype &)
Definition: OMEset.cpp:150
Reference-counted maintainer of an ordered list of OMEtype elements. Used internally by OMEset.
Definition: OMEset.h:20
#define _STD
Definition: OMEmanifests.h:146
OMEtype * nextElement()
Iterate over a set by retrieving the next element.
Definition: OMEset.cpp:280
OME debug and profiling interfaces.
void getUniqueReference()
Force unique reference to the data, which will trigger duplication if necessary (copy-on-write).
Definition: OMErefCount.h:127
#define OME_DLL_EXPORT
Definition: compiler_hints.h:464
bool operator!=(const OMEsetStorage &arg) const
Definition: OMEset.cpp:102
Public interface to an OME Object Identifier.
Definition: OMEoid.h:196
OMEset & operator|=(const OMEtype &item)
Add element to set. If new element is a set, each individual element of the set is added.
Definition: OMEset.h:159
@ OME_DEFAULT_COMPLEX_OUTPUT_MODE
Definition: OMEmanifests.h:116
OMEset()
Definition: OMEset.h:79
OMEset * operator-(const OMEtype &item) const
Definition: OMEset.h:186
virtual OMEreferenceCount * deepCopy() const override
Definition: OMEset.cpp:35
void resetIterator()
Reset the internal iterator to the beginning of the list.
Definition: OMEset.cpp:264
bool operator==(const OMEtype &lArg, const OMEtype &rArg)
Definition: OMEtype_operators.cpp:33
STREAMTYPE & outputOnStream(STREAMTYPE &outputStream, int_fast16_t indent=0, uint8_t includeTypePrefix=OME_DEFAULT_COMPLEX_OUTPUT_MODE) const
Output an OMEset to an output stream.
Definition: OMEset.h:238
~OMEsetStorage()
Definition: OMEset.cpp:23