6#include <cx/ssdtree/node/ssdhashnode.h>
8typedef struct SettingsHashNode SettingsHashNode;
9typedef struct SettingsHashNode_WeakRef SettingsHashNode_WeakRef;
13typedef struct SettingsBind {
22typedef struct SettingsHashNode_ClassIf {
28 bool (*isHashtable)(_In_
void* self);
30 bool (*isArray)(_In_
void* self);
32 bool (*get)(_In_
void* self, int32 idx, _In_opt_ strref name, _When_(
return ==
true, _Out_)
stvar* out, _Inout_ SSDLockState* _ssdCurrentLockState);
35 _Ret_opt_valid_
stvar* (*ptr)(_In_
void* self, int32 idx, _In_opt_ strref name, _Inout_ SSDLockState* _ssdCurrentLockState);
37 bool (*set)(_In_
void* self, int32 idx, _In_opt_ strref name,
stvar val, _Inout_ SSDLockState* _ssdCurrentLockState);
40 bool (*setC)(_In_
void* self, int32 idx, _In_opt_ strref name, _Inout_
stvar* val, _Inout_ SSDLockState* _ssdCurrentLockState);
42 bool (*remove)(_In_
void* self, int32 idx, _In_opt_ strref name, _Inout_ SSDLockState* _ssdCurrentLockState);
44 int32 (*count)(_In_
void* self, _Inout_ SSDLockState* _ssdCurrentLockState);
50 _Ret_valid_ SSDIterator* (*iter)(_In_
void* self);
51 SSDIterator* (*_iterLocked)(_In_
void* self, _Inout_ SSDLockState* _ssdCurrentLockState);
52 bool (*bind)(_In_
void* self, _In_opt_ strref name, stype btyp,
void* bvar, stgeneric bdef, SSDLockState* _ssdCurrentLockState);
54 void (*checkBound)(_In_
void* self, _In_opt_ strref name, SSDLockState* _ssdCurrentLockState);
56 void (*checkAll)(_In_
void* self, SSDLockState* _ssdCurrentLockState);
57 void (*unbindAll)(_In_
void* self, SSDLockState* _ssdCurrentLockState);
58} SettingsHashNode_ClassIf;
59extern SettingsHashNode_ClassIf SettingsHashNode_ClassIf_tmpl;
61typedef struct SettingsHashNode {
63 SettingsHashNode_ClassIf* _;
64 void* _is_SettingsHashNode;
65 void* _is_SSDHashNode;
79#define SettingsHashNode(inst) ((SettingsHashNode*)(unused_noeval((inst) && &((inst)->_is_SettingsHashNode)), (inst)))
80#define SettingsHashNodeNone ((SettingsHashNode*)NULL)
82typedef struct SettingsHashNode_WeakRef {
85 void* _is_SettingsHashNode_WeakRef;
86 void* _is_SSDHashNode_WeakRef;
87 void* _is_SSDNode_WeakRef;
88 void* _is_ObjInst_WeakRef;
92} SettingsHashNode_WeakRef;
93#define SettingsHashNode_WeakRef(inst) ((SettingsHashNode_WeakRef*)(unused_noeval((inst) && &((inst)->_is_SettingsHashNode_WeakRef)), (inst)))
97#define settingshashnode_create(tree) SettingsHashNode__create(SSDTree(tree))
100#define settingshashnodeUpdateModified(self) SSDNode_updateModified(SSDNode(self))
105#define settingshashnodeIsHashtable(self) (self)->_->isHashtable(SettingsHashNode(self))
109#define settingshashnodeIsArray(self) (self)->_->isArray(SettingsHashNode(self))
113#define settingshashnodeGet(self, idx, name, out, _ssdCurrentLockState) (self)->_->get(SettingsHashNode(self), idx, name, out, _ssdCurrentLockState)
118#define settingshashnodePtr(self, idx, name, _ssdCurrentLockState) (self)->_->ptr(SettingsHashNode(self), idx, name, _ssdCurrentLockState)
122#define settingshashnodeSet(self, idx, name, val, _ssdCurrentLockState) (self)->_->set(SettingsHashNode(self), idx, name, val, _ssdCurrentLockState)
127#define settingshashnodeSetC(self, idx, name, val, _ssdCurrentLockState) (self)->_->setC(SettingsHashNode(self), idx, name, val, _ssdCurrentLockState)
131#define settingshashnodeRemove(self, idx, name, _ssdCurrentLockState) (self)->_->remove(SettingsHashNode(self), idx, name, _ssdCurrentLockState)
135#define settingshashnodeCount(self, _ssdCurrentLockState) (self)->_->count(SettingsHashNode(self), _ssdCurrentLockState)
143#define settingshashnodeIter(self) (self)->_->iter(SettingsHashNode(self))
145#define settingshashnode_iterLocked(self, _ssdCurrentLockState) (self)->_->_iterLocked(SettingsHashNode(self), _ssdCurrentLockState)
147#define settingshashnodeBind(self, name, btyp, bvar, bdef, _ssdCurrentLockState) (self)->_->bind(SettingsHashNode(self), name, btyp, bvar, bdef, _ssdCurrentLockState)
151#define settingshashnodeCheckBound(self, name, _ssdCurrentLockState) (self)->_->checkBound(SettingsHashNode(self), name, _ssdCurrentLockState)
155#define settingshashnodeCheckAll(self, _ssdCurrentLockState) (self)->_->checkAll(SettingsHashNode(self), _ssdCurrentLockState)
157#define settingshashnodeUnbindAll(self, _ssdCurrentLockState) (self)->_->unbindAll(SettingsHashNode(self), _ssdCurrentLockState)
#define saDeclarePtr(name)
#define _objfactory_guaranteed
#define stvar(typen, val)
CX Object System - Object-oriented programming in C.