blob: 486d262df58b90f26e86d12e1b34868a11a4d7ab [file] [log] [blame]
#ifndef Sfcc_CimData_h
#define Sfcc_CimData_h
#include "cimcdt.h"
#include "cimcft.h"
#include "CimString.h"
#include "sfccPtr.h"
class CimcObjectPath;
typedef class sfccPtr<CimcObjectPath, cimcObjectPath> CimObjectPath;
class CimcInstance;
typedef class sfccPtr<CimcInstance, cimcInstance> CimInstance;
class CimcDateTime;
typedef class sfccPtr<CimcDateTime, cimcDateTime> CimDateTime;
class CimcArray;
typedef class sfccPtr<CimcArray, cimcArray> CimArray;
class CimData {
friend class CimcObjectPath;
friend class CimcInstance;
friend class CimcIterator;
friend class CimcClass;
friend class CimcDateTime;
friend class CimcArrayIdx;
friend class CimcArray;
protected:
cimcData _data;
union _cimc {
CimString *string;
CimInstance *inst;
CimObjectPath *ref;
CimDateTime *dateTime;
CimArray *array;
} cim;
CimData(cimcData data);
cimcData getEnc();
cimcValue* getValue();
cimcType getType();
public:
~CimData();
CimData();
CimData(cimcSint8 d);
CimData(cimcSint16 d);
CimData(cimcSint32 d);
CimData(cimcSint64 d);
CimData(cimcUint8 d);
CimData(cimcUint16 d);
CimData(cimcUint32 d);
CimData(cimcUint64 d);
CimData(cimcReal32 d);
CimData(cimcReal64 d);
CimData(const CimString& d);
CimData(const char* d);
CimData(const CimObjectPath& d);
CimData(const CimDateTime& d);
CimData(const CimArray& d);
operator CimString() const;
operator const char* () const;
operator CimDateTime() const;
operator cimcSint8() const;
operator cimcSint16() const;
operator cimcSint32() const;
operator cimcSint64() const;
operator unsigned char() const;
operator unsigned short() const;
operator cimcUint32() const;
operator cimcUint64() const;
operator cimcReal32() const;
operator cimcReal64() const;
operator CimArray() const;
operator CimInstance() const;
operator CimObjectPath() const;
int isNullValue() const;
int isNotFound() const;
};
#endif