37 #ifndef INCLUDED_OSCPACK_OSCRECEIVEDELEMENTS_H 38 #define INCLUDED_OSCPACK_OSCRECEIVEDELEMENTS_H 96 : contents_( contents )
97 , size_( ValidateSize(size) ) {}
100 : contents_( contents )
103 #if !(defined(__x86_64__) || defined(_M_X64)) 105 : contents_( contents )
110 bool IsBundle()
const;
145 : sizePtr_( sizePtr ) {}
150 bool IsBundle()
const;
163 : value_( sizePtr ) {}
205 return !( lhs == rhs );
212 : typeTagPtr_( typeTagPtr )
213 , argumentPtr_( argumentPtr ) {}
226 bool AsBoolUnchecked()
const;
232 int32 AsInt32()
const;
233 int32 AsInt32Unchecked()
const;
236 float AsFloat()
const;
237 float AsFloatUnchecked()
const;
241 char AsCharUnchecked()
const;
244 uint32 AsRgbaColor()
const;
245 uint32 AsRgbaColorUnchecked()
const;
248 uint32 AsMidiMessage()
const;
249 uint32 AsMidiMessageUnchecked()
const;
252 int64 AsInt64()
const;
253 int64 AsInt64Unchecked()
const;
257 uint64 AsTimeTagUnchecked()
const;
260 double AsDouble()
const;
261 double AsDoubleUnchecked()
const;
264 const char* AsString()
const;
268 const char* AsSymbol()
const;
279 std::size_t ComputeArrayItemCount()
const;
290 : value_( typeTags, arguments ) {}
332 return !( lhs == rhs );
348 bool Eos()
const {
return p_ == end_; }
355 rhs = (*p_++).AsBool();
368 rhs = (*p_++).AsInt32();
377 rhs = (*p_++).AsFloat();
386 rhs = (*p_++).AsChar();
395 rhs.
value = (*p_++).AsRgbaColor();
404 rhs.
value = (*p_++).AsMidiMessage();
413 rhs = (*p_++).AsInt64();
422 rhs.
value = (*p_++).AsTimeTag();
431 rhs = (*p_++).AsDouble();
440 (*p_++).AsBlob( rhs.
data, rhs.
size );
449 rhs = (*p_++).AsString();
458 rhs.
value = (*p_++).AsSymbol();
483 bool AddressPatternIsUInt32()
const;
484 uint32 AddressPatternAsUInt32()
const;
488 const char *
TypeTags()
const {
return typeTagsBegin_; }
uint32 ElementCount() const
Definition: OscReceivedElements.h:524
const ReceivedBundleElement & operator*() const
Definition: OscReceivedElements.h:178
bool IsValidElementSizeValue(osc_bundle_element_size_t x)
Definition: OscTypes.h:100
ReceivedBundleElementIterator operator++(int)
Definition: OscReceivedElements.h:171
ReceivedMessageArgumentIterator ArgumentsBegin() const
Definition: OscReceivedElements.h:493
Definition: OscReceivedElements.h:474
ReceivedPacket(const char *contents, osc_bundle_element_size_t size)
Definition: OscReceivedElements.h:95
bool IsBlob() const
Definition: OscReceivedElements.h:271
long long int64
Definition: OscTypes.h:57
char TypeTag() const
Definition: OscReceivedElements.h:217
const ReceivedBundleElement * operator->() const
Definition: OscReceivedElements.h:180
const void * data
Definition: OscTypes.h:223
Definition: OscTypes.h:183
Definition: OscTypes.h:78
Definition: OscTypes.h:129
Definition: OscTypes.h:118
Definition: OscReceivedElements.h:160
ReceivedMessageArgumentStream & operator>>(float &rhs)
Definition: OscReceivedElements.h:372
ReceivedMessageArgumentStream ArgumentStream() const
Definition: OscReceivedElements.h:503
Definition: OscReceivedElements.h:142
Definition: OscReceivedElements.h:75
Definition: OscReceivedElements.h:69
ReceivedMessageArgumentStream & operator>>(MidiMessage &rhs)
Definition: OscReceivedElements.h:399
unsigned long long uint64
Definition: OscTypes.h:58
Definition: OscTypes.h:120
Definition: OscTypes.h:123
bool IsInfinitum() const
Definition: OscReceivedElements.h:229
Definition: OscReceivedElements.h:287
Definition: OscTypes.h:126
ReceivedBundleElementIterator(const char *sizePtr)
Definition: OscReceivedElements.h:162
Definition: OscTypes.h:115
ReceivedMessageArgumentStream & operator>>(int64 &rhs)
Definition: OscReceivedElements.h:408
ReceivedMessageArgumentStream & operator>>(TimeTag &rhs)
Definition: OscReceivedElements.h:417
const char * argumentPtr_
Definition: OscReceivedElements.h:283
ReceivedPacket(const char *contents, std::size_t size)
Definition: OscReceivedElements.h:99
bool IsRgbaColor() const
Definition: OscReceivedElements.h:243
bool IsSymbol() const
Definition: OscReceivedElements.h:267
ReceivedMessageArgumentStream & operator>>(Blob &rhs)
Definition: OscReceivedElements.h:435
MissingArgumentException(const char *w="missing argument")
Definition: OscReceivedElements.h:77
ReceivedMessageArgumentIterator(const char *typeTags, const char *arguments)
Definition: OscReceivedElements.h:289
Definition: OscTypes.h:128
ReceivedBundleElement(const char *sizePtr)
Definition: OscReceivedElements.h:144
uint32 ArgumentCount() const
Definition: OscReceivedElements.h:486
Definition: OscTypes.h:119
Definition: OscTypes.h:160
bool IsFloat() const
Definition: OscReceivedElements.h:235
ReceivedMessageArgument(const char *typeTagPtr, const char *argumentPtr)
Definition: OscReceivedElements.h:211
Definition: OscTypes.h:124
ExcessArgumentException(const char *w="too many arguments")
Definition: OscReceivedElements.h:83
bool IsBool() const
Definition: OscReceivedElements.h:223
void Advance()
Definition: OscReceivedElements.h:188
bool Eos() const
Definition: OscReceivedElements.h:348
bool IsString() const
Definition: OscReceivedElements.h:263
bool IsArrayEnd() const
Definition: OscReceivedElements.h:276
static osc_bundle_element_size_t ValidateSize(osc_bundle_element_size_t size)
Definition: OscReceivedElements.h:119
ReceivedBundleElement value_
Definition: OscReceivedElements.h:186
ReceivedMessageArgumentStream & operator>>(bool &rhs)
Definition: OscReceivedElements.h:350
const char * AsSymbolUnchecked() const
Definition: OscReceivedElements.h:269
Definition: OscTypes.h:210
const char * end_
Definition: OscReceivedElements.h:540
uint32 value
Definition: OscTypes.h:186
ReceivedBundleElementIterator ElementsEnd() const
Definition: OscReceivedElements.h:533
int32 osc_bundle_element_size_t
Definition: OscTypes.h:89
bool IsEqualTo(const ReceivedMessageArgumentIterator &rhs) const
Definition: OscReceivedElements.h:317
ReceivedBundleElementIterator operator++()
Definition: OscReceivedElements.h:165
Definition: OscTypes.h:122
bool operator==(const ReceivedBundleElementIterator &lhs, const ReceivedBundleElementIterator &rhs)
Definition: OscReceivedElements.h:196
ReceivedMessageArgumentStream & operator>>(int32 &rhs)
Definition: OscReceivedElements.h:363
const char * addressPattern_
Definition: OscReceivedElements.h:509
uint32 value
Definition: OscTypes.h:195
ReceivedMessageArgumentIterator ArgumentsEnd() const
Definition: OscReceivedElements.h:498
Definition: OscTypes.h:130
ReceivedMessageArgumentIterator const_iterator
Definition: OscReceivedElements.h:491
osc_bundle_element_size_t Size() const
Definition: OscReceivedElements.cpp:195
ReceivedMessageArgumentStream & operator>>(RgbaColor &rhs)
Definition: OscReceivedElements.h:390
ReceivedMessageArgument value_
Definition: OscReceivedElements.h:313
signed long int32
Definition: OscTypes.h:71
ReceivedMessageArgumentStream & operator>>(Symbol &rhs)
Definition: OscReceivedElements.h:453
osc_bundle_element_size_t size_
Definition: OscReceivedElements.h:117
ReceivedMessageArgumentStream & operator>>(const char *&rhs)
Definition: OscReceivedElements.h:444
ReceivedBundleElementIterator const_iterator
Definition: OscReceivedElements.h:526
Definition: OscReceivedElements.h:336
const char * sizePtr_
Definition: OscReceivedElements.h:156
ReceivedMessageArgumentStream & operator>>(char &rhs)
Definition: OscReceivedElements.h:381
Definition: MessageMappingOscPacketListener.h:47
const char * typeTagsBegin_
Definition: OscReceivedElements.h:510
Definition: OscTypes.h:121
const ReceivedMessageArgument & operator*() const
Definition: OscReceivedElements.h:305
Definition: OscTypes.h:117
const char * contents_
Definition: OscReceivedElements.h:116
Definition: OscTypes.h:219
bool IsDouble() const
Definition: OscReceivedElements.h:259
ReceivedMessageArgumentStream & operator>>(double &rhs)
Definition: OscReceivedElements.h:426
Definition: OscReceivedElements.h:516
Definition: OscException.h:44
const char * typeTagsEnd_
Definition: OscReceivedElements.h:511
bool IsMessage() const
Definition: OscReceivedElements.h:149
bool IsInt64() const
Definition: OscReceivedElements.h:251
Definition: OscTypes.h:116
uint32 elementCount_
Definition: OscReceivedElements.h:541
ReceivedBundleElementIterator ElementsBegin() const
Definition: OscReceivedElements.h:528
const char * AsStringUnchecked() const
Definition: OscReceivedElements.h:265
const ReceivedMessageArgument * operator->() const
Definition: OscReceivedElements.h:307
Definition: OscReceivedElements.h:88
bool IsInt32() const
Definition: OscReceivedElements.h:231
const char * TypeTags() const
Definition: OscReceivedElements.h:488
ReceivedMessageArgumentIterator operator++()
Definition: OscReceivedElements.h:292
Definition: OscTypes.h:114
const char * AddressPattern() const
Definition: OscReceivedElements.h:480
bool IsTimeTag() const
Definition: OscReceivedElements.h:255
const char * Contents() const
Definition: OscReceivedElements.h:153
WrongArgumentTypeException(const char *w="wrong argument type")
Definition: OscReceivedElements.h:71
bool operator!=(const ReceivedBundleElementIterator &lhs, const ReceivedBundleElementIterator &rhs)
Definition: OscReceivedElements.h:202
bool IsMultipleOf4(osc_bundle_element_size_t x)
Definition: OscTypes.h:107
osc_bundle_element_size_t size
Definition: OscTypes.h:224
Definition: OscTypes.h:127
ReceivedMessageArgumentStream & operator>>(MessageTerminator &rhs)
Definition: OscReceivedElements.h:462
Definition: OscReceivedElements.h:81
bool IsEqualTo(const ReceivedBundleElementIterator &rhs) const
Definition: OscReceivedElements.h:190
bool IsArrayBegin() const
Definition: OscReceivedElements.h:275
const char * Contents() const
Definition: OscReceivedElements.h:113
unsigned long uint32
Definition: OscTypes.h:72
ReceivedMessageArgumentIterator p_
Definition: OscReceivedElements.h:343
const char * typeTagPtr_
Definition: OscReceivedElements.h:282
const char * timeTag_
Definition: OscReceivedElements.h:539
osc_bundle_element_size_t Size() const
Definition: OscReceivedElements.h:112
ReceivedPacket(const char *contents, int size)
Definition: OscReceivedElements.h:104
bool IsNil() const
Definition: OscReceivedElements.h:228
ReceivedMessageArgumentIterator operator++(int)
Definition: OscReceivedElements.h:298
const char * value
Definition: OscTypes.h:213
const char * arguments_
Definition: OscReceivedElements.h:512
bool IsChar() const
Definition: OscReceivedElements.h:239
Definition: OscTypes.h:125
bool IsMidiMessage() const
Definition: OscReceivedElements.h:247
Definition: OscTypes.h:192
bool IsMessage() const
Definition: OscReceivedElements.h:109
Definition: OscReceivedElements.h:209
ReceivedMessageArgumentStream(const ReceivedMessageArgumentIterator &begin, const ReceivedMessageArgumentIterator &end)
Definition: OscReceivedElements.h:338