CX Framework
Cross-platform C utility framework
Loading...
Searching...
No Matches
settingstree.h
1#pragma once
2// This header file is auto-generated!
3// Do not make changes to this file or they will be overwritten.
4// clang-format off
5#include <cx/obj.h>
6#include <cx/struct.h>
7#include <cx/thread.h>
8#include <cx/fs/vfsobj.h>
9#include <cx/ssdtree/ssdtreeobj.h>
10
11CX_C_BEGIN
12
13typedef struct VFSDir VFSDir;
14typedef struct SettingsTree SettingsTree;
15typedef struct SettingsTree_WeakRef SettingsTree_WeakRef;
16saDeclarePtr(SettingsTree);
17saDeclarePtr(SettingsTree_WeakRef);
18#define _sti_SettingsTree _sti_object
19#define SType_SettingsTree SettingsTree*
20#define STStorageType_SettingsTree SettingsTree*
21#define STypeArg_SettingsTree(type, val) stgeneric(object, (ObjInst*)objInstCheckClass(SettingsTree, val))
22#define STypeArgPtr_SettingsTree(type, val) (stgeneric*)objInstCheckClassPtr(SettingsTree, val)
23#define STypeCheckedArg_SettingsTree(type, val) stType(type), stArg(type, val)
24#define STypeCheckedPtrArg_SettingsTree(type, val) stType(type), stArgPtr(type, val)
25
26typedef struct SettingsTree_ClassIf {
27 ObjIface* _implements;
28 ObjIface* _parent;
29 size_t _size;
30
31 _objfactory_guaranteed SSDNode* (*createNode)(_In_ void* self, _In_range_(SSD_Create_None+1, SSD_Create_Count-1) SSDCreateType crtype);
32} SettingsTree_ClassIf;
33extern SettingsTree_ClassIf SettingsTree_ClassIf_tmpl;
34
35typedef struct SettingsTree {
36 union {
37 SettingsTree_ClassIf* _;
38 void* _is_SettingsTree;
39 void* _is_SSDTree;
40 void* _is_ObjInst;
41 };
42 ObjClassInfo* _clsinfo;
43 atomic(uintptr) _ref;
44 atomic(ptr) _weakref;
45
46 RWLock lock;
47 SSDTreeDebug dbg;
48 uint32 flags;
49 int64 modified; // The most recent last-modified timestamp of any node in the tree
50 SSDNodeFactory factories[SSD_Create_Count]; // Factory functions for if this tree wants to use derived node classes
51 VFS* vfs;
52 string filename;
53 int64 interval; // interval to flush to disk
54 int64 check; // timestamp of last background check
55 int64 saved; // timestamp the settings were last saved to disk
56 bool checkbound; // re-check all bound variables at next flush
57} SettingsTree;
58extern ObjClassInfo SettingsTree_clsinfo;
59#define SettingsTree(inst) objInstCheckClass(SettingsTree, inst)
60#define SettingsTreeNone ((SettingsTree*)NULL)
61
62typedef struct SettingsTree_WeakRef {
63 union {
64 ObjInst* _inst;
65 void* _is_SettingsTree_WeakRef;
66 void* _is_SSDTree_WeakRef;
67 void* _is_ObjInst_WeakRef;
68 };
69 atomic(uintptr) _ref;
70 RWLock _lock;
71} SettingsTree_WeakRef;
72#define SettingsTree_WeakRef(inst) objWeakRefCheckClass(SettingsTree, inst)
73
74_objfactory_guaranteed SettingsTree* SettingsTree_create();
75// SettingsTree* settingstreeCreate();
76#define settingstreeCreate() SettingsTree_create()
77
78// SSDNode* settingstreeCreateNode(SettingsTree* self, SSDCreateType crtype);
79#define settingstreeCreateNode(self, crtype) (self)->_->createNode(SettingsTree(self), crtype)
80
81CX_C_END
#define saDeclarePtr(name)
Definition sarray.h:100
#define _objfactory_guaranteed
Definition objimpl.h:106
enum SSD_CREATE_TYPE_ENUM SSDCreateType
Node creation types for specifying which kind of node to create.
@ SSD_Create_None
Do not create a node.
Definition ssdshared.h:27
@ SSD_Create_Count
Total number of creation types (internal use)
Definition ssdshared.h:32
CX Struct System - Introspectable, serializable POD structures in C.
Threading system aggregated header.
CX Object System - Object-oriented programming in C.
VFS Object.
Definition vfsobj.h:51
VFS object definitions.