15#ifndef VIPROXYTYPE_HPP
16#define VIPROXYTYPE_HPP
18#include "wsf_parser_export.h"
23#include "UtMemoryDebug.hpp"
65 virtual void Destroy(
void* aValuePtr)
const = 0;
68 virtual void Copy(
void* aDest,
void* aSrc,
int copyFlags)
const = 0;
79 virtual std::string
GetNameAtIndex(
size_t aIndex)
const {
return std::string(); }
81 virtual size_t GetMemberIndex(
const std::string& aAttrName)
const {
return ut::npos; }
84 virtual bool IsUnset(
void* aValuePtr)
const = 0;
86 virtual void SetUnset(
void* aValuePtr)
const = 0;
90 virtual void SetInherited(
void* aValuePtr,
bool aIsInherited)
const = 0;
124 virtual void SetValue(
void* p,
const std::string& aText)
const = 0;
134 virtual std::string
ToString(
void* aDataPtr)
const {
return std::string(); }
136 virtual bool Equal(
void* dest,
void* src)
const = 0;
138 virtual bool Less(
void* dest,
void* src)
const = 0;
140 virtual bool Negate(
void* p)
const {
return false; }
171 static unsigned char&
BasicValueFlags(
void* aValuePtr) {
return *((
unsigned char*)aValuePtr); }
static const int cBASIC_TYPE_HEADER_SIZE
Definition WsfPProxyType.hpp:117
bool IsUnset(void *aValuePtr) const override
Definition WsfPProxyType.hpp:145
virtual bool Equal(void *dest, void *src) const =0
virtual void SetValue(void *p, const std::string &aText) const =0
size_t MemoryUsage(void *aDataPtr) const override
Definition WsfPProxyType.hpp:168
virtual std::string Write(void *aValuePtr, WsfParseRule *aRulePtr) const =0
bool IsInherited(void *aValuePtr) const override
Definition WsfPProxyType.hpp:150
void SetUnset(void *aValuePtr) const override
Definition WsfPProxyType.hpp:147
virtual std::string ToString(void *aDataPtr) const
Definition WsfPProxyType.hpp:134
virtual bool Less(void *dest, void *src) const =0
WsfPProxyBasicType(WsfProxy::ValueKind aKind)
Definition WsfPProxyType.hpp:118
void SetInherited(void *aValuePtr, bool aIsInherited) const override
Definition WsfPProxyType.hpp:154
virtual void Read(void *aValuePtr, WsfParseNode *aNodePtr) const =0
virtual bool Negate(void *p) const
Definition WsfPProxyType.hpp:140
void ClearUnset(void *aValuePtr) const override
Definition WsfPProxyType.hpp:148
WsfPProxyValue GetAttr(void *, const std::string &) const override
Definition WsfPProxyType.hpp:142
static unsigned char & BasicValueFlags(void *aValuePtr)
Definition WsfPProxyType.hpp:171
virtual int GetUnitTypeId() const
Definition WsfPProxyType.hpp:166
Definition WsfPProxyHash.hpp:26
Definition WsfPProxyKey.hpp:24
virtual std::string GetNameAtIndex(size_t aIndex) const
Definition WsfPProxyType.hpp:79
virtual WsfPProxyValue GetAtIndex(void *aPtr, size_t aIndex) const
Definition WsfPProxyType.hpp:78
int mTypeKind
Definition WsfPProxyType.hpp:56
virtual void Copy(void *aDest, void *aSrc, int copyFlags) const =0
size_t GetDataSize() const
Definition WsfPProxyType.hpp:54
const std::string & GetTypeName() const
Definition WsfPProxyType.hpp:53
virtual void SetUnset(void *aValuePtr) const =0
virtual void SetInherited(void *aValuePtr, bool aIsInherited) const =0
virtual void ClearUnset(void *aValuePtr) const
Definition WsfPProxyType.hpp:87
virtual bool SwapAttr(void *aPtr, const WsfPProxyKey &aKey, WsfPProxyValue &aValue) const
Definition WsfPProxyType.hpp:74
virtual WsfPProxyValue GetAttr(void *aPtr, const std::string &aName) const =0
virtual size_t GetMemberIndex(const std::string &aAttrName) const
Definition WsfPProxyType.hpp:81
WsfPProxyType(WsfProxy::ValueKind aKind)
Definition WsfPProxyType.hpp:39
virtual void Destroy(void *aValuePtr) const =0
virtual void Construct(void *aValuePtr) const =0
bool IsObjectMap() const
Definition WsfPProxyType.hpp:101
bool IsBasicType() const
Definition WsfPProxyType.hpp:98
int mTypeStoredKind
Definition WsfPProxyType.hpp:57
bool IsStruct() const
Definition WsfPProxyType.hpp:99
virtual bool IsUnset(void *aValuePtr) const =0
virtual bool IsInherited(void *aValuePtr) const =0
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 bool IsOfBasicType(const std::string &aTypeName) const
Definition WsfPProxyType.hpp:92
virtual WsfPProxyType * GetContainedType(size_t aIndex) const
Definition WsfPProxyType.hpp:96
virtual size_t GetAttrCount(void *aPtr) const
Definition WsfPProxyType.hpp:80
virtual WsfPProxyHash Hash(void *aDataPtr) const
Definition WsfPProxyType.hpp:104
bool IsList() const
Definition WsfPProxyType.hpp:100
std::string mTypeName
Definition WsfPProxyType.hpp:59
virtual size_t MemoryUsage(void *aDataPtr) const =0
virtual ~WsfPProxyType()
Definition WsfPProxyType.hpp:51
Definition WsfPProxyValue.hpp:33
Definition WsfParseNode.hpp:61
Definition WsfParseRule.hpp:131
Definition WsfPProxyBasicValues.hpp:41
@ cVALUE_FLAG
Definition WsfPProxyCommon.hpp:29
ValueKind
Definition WsfPProxyCommon.hpp:39
@ cOBJECT_MAP
Definition WsfPProxyCommon.hpp:42
@ cENUMERATION_VALUE
Definition WsfPProxyCommon.hpp:44
@ cLIST
Definition WsfPProxyCommon.hpp:41
@ cSTRUCT
Definition WsfPProxyCommon.hpp:40
@ cVALUE_INHERITED
Definition WsfPProxyCommon.hpp:34
@ cVALUE_UNSET
Definition WsfPProxyCommon.hpp:35
static std::string ValueKindToString(WsfProxy::ValueKind aKind) noexcept
Definition WsfPProxyCommon.hpp:117