Go to the documentation of this file.
2 #define _OME_NLM_H "$Id: OMEnlm.h 312 2020-03-21 21:25:35Z geoff $"
39 const class OMEbaseType *
id =
nullptr,
51 std::cerr <<
"OMEnlmStorage::deepCopy called!\n";
91 template <
typename STREAMTYPE> STREAMTYPE &
outputOnStream(STREAMTYPE &outputStream, int_fast16_t indent = 0,
112 template <
typename STREAMTYPE>
static STREAMTYPE &outputFormattedData(STREAMTYPE &o,
113 const class OMEbaseType &data,
114 const class OMEbaseType &annotation,
115 const char *fieldModifier,
int modifierLen);
126 const OMEbaseType *
id =
nullptr,
const OMEstring *catName =
nullptr,
129 data =
new OMEnlmStorage(defaultMess, args,
id, catName, extra);
144 if (this->data == arg.
data) {
145 std::cerr <<
"OMEnlm assignment to self, ref=" <<
totalReferences() <<
"\n";
158 return (data->encodeNLM(bfr));
164 if (data == arg.
data) {
167 return (*data == *arg.
data);
172 if (data == arg.
data) {
175 return (*data != *arg.
data);
180 data->getMessageInfo(list);
199 return (data->deleteIndex(i));
204 return (data->indexExists(i));
209 return (data->nextIndex(currentSubscript));
214 return (data->elementCount());
219 return (data->isEmpty());
245 data->outputOnStream(outputStream, indent, includeTypePrefix, lang);
246 return (outputStream);
252 template <
typename STREAMTYPE>
inline STREAMTYPE &
operator<<(STREAMTYPE &outputStream,
const OMEnlm &data)
255 return (outputStream);
OMEstring * condenseIntoString(bool includeVersionID)
Serialize all OMEencodeBufferElement items into a single string.
Definition: OMEencode.cpp:75
OMEstring * encodeNLM(const class OMEencodeBuffer *bfr) const
Definition: OMEnlm.h:156
@ OME_NLM
Definition: OMEmanifests.h:90
uint_fast32_t elementCount() const
Definition: OMEnlm.h:78
bool operator!=(const OMEnlmStorage &arg) const
Definition: OMEnlm.cpp:71
#define OME_DELETE_OBJECT(ptr)
Definition: OMEmanifests.h:159
Identifier for an OME Native Language Message.
Definition: OMEnlmData.h:46
const char s[]
Definition: t.cpp:4
OMEnlm & operator=(const OMEnlm &arg)
Definition: OMEnlm.h:142
OMEstring catalogName
Definition: OMEnlmData.h:54
OMEarray::ARRAY_SUBSCRIPT_t nextIndex(const OMEarray::ARRAY_SUBSCRIPT_t currentSubscript) const
Definition: OMEnlm.h:73
~OMEnlmStorage()
Definition: OMEnlm.cpp:31
~OMEnlm()
Definition: OMEnlm.h:154
OMEarray::ARRAY_SUBSCRIPT_t nextIndex(const OMEarray::ARRAY_SUBSCRIPT_t currentSubscript) const
Definition: OMEnlm.h:207
virtual OMEreferenceCount * deepCopy() const override
Definition: OMEnlm.h:49
STREAMTYPE & outputOnStream(STREAMTYPE &outputStream, int_fast16_t indent=0, uint8_t includeTypePrefix=OME_DEFAULT_COMPLEX_OUTPUT_MODE, const OMEstring *lang=nullptr) const
Definition: OMEoutputOnStream.h:99
bool isEmpty() const
Definition: OMEnlm.h:83
Implements text and binary string storage.
Definition: OMEstring.h:305
OME type encoding routines.
Buffer into which OMEtype data is encoded.
Definition: OMEencode.h:54
C * data
Definition: OMErefCount.h:82
bool indexExists(const uint32_t i) const
Definition: OMEarray.h:202
Fundamental ANY type for FARGOS/VISTA Object Management Environment.
Definition: OMEbaseType.h:250
int decodeData(OMEthread *thread, OMEtype &result, const OMEtype &data)
Definition: OILencode.cpp:61
#define _OME_NLM_H
Definition: tmp.o.cpp:970
class OMEnlmData * messageData
Definition: OMEnlm.h:28
bool operator==(const OMEnlm &arg) const
Definition: OMEnlm.h:162
class OMEstring * s
Definition: OMEbaseType.h:299
int debugLevel
Definition: OMEnlm.h:32
Referenced-counted storage for an OME Native Language Message.
Definition: OMEnlm.h:22
Templated type-specific reference to a reference-counted object.
Definition: OMErefCount.h:79
static OMEtype * decode(const class OMEstring *data, size_t *offset, const uint32_t version=0)
Decode an OMEtype previously encoded via encode().
Definition: OMEencode.cpp:204
const OMEstring & getMessage(const OMEstring *lang=nullptr) const
Definition: OMEnlmData.cpp:570
Base class for reference-counted data.
Definition: OMErefCount.h:31
Public interface to an OME Native Language Message.
Definition: OMEnlm.h:98
OMEnlm(const OMEstring &defaultMess, OMEarray *args=nullptr, const OMEtype *id=nullptr, const OMEstring *catName=nullptr, OMEarray *extra=nullptr)
Definition: OMEnlm.h:125
int_fast32_t totalReferences() const OME_ALWAYS_INLINE
Get current reference total.
Definition: OMErefCount.h:141
OMEstring defaultMessage
Definition: OMEnlmData.h:52
OMEnlmStorage()
Definition: OMEnlm.cpp:10
const char srcID[]
Definition: catSym.c:17
bool indexExists(const OMEarray::ARRAY_SUBSCRIPT_t i) const
Definition: OMEnlm.h:202
static OMEnlm * decodeNLM(uint32_t ver, const OMEstring *encodedData, size_t *offset)
Definition: OMEnlm.cpp:140
OMEstring * encodeNLM(const class OMEencodeBuffer *bfr) const
Definition: OMEnlm.cpp:96
STREAMTYPE & operator<<(STREAMTYPE &outputStream, const OMEnlm &data)
Output an OMEnlm object to an output stream.
Definition: OMEnlm.h:252
void addEncodedElement(OMEencodeBufferElement *elem)
Append an encoded element to the collection.
Definition: OMEencode.h:84
void getMessageInfo(OMEarray &list) const
Definition: OMEnlm.h:178
int deleteIndex(OMEthread *thread, OMEtype &result, const OMEtype &array, const OMEtype &subscript)
Definition: OILtypeFuncs.cpp:452
@ OME_NIL
Definition: OMEmanifests.h:78
const OMEtype & operator[](const OMEarray::ARRAY_SUBSCRIPT_t i) const
Definition: OMEnlm.h:191
OMEtype messageID
Definition: OMEnlmData.h:53
OME fundamental type implementation.
OMEarray argumentInfo
Definition: OMEnlm.h:30
const char srcID[] OME_USED
Definition: tick_time.cpp:24
OMEnlm(OMEnlmStorage *s)
Definition: OMEnlm.h:101
OMEnlm(const char *m)
Definition: OMEnlm.h:133
uint_fast32_t elementCount() const OME_ALWAYS_INLINE
Definition: OMEarray.h:247
OMEarray messageArguments
Definition: OMEnlm.h:29
bool indexExists(const OMEarray::ARRAY_SUBSCRIPT_t i) const
Definition: OMEnlm.h:68
void addReadOnlyReference()
Definition: OMErefCount.cpp:139
bool isEmpty() const OME_ALWAYS_INLINE
Definition: OMEarray.h:252
OME native language message catalog implementation.
ARRAY_SUBSCRIPT_t nextIndex(const uint32_t currentSubscript) const
Definition: OMEarray.h:217
void dropReference(C *newData=nullptr) OME_ALWAYS_INLINE
Definition: OMErefCount.h:91
OME sparse array implementation.
OMEnlm(const OMEnlm &org)
Definition: OMEnlm.h:119
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
Implements sparse array of OMEtype elements.
Definition: OMEarray.h:75
void getMessageInfo(OMEarray &list) const
Definition: OMEnlmData.h:70
@ OME_DEFAULT_COMPLEX_OUTPUT_MODE
Definition: OMEmanifests.h:116
STREAMTYPE & outputOnStream(STREAMTYPE &outputStream, int_fast16_t indent=0, uint8_t includeTypePrefix=OME_DEFAULT_COMPLEX_OUTPUT_MODE, const OMEstring *lang=nullptr) const
Output an OMEnlm object to an output stream.
Definition: OMEnlm.h:242
bool isEmpty() const
Definition: OMEnlm.h:217
Holds data for a single encoded OMEtype element. Multiple OMEencodeBufferElement objects are linked t...
Definition: OMEencode.h:20
@ OME_ARRAY
Definition: OMEmanifests.h:86
OMEnlm * deepCopy() const
Definition: OMEnlm.h:222
void getMessageInfo(OMEarray &list) const
Definition: OMEnlm.cpp:36
OMEarrayStorage::ARRAY_SUBSCRIPT_t ARRAY_SUBSCRIPT_t
Definition: OMEarray.h:90
bool operator!=(const OMEnlm &arg) const
Definition: OMEnlm.h:170
uint_fast32_t elementCount() const
Definition: OMEnlm.h:212
const OMEtype & operator[](const OMEarray::ARRAY_SUBSCRIPT_t i) const
Definition: OMEnlm.h:62
const OMEstring & getMessageText(const OMEstring *lang=nullptr) const
Definition: OMEnlm.cpp:41
bool operator==(const OMEnlmStorage &arg) const
Definition: OMEnlm.cpp:46