34 PValue(
int32 i,
const int variant = 0) {zero(); m_type =
T_INT; m_variant = variant; m_simpleValue.integer = i;}
35 PValue(
uint32 ui,
const int variant = 0) {zero(); m_type =
T_INT; m_variant = variant; m_simpleValue.integer = ui;}
36 PValue(
const EDLString &s,
const int variant = 0) {zero(); setString(s, variant);}
38 explicit PValue(
const wchar_t *s,
const int variant = 0) {zero(); setString(s, variant);}
39 explicit PValue(
const char *s,
const int variant = 0) {zero(); setString(s, variant);}
42 PValue(
void *p,
const int variant = 0) {zero(); m_type =
T_POINTER; m_variant = variant; m_simpleValue.pointer = p;}
43 PValue(
const IEDLTimePtr &ptrTime,
const int variant = 0) {zero(); m_type =
T_TIME; m_variant = variant; m_timePtr = ptrTime;}
44 PValue(
const EDLQName &qn,
const int variant = 0) {zero(); setName(qn, variant);}
45 PValue(
const IRCObjectPtr &
object,
const int variant = 0) {zero(); m_type =
T_OBJECT; m_variant = variant; m_rcObjectPtr = object;}
46 PValue(
double d,
const int variant = 0) {zero(); m_type =
T_DECIMAL; m_variant = variant; m_simpleValue.decimalVal = d;}
47 PValue(
bool b,
const int variant = 0) {zero(); m_type =
T_BOOL; m_variant = variant; m_simpleValue.boolean = b;}
100 return (m_type ==
T_STRING && m_simpleValue.stringVal) ? *m_simpleValue.stringVal :
EDLString();
105 return (m_type ==
T_STRING && m_simpleValue.stringVal) ? EDL::EDLStringToEDLSysString (*m_simpleValue.stringVal) :
EDLSysString();
119 for (
uint32 i = 0; i < edlStrVect.
size (); i++)
123 return edlSysStrVect;
128 return (m_type ==
T_BOOL) ? m_simpleValue.boolean :
false;
132 return (m_type ==
T_INT) ? m_simpleValue.integer : 0;
136 return (m_type ==
T_DECIMAL) ? m_simpleValue.decimalVal : 0.0;
140 return (m_type ==
T_POINTER) ? m_simpleValue.pointer : NULL;
144 return (m_type ==
T_TIME) ? m_timePtr : IEDLTimePtr(NULL);
148 return (m_type ==
T_QNAME && m_simpleValue.qname) ? *m_simpleValue.qname :
EDLQName();
156 return (m_type ==
T_OBJECT) ? m_rcObjectPtr : IRCObjectPtr(NULL);
161 if (
this == &another)
164 if (m_type != another.m_type)
180 if (m_simpleValue.stringVect && another.m_simpleValue.
stringVect)
182 uint32 n = m_simpleValue.stringVect->size();
187 for (
uint32 j = 0; j < n; j++)
189 if ((*m_simpleValue.stringVect)[j] != (*another.m_simpleValue.
stringVect)[j])
219 memset(&m_simpleValue, 0,
sizeof(m_simpleValue));
220 m_rcObjectPtr = NULL;
228 if (m_simpleValue.stringVal)
230 delete m_simpleValue.stringVal;
234 if (m_simpleValue.qname)
236 delete m_simpleValue.qname;
240 if (m_simpleValue.stringVect)
242 m_simpleValue.stringVect->clear ();
243 delete m_simpleValue.stringVect;
253 void assign(
const PValue &another)
255 if (
this != &another)
259 m_variant = another.m_variant;
260 m_type = another.m_type;
267 memcpy(&m_simpleValue, &another.m_simpleValue,
sizeof(m_simpleValue));
275 setString(*another.m_simpleValue.
stringVal, another.m_variant);
283 setStringVector (*another.m_simpleValue.
stringVect, another.m_variant);
287 if (!another.m_simpleValue.
qname)
291 setName(*another.m_simpleValue.
qname);
294 m_rcObjectPtr = another.m_rcObjectPtr;
297 m_timePtr = another.m_timePtr;
310 m_simpleValue.stringVal =
new EDLString();
314 void setString(
const wchar_t *s,
const int variant = 0)
320 void setString(
const char *s,
const int variant = 0)
333 m_simpleValue.stringVect->resize (
stringVect.size());
335 (*m_simpleValue.stringVect)[j] =
stringVect[j];
338 void setSysStringVector(
const CEDLSysStringVect &sysStringVect,
const int variant = 0)
344 m_simpleValue.stringVect->resize (sysStringVect.
size());
345 for (
uint32 j = 0; j < sysStringVect.
size(); j++)
349 void setName(
const EDLQName &name,
const int variant = 0)
354 m_simpleValue.qname =
new EDLQName();
355 *m_simpleValue.qname = name;
372 IEDLTimePtr m_timePtr;
373 IRCObjectPtr m_rcObjectPtr;
uint32_t size() const
Definition edlvector.h:106
void resize(uint32_t newSize)
Definition edlvector.h:187
Implementation of qualified name class.
Definition edlqname.h:89
IEDLObject is an abstract base class that is used by all classes that are intended to be created via ...
Definition iedlobject.h:53
Base class Interface for all Reference Counted objects.
Definition ircobject.h:35
CEDLSysStringVect getSysStringVect() const
Definition edlproperty.h:113
void * getPointer() const
Definition edlproperty.h:138
PValue(double d, const int variant=0)
Definition edlproperty.h:46
EDLString getString() const
Definition edlproperty.h:98
double decimalVal
Definition edlproperty.h:365
PValue(const PValue &another)
Definition edlproperty.h:48
bool boolean
Definition edlproperty.h:363
PValue(const char *s, const int variant=0)
Definition edlproperty.h:39
PValue(const wchar_t *s, const int variant=0)
Definition edlproperty.h:38
PValue(uint32 ui, const int variant=0)
Definition edlproperty.h:35
CEDLStringVect * stringVect
Definition edlproperty.h:368
double getDecimal() const
Definition edlproperty.h:134
int getVariant() const
Definition edlproperty.h:82
PValue(const CEDLStringVect &v, const int variant=0)
Definition edlproperty.h:40
enum PValueType getType() const
Definition edlproperty.h:77
IEDLObjectPtr getObject() const
Definition edlproperty.h:150
IRCObjectPtr getRCObject() const
Definition edlproperty.h:154
PValue(void *p, const int variant=0)
Definition edlproperty.h:42
PValue(const IEDLTimePtr &ptrTime, const int variant=0)
Definition edlproperty.h:43
CEDLStringVect getStringVect() const
Definition edlproperty.h:108
PValue()
Definition edlproperty.h:33
PValueType
Value types for metadata entries.
Definition edlproperty.h:64
@ T_TIME
Time value.
Definition edlproperty.h:71
@ T_STRINGVECT
Multiple strings.
Definition edlproperty.h:74
@ T_STRING
String.
Definition edlproperty.h:69
@ T_POINTER
Pointer type.
Definition edlproperty.h:70
@ T_DECIMAL
Floating point.
Definition edlproperty.h:68
@ T_QNAME
Qualified name.
Definition edlproperty.h:72
@ T_UNASSIGNED
Unassigned.
Definition edlproperty.h:65
@ T_INT
Integer.
Definition edlproperty.h:67
@ T_OBJECT
Object.
Definition edlproperty.h:73
@ T_BOOL
Boolean.
Definition edlproperty.h:66
EDLSysString getSysString() const
Definition edlproperty.h:103
EDLQName getQName() const
Definition edlproperty.h:146
int32 integer
Definition edlproperty.h:364
bool isEmpty() const
Definition edlproperty.h:93
PValue(const EDLSysString &s, const int variant=0)
Definition edlproperty.h:37
EDLQName * qname
Definition edlproperty.h:369
PValue(const EDLString &s, const int variant=0)
Definition edlproperty.h:36
PValue(bool b, const int variant=0)
Definition edlproperty.h:47
bool getBool() const
Definition edlproperty.h:126
int32 getInt32() const
Definition edlproperty.h:130
void * pointer
Definition edlproperty.h:366
EDLString * stringVal
Definition edlproperty.h:367
PValue(const EDLQName &qn, const int variant=0)
Definition edlproperty.h:44
IEDLTimePtr getTime() const
Definition edlproperty.h:142
~PValue()
Definition edlproperty.h:54
PValue(const CEDLSysStringVect &v, const int variant=0)
Definition edlproperty.h:41
const PValue & operator=(const PValue &another)
Definition edlproperty.h:87
bool operator==(const PValue &another)
Definition edlproperty.h:159
PValue(int32 i, const int variant=0)
Definition edlproperty.h:34
bool operator!=(const PValue &another)
Definition edlproperty.h:209
PValue(const IRCObjectPtr &object, const int variant=0)
Definition edlproperty.h:45
EDL_API void throwEDLError(uint32 errorcode)
Utility - Throw an IEDLError exception with the given error code.
#define _BEGIN_EDL_NAMESPACE
Definition edlnamespaces.h:75
#define _END_EDL_NAMESPACE
Definition edlnamespaces.h:76
IEDLNamespace and EDLQName classes.
EDLString and EDLSysString classes and associated EDL string manipulation functions.
std::string EDLSysString
Definition edlstring.h:158
std::wstring EDLString
Definition edlstring.h:165
EDL_API EDLSysString EDLStringToEDLSysString(const EDLString &edlString)
EDLStringToEDLSysString converts an (UTF16 or UTF32 depending on platform) EDLString to an EDLSysStri...
EDL_API EDLString EDLSysStringToEDLString(const EDLSysString &edlSysString)
EDLSysStringToEDLString converts an EDLSysString (UTF8) to an EDLString (UTF16 or UTF32 depending on ...
CEDLVector< EDLString > CEDLStringVect
Definition edlstring.h:173
CEDLVector< EDLSysString > CEDLSysStringVect
Definition edlstring.h:174
IEDLTime class that represents the EDL date-time.
EDL "standard" types including known bit-length signed and unsigned integer type[def]s and definition...
unsigned int uint32
Definition edltypes.h:34
signed int int32
Definition edltypes.h:29
@ EDL_ERR_UNDEFINED
Undefined error.
Definition edlerrors.h:28