15#ifndef VIPROXYBASICTYPES_HPP
16#define VIPROXYBASICTYPES_HPP
18#include "wsf_parser_export.h"
40template<
typename VALUE_TYPE>
53 static VALUE_TYPE&
Get(
void* p) {
return *(VALUE_TYPE*)p; }
56 void Construct(
void* p)
const override {
new (p) VALUE_TYPE(); }
57 void Destroy(
void* p)
const override {
Get(p).~VALUE_TYPE(); }
58 void SetValue(
void* p,
const std::string& aText)
const override {
Get(p).SetFromString(aText); }
59 std::string
ToString(
void* p)
const override {
return Get(p).ToString(); }
60 void Copy(
void* dest,
void* src,
int flags)
const override {
Get(dest).CopyValue(
Get(src)); }
61 bool Equal(
void* lhs,
void* rhs)
const override {
return Get(lhs).Equal(
Get(rhs)); }
62 bool Less(
void* lhs,
void* rhs)
const override {
return Get(lhs).Less(
Get(rhs)); }
65template<
typename VALUE_TYPE>
76 static VALUE_TYPE&
Get(
void* p) {
return *(VALUE_TYPE*)p; }
83template<
typename VALUE_TYPE>
94 int GetUnitTypeId()
const override {
return UnitaryType::UnitType::cUNIT_TYPE_ID; }
134#define WSF_PPROXY_DEFINE_BASIC_TYPE(NAME, BASE) \
135 class WsfPProxy##NAME##Type : public BASE<WsfProxy::NAME> \
139#define WSF_PPROXY_DEFINE_UNITARY_TYPE(NAME) WSF_PPROXY_DEFINE_BASIC_TYPE(NAME, ProxyUnitaryTypeAdapterT)
183 static const int cNOT_SET_VALUE = -INT_MAX + 3;
194 void SetValue(
void* p,
const std::string& aText)
const override;
197 std::string
ToString(
void* p)
const override;
#define WSF_PPROXY_DEFINE_BASIC_TYPE(NAME, BASE)
Definition WsfPProxyBasicTypes.hpp:134
std::map< int, std::string > WsfPEnumIntMap
Definition WsfPProxyBasicTypes.hpp:178
std::map< std::string, int > WsfPEnumStrMap
Definition WsfPProxyBasicTypes.hpp:177
#define WSF_PPROXY_DEFINE_UNITARY_TYPE(NAME)
Definition WsfPProxyBasicTypes.hpp:139
std::string ToString(void *p) const override
Definition WsfPProxyBasicTypes.hpp:59
bool Less(void *lhs, void *rhs) const override
Definition WsfPProxyBasicTypes.hpp:62
VALUE_TYPE DataType
Definition WsfPProxyBasicTypes.hpp:44
void Destroy(void *p) const override
Definition WsfPProxyBasicTypes.hpp:57
void Copy(void *dest, void *src, int flags) const override
Definition WsfPProxyBasicTypes.hpp:60
void SetValue(void *p, const std::string &aText) const override
Definition WsfPProxyBasicTypes.hpp:58
bool Equal(void *lhs, void *rhs) const override
Definition WsfPProxyBasicTypes.hpp:61
static VALUE_TYPE & Get(void *p)
Definition WsfPProxyBasicTypes.hpp:53
ProxyTypeAdapterBaseT(unsigned int aTypeFlags=WsfProxy::cPOD)
Definition WsfPProxyBasicTypes.hpp:45
void Construct(void *p) const override
Definition WsfPProxyBasicTypes.hpp:56
Definition WsfPProxyBasicTypes.hpp:67
static VALUE_TYPE & Get(void *p)
Definition WsfPProxyBasicTypes.hpp:76
VALUE_TYPE DataType
Definition WsfPProxyBasicTypes.hpp:69
std::string Write(void *p, WsfParseRule *aRulePtr) const override
Definition WsfPProxyBasicTypes.hpp:80
ProxyTypeAdapterT(unsigned int aTypeFlags=WsfProxy::cPOD)
Definition WsfPProxyBasicTypes.hpp:70
void Read(void *p, WsfParseNode *aNodePtr) const override
Definition WsfPProxyBasicTypes.hpp:79
typename VALUE_TYPE::ContainedBasicType UnitaryType
Definition WsfPProxyBasicTypes.hpp:87
int GetUnitTypeId() const override
Definition WsfPProxyBasicTypes.hpp:94
ProxyUnitaryTypeAdapterT(unsigned int aTypeFlags=WsfProxy::cPOD)
Definition WsfPProxyBasicTypes.hpp:88
size_t MemoryUsage(void *aDataPtr) const override
Definition WsfPProxyType.hpp:168
WsfPProxyBasicType(WsfProxy::ValueKind aKind)
Definition WsfPProxyType.hpp:118
Definition WsfPProxyBasicTypes.hpp:107
WsfPEnumIntMap mIntToString
Definition WsfPProxyBasicTypes.hpp:202
WsfPProxyEnumType()
Definition WsfPProxyBasicTypes.cpp:85
WsfPEnumStrMap mStringToInt
Definition WsfPProxyBasicTypes.hpp:201
Definition WsfPProxyHash.hpp:26
Definition WsfPProxyBasicTypes.hpp:113
Definition WsfPProxyBasicTypes.hpp:101
Definition WsfPProxyBasicTypes.hpp:104
Definition WsfPProxyBasicTypes.hpp:98
WsfPProxyQuotableStringType()
Definition WsfPProxyBasicTypes.cpp:122
Definition WsfPProxyBasicTypes.hpp:110
WsfPProxyStringType()
Definition WsfPProxyBasicTypes.cpp:96
Definition WsfPProxyType.hpp:37
virtual bool IsTypeOf(const WsfPProxyType *aOtherType) const
Definition WsfPProxyType.hpp:103
int mTypeFlags
Definition WsfPProxyType.hpp:55
size_t mDataSize
Definition WsfPProxyType.hpp:58
virtual WsfPProxyHash Hash(void *aDataPtr) const
Definition WsfPProxyType.hpp:104
Definition WsfParseNode.hpp:61
Definition WsfParseRule.hpp:131
@ cPOD
Definition WsfPProxyCommon.hpp:27
NumericValueT< int, WsfProxy::cINT_VALUE > Int
Definition WsfPProxyBasicValues.hpp:407