Alchemist  0.8
alchemist.h
Go to the documentation of this file.
1 #ifndef __ALCHEMIST__
2 #define __ALCHEMIST__
3 
4 #include <sys/types.h> /* for: uid_t, gid_t */
5 
6 /*
7  * alchemist.h
8  */
9 
10 /* bump the major version every time a change made which would break existing
11 * compiled wodules. */
12 #define ALCHEMIST_ABI_MAJOR_VER 0
13 
14 /* bump the minor version every time a change is made which would not break
15 * existing modules with an equivalent major and equall or smaller minor version
16 */
17 #define ALCHEMIST_ABI_MINOR_VER 0
18 
19 typedef struct AdmError AdmError;
20 
30 void AdmError_create (AdmError **error,
31  int num,
32  const char *format,
33  ...);
34 
39 void AdmError_ref (AdmError *error);
40 
47 void AdmError_unref (AdmError *error);
48 
59 const char *AdmError_strerr (AdmError *error);
60 
70 int AdmError_errno (AdmError *error);
71 
72 /* AdmError Numbers */
73 #define ADM_EDEADNODE 1
74 #define ADM_EBADTYPE 2
76 #define ADM_EBADNAME 3
77 #define ADM_EBADDATA 4
78 #define ADM_ECONSTRAINT 5
80 #define ADM_ENOINDEX 51
81 #define ADM_ENONAME 52
82 #define ADM_ENOPATH 53
84 #define ADM_EACCESSFAILED 101
85 #define ADM_ENONAMESPACE 102
86 #define ADM_ENOSUBSPACE 103
88 #define ADM_ENOWRITE 201
89 #define ADM_ENOREAD 202
90 #define ADM_ENOLISTSERIAL 203
91 #define ADM_ENOREADSERIAL 204
92 #define ADM_ENOCACHE 205
94 #define ADM_ENOBOXTYPE 251
96 #define ADM_EPARSE 301
98 typedef struct AdmRefStr AdmRefStr;
99 
100 AdmRefStr * AdmRefStr_ref (AdmRefStr *refstr);
101 void AdmRefStr_unref (AdmRefStr *refstr);
102 
103 size_t AdmRefStr_len (AdmRefStr *refstr);
104 
105 #define AdmRefStr_str(REFSTR) \
106 ({ \
107  AdmRefStr *__tok = (REFSTR); \
108  (const char *) __tok; \
109 })
110 
118 AdmRefStr * AdmRefStr_get (const char *str,
119  int force);
120 
129 AdmRefStr * AdmRefStr_nget (const char *str,
130  size_t len,
131  int force);
132 
133 typedef struct AdmData AdmData;
134 
135 typedef struct AdmList AdmList;
136 
137 typedef struct AdmInt AdmInt;
138 
139 typedef struct AdmBool AdmBool;
140 
141 typedef struct AdmFloat AdmFloat;
142 
143 typedef struct AdmString AdmString;
144 
145 typedef struct AdmString AdmBase64;
146 
147 typedef struct AdmString AdmCopy;
148 
149 typedef struct AdmIdentity AdmIdentity;
150 
151 typedef struct AdmContext AdmContext;
152 
153 typedef enum {
162 } AdmDataType;
163 
164 /* context create and destroy */
179 AdmContext * AdmContext_new (const char *name,
180  unsigned int serial,
181  AdmError **error);
182 
194  AdmError **error);
195 
209 void AdmContext_unref (AdmContext *context,
210  AdmError **error);
211 
212 
213 /* context merge, copy, and flatten */
224  AdmError **error);
225 
244 AdmContext * AdmContext_merge (const char *name,
245  unsigned int serial,
246  AdmContext *contextA,
247  AdmContext *contextB,
248  AdmError **error);
249 
260 void AdmContext_flatten (AdmContext *context,
261  AdmError **error);
262 
272 void AdmContext_strip (AdmContext *context,
273  AdmError **error);
274 
275 
276 /* context encode and decode */
277 char * AdmContext_toXML (AdmContext *context,
278  AdmError **error);
279 AdmContext * AdmContext_fromXML (const char *xml,
280  AdmError **error);
281 int AdmContext_readFromFile (AdmContext **context,
282  const char *path,
283  AdmError **error);
284 
285 int AdmContext_writeToFile (AdmContext *context,
286  const char *path,
287  int mode,
288  uid_t uid,
289  gid_t gid,
290  AdmError **error);
291 
292 /* context mask manuipulators */
311  unsigned int index,
312  AdmError **error);
313 
328 int AdmContext_setMask (AdmContext *context,
329  const char *path,
330  AdmError **error);
331 
347  unsigned int index,
348  AdmError **error);
349 
364  const char *path,
365  AdmError **error);
366 
378 unsigned int AdmContext_getNumMasks (AdmContext *context,
379  AdmError **error);
380 
381 
382 /* identity related funcs */
396  AdmError **error);
397 #define AdmContext_getIdentityRoot_b(CONTEXT, ERROR) \
398 ({ \
399  AdmError **__err = (ERROR); \
400  AdmIdentity *__id; \
401  __id = AdmContext_getIdentityRoot((CONTEXT), __err); \
402  if (__id != NULL) \
403  AdmIdentity_unref(__id, __err); \
404  __id; \
405 })
406 
419  AdmError **error);
420 #define AdmIdentity_getParentA_b(ID, ERROR) \
421 ({ \
422  AdmError **__err = (ERROR); \
423  AdmIdentity *__id; \
424  __id = AdmIdentity_getParentA((ID), __err); \
425  if (__id != NULL) \
426  AdmIdentity_unref(__id, __err); \
427  __id; \
428 })
429 
442  AdmError **error);
443 #define AdmIdentity_getParentB_b(ID, ERROR) \
444 ({ \
445  AdmError **__err = (ERROR); \
446  AdmIdentity *__id; \
447  __id = AdmIdentity_getParentB((ID), __err); \
448  if (__id != NULL) \
449  AdmIdentity_unref(__id, __err); \
450  __id; \
451 })
452 
469  AdmError **error);
470 
482 int AdmIdentity_setName (AdmIdentity *identity,
483  const char *name,
484  AdmError **error);
485 
496 unsigned int AdmIdentity_getSerial (AdmIdentity *identity,
497  AdmError **error);
498 
510 int AdmIdentity_setSerial (AdmIdentity *identity,
511  unsigned int serial,
512  AdmError **error);
513 
526  AdmError **error);
527 
540 void AdmIdentity_unref (AdmIdentity *identity,
541  AdmError **error);
542 
555  AdmError **error);
556 #define AdmIdentity_getContext_b(ID, ERROR) \
557 ({ \
558  AdmError **__err = (ERROR); \
559  AdmContext *__ctx; \
560  __ctx = AdmIdentity_getContext((ID), __err); \
561  if (__ctx != NULL) \
562  AdmContext_unref(__ctx, __err); \
563  __ctx; \
564 })
565 
581 int AdmIdentity_isAlive (AdmIdentity *identity,
582  AdmError **error);
583 
584 
585 /* data group structure funcs */
598  AdmError **error);
599 #define AdmContext_getDataRoot_b(CONTEXT, ERROR) \
600 ({ \
601  AdmError **__err = (ERROR); \
602  AdmData *__data; \
603  __data = AdmContext_getDataRoot((CONTEXT), __err); \
604  if (__data != NULL) \
605  AdmData_unref(__data, __err); \
606  __data; \
607 })
608 
622  AdmError **error);
623 #define AdmData_getContainer_b(DATA, ERROR) \
624 ({ \
625  AdmError **__err = (ERROR); \
626  AdmData *__data; \
627  __data = AdmData_getContainer((DATA), __err); \
628  if (__data != NULL) \
629  AdmData_unref(__data, __err); \
630  __data; \
631 })
632 
641  int wrap,
642  AdmError **error);
643 #define AdmData_getPrev_b(DATA, WRAP, ERROR) \
644 ({ \
645  AdmError **__err = (ERROR); \
646  AdmData *__data; \
647  __data = AdmData_getPrev((DATA), (WRAP), __err); \
648  if (__data != NULL) \
649  AdmData_unref(__data, __err); \
650  __data; \
651 })
652 
661  int wrap,
662  AdmError **error);
663 #define AdmData_getNext_b(DATA, WRAP, ERROR) \
664 ({ \
665  AdmError **__err = (ERROR); \
666  AdmData *__data; \
667  __data = AdmData_getNext((DATA), (WRAP), __err); \
668  if (__data != NULL) \
669  AdmData_unref(__data, __err); \
670  __data; \
671 })
672 
685  AdmError **error);
686 #define AdmData_getContext_b(DATA, ERROR) \
687 ({ \
688  AdmError **__err = (ERROR); \
689  AdmContext *__ctx; \
690  __ctx = AdmData_getContext((DATA), __err); \
691  if (__ctx != NULL) \
692  AdmContext_unref(__ctx, __err); \
693  __ctx; \
694 })
695 
710  const char *path,
711  AdmError **error);
712 #define AdmContext_getDataByPath_b(CONTEXT, PATH, ERROR) \
713 ({ \
714  AdmError **__err = (ERROR); \
715  AdmData *__data; \
716  __data = AdmContext_getDataByPath((CONTEXT), (PATH), __err); \
717  if (__data != NULL) \
718  AdmData_unref(__data, __err); \
719  __data; \
720 })
721 
722 /* data group meta funcs */
734  AdmError **error);
735 
747 AdmData * AdmData_ref (AdmData *data,
748  AdmError **error);
749 
762 void AdmData_unref (AdmData *data,
763  AdmError **error);
764 
780 int AdmData_isAlive (AdmData *data,
781  AdmError **error);
782 
796 int AdmData_unlink (AdmData *data,
797  AdmError **error);
798 
809 int AdmData_validName (const char *name);
810 
827  AdmError **error);
828 
843 int AdmData_setName (AdmData *data,
844  const char *name,
845  AdmError **error);
846 
864  AdmError **error);
865 
880 int AdmData_setSource (AdmData *data,
881  const char *source,
882  AdmError **error);
883 
895 int AdmData_isProtected (AdmData *data,
896  AdmError **error);
897 
913 int AdmData_setProtected (AdmData *data,
914  int state,
915  AdmError **error);
916 
917 
918 /* list meta funcs */
930 int AdmList_isAnonymous (AdmList *list,
931  AdmError **error);
932 
949 int AdmList_setAnonymous (AdmList *list,
950  int state,
951  AdmError **error);
952 
964 int AdmList_isAtomic (AdmList *list,
965  AdmError **error);
966 
982 int AdmList_setAtomic (AdmList *list,
983  int state,
984  AdmError **error);
985 
997 int AdmList_isPrepend (AdmList *list,
998  AdmError **error);
999 
1015 int AdmList_setPrepend (AdmList *list,
1016  int state,
1017  AdmError **error);
1018 
1019 
1020 /* list child funcs */
1032 unsigned int AdmList_getNumData (AdmList *list,
1033  AdmError **error);
1034 
1049  unsigned int index,
1050  AdmError **error);
1051 #define AdmList_getDataByIndex_b(LIST, INDEX, ERROR) \
1052 ({ \
1053  AdmError **__err = (ERROR); \
1054  AdmData *__data; \
1055  __data = AdmList_getDataByIndex((LIST), (INDEX), __err); \
1056  if (__data != NULL) \
1057  AdmData_unref(__data, __err); \
1058  __data; \
1059 })
1060 
1075  const char *name,
1076  AdmError **error);
1077 #define AdmList_getDataByName_b(LIST, NAME, ERROR) \
1078 ({ \
1079  AdmError **__err = (ERROR); \
1080  AdmData *__data; \
1081  __data = AdmList_getDataByName((LIST), (NAME), __err); \
1082  if (__data != NULL) \
1083  AdmData_unref(__data, __err); \
1084  __data; \
1085 })
1086 
1101  const char *path,
1102  AdmError **error);
1103 #define AdmList_getDataByPath_b(LIST, PATH, ERROR) \
1104 ({ \
1105  AdmError **__err = (ERROR); \
1106  AdmData *__data; \
1107  __data = AdmList_getDataByPath((LIST), (PATH), __err); \
1108  if (__data != NULL) \
1109  AdmData_unref(__data, __err); \
1110  __data; \
1111 })
1112 
1134  AdmDataType type,
1135  const char *name,
1136  AdmError **error);
1137 #define AdmList_addData_b(LIST, TYPE, NAME, ERROR) \
1138 ({ \
1139  AdmError **__err = (ERROR); \
1140  AdmData *__data; \
1141  __data = AdmList_addData((LIST), (TYPE), (NAME), __err); \
1142  if (__data != NULL) \
1143  AdmData_unref(__data, __err); \
1144  __data; \
1145 })
1146 
1161 int AdmList_moveData (AdmList *list,
1162  AdmData *data,
1163  unsigned int index,
1164  AdmError **error);
1165 
1181  AdmData *data,
1182  AdmError **error);
1183 #define AdmList_copyData_b(LIST, DATA, ERROR) \
1184 ({ \
1185  AdmError **__err = (ERROR); \
1186  AdmData *__data; \
1187  __data = AdmList_copyData((LIST), (DATA), __err); \
1188  if (__data != NULL) \
1189  AdmData_unref(__data, __err); \
1190  __data; \
1191 })
1192 
1209  AdmData *data,
1210  const char *name,
1211  AdmError **error);
1212 #define AdmList_renameCopyData_b(LIST, DATA, NAME, ERROR) \
1213 ({ \
1214  AdmError **__err = (ERROR); \
1215  AdmData *__data; \
1216  __data = AdmList_renameCopyData((LIST), (DATA), (NAME), __err); \
1217  if (__data != NULL) \
1218  AdmData_unref(__data, __err); \
1219  __data; \
1220 })
1221 
1233 unsigned int AdmData_getPos (AdmData *data,
1234  AdmError **error);
1235 
1236 
1237 /* scalar functions */
1247 int AdmInt_getValue (AdmInt *int_scalar,
1248  AdmError **error);
1249 
1260 int AdmInt_setValue (AdmInt *int_scalar,
1261  int value,
1262  AdmError **error);
1263 
1273 double AdmFloat_getValue (AdmFloat *float_scalar,
1274  AdmError **error);
1275 
1286 int AdmFloat_setValue (AdmFloat *float_scalar,
1287  double value,
1288  AdmError **error);
1289 
1299 int AdmBool_getValue (AdmBool *bool_scalar,
1300  AdmError **error);
1301 
1312 int AdmBool_setValue (AdmBool *bool_scalar,
1313  int value,
1314  AdmError **error);
1315 
1332 AdmRefStr * AdmString_getValue (AdmString *string_scalar,
1333  AdmError **error);
1334 
1346 int AdmString_setValue (AdmString *string_scalar,
1347  const char *value,
1348  AdmError **error);
1349 
1361 AdmRefStr * AdmBase64_getValue (AdmBase64 *base64_scalar,
1362  AdmError **error);
1363 
1374 int AdmBase64_setValue (AdmBase64 *base64_scalar,
1375  const char *value,
1376  AdmError **error);
1389 size_t AdmBase64_getBinValue (AdmBase64 *base64_scalar,
1390  void **value,
1391  AdmError **error);
1403 int AdmBase64_setBinValue (AdmBase64 *base64_scalar,
1404  const void *value,
1405  size_t size,
1406  AdmError **error);
1407 
1421 AdmRefStr * AdmCopy_getValue (AdmCopy *copy_scalar,
1422  AdmError **error);
1423 
1434 int AdmCopy_setValue (AdmCopy *copy_scalar,
1435  const char *value,
1436  AdmError **error);
1437 
1438 /* blackbox prototypes */
1439 typedef struct AdmBlackBox AdmBlackBox;
1440 
1441 
1449 
1457 int AdmBlackBox_setCacheDir (const char *path,
1458  AdmError **error);
1459 
1461  AdmError **error);
1462 
1463 typedef struct {
1464  unsigned char array[1];
1465 } adm_bb_cap_t;
1475  AdmError **error);
1476 #define ADM_BBCAP_SUP_WRITE(CAP) ((CAP).array[0] & (1 << 0))
1477 #define ADM_BBCAP_SUP_READ(CAP) ((CAP).array[0] & (1 << 1))
1478 #define ADM_BBCAP_SUP_LISTSERIAL(CAP) ((CAP).array[0] & (1 << 2))
1479 #define ADM_BBCAP_SUP_READSERIAL(CAP) ((CAP).array[0] & (1 << 3))
1480 #define ADM_BBCAP_CACHED(CAP) ((CAP).array[0] & (1 << 4))
1481 
1489 void AdmBlackBox_ref (AdmBlackBox *box,
1490  AdmError **error);
1491 
1499 void AdmBlackBox_unref (AdmBlackBox *box,
1500  AdmError **error);
1501 
1513  AdmError **error);
1514 
1534  unsigned int *array,
1535  unsigned int array_len,
1536  unsigned int top_serial,
1537  AdmError **error);
1538 
1550  unsigned int serial,
1551  AdmError **error);
1552 
1563 int AdmBlackBox_write (AdmBlackBox *box,
1564  AdmContext *context,
1565  AdmError **error);
1566 
1579 unsigned int AdmBlackBox_getMark (AdmBlackBox *box,
1580  const char *mark,
1581  AdmError **error);
1607  const char *mark,
1608  AdmError **error);
1609 
1620  const char *mark,
1621  AdmError **error);
1622 
1623 /* switchboard */
1631 
1639 int AdmSwitchboard_setSwbDir (const char *path,
1640  AdmError **error);
1641 
1642 int AdmSwitchboard_markNsp (const char *namespace,
1643  const char *subspace,
1644  const char *mark,
1645  AdmError **error);
1646 
1648  AdmList *namespace_cfg,
1649  const char *subspace,
1650  const char *mark,
1651  AdmError **error);
1652 
1653 int AdmSwitchboard_checkNspMark (const char *namespace,
1654  const char *subspace,
1655  const char *mark,
1656  AdmError **error);
1657 
1659  AdmList *namespace_cfg,
1660  const char *subspace,
1661  const char *mark,
1662  AdmError **error);
1663 
1671 AdmContext *AdmSwitchboard_readNsp (const char *namespace,
1672  const char *subspace,
1673  unsigned int depth,
1674  AdmError **error);
1675 
1677  AdmList *namespace_cfg,
1678  const char *subspace,
1679  unsigned int depth,
1680  AdmError **error);
1681 
1689 int AdmSwitchboard_writeNsp (const char *namespace,
1690  const char *subspace,
1691  AdmContext *context,
1692  AdmError **error);
1693 
1695  AdmList *namespace_cfg,
1696  const char *subspace,
1697  AdmContext *context,
1698  AdmError **error);
1699 
1706 AdmContext *AdmSwitchboard_readNspCtx (const char *namespace,
1707  AdmError **error);
1708 
1719 int AdmSwitchboard_writeNspCtx (const char *namespace,
1720  AdmContext *namespace_ctx,
1721  int mode,
1722  uid_t uid,
1723  gid_t gid,
1724  AdmError **error);
1725 
1732  AdmContext *namespace_ctx,
1733  const char *namespace,
1734  AdmError **error);
1735 #define AdmSwitchboard_getNspCfg_b(CTX, NAMESPACE, ERROR) \
1736 ({ \
1737  AdmError **__err = (ERROR); \
1738  AdmList *__list; \
1739  __list = AdmSwitchboard_getNspCfg((CTX), (NAMESPACE), __err); \
1740  if (__list != NULL) \
1741  AdmData_unref((AdmData *) __list, __err); \
1742  __list; \
1743 })
1744 
1752  AdmList *namespace_cfg,
1753  const char *subspace,
1754  AdmError **error);
1755 #define AdmSwitchboard_getSubspCfg_b(CTX, SUBSPACE, ERROR) \
1756 ({ \
1757  AdmError **__err = (ERROR); \
1758  AdmList *__list; \
1759  __list = AdmSwitchboard_getSubspCfg((CTX), (SUBSPACE), __err); \
1760  if (__list != NULL) \
1761  AdmData_unref((AdmData *) __list, __err); \
1762  __list; \
1763 })
1764 
1765 
1772  AdmList *subspace_cfg,
1773  const char *box_name,
1774  AdmError **error);
1775 
1776 #endif /* __ALCHEMIST__ */
AdmContext * AdmSwitchboard_readNsp(const char *namespace, const char *subspace, unsigned int depth, AdmError **error)
AdmContext * AdmContext_new(const char *name, unsigned int serial, AdmError **error)
AdmContext constructor.
AdmRefStr * AdmRefStr_nget(const char *str, size_t len, int force)
Get an AdmRefStr, by length.
Definition: alchemist.h:157
int AdmData_setProtected(AdmData *data, int state, AdmError **error)
AdmData protected mutator.
AdmData * AdmList_renameCopyData(AdmList *list, AdmData *data, const char *name, AdmError **error)
AdmList copy data operator.
int AdmBlackBox_clearMark(AdmBlackBox *box, const char *mark, AdmError **error)
AdmBlackbox mark destructor.
int AdmData_setName(AdmData *data, const char *name, AdmError **error)
AdmData name mutator.
void AdmBlackBox_ref(AdmBlackBox *box, AdmError **error)
AdmBlackbox reference increment.
struct AdmBlackBox AdmBlackBox
Definition: alchemist.h:1439
int AdmList_isAtomic(AdmList *list, AdmError **error)
AdmList atomic verification.
AdmDataType AdmData_getType(AdmData *data, AdmError **error)
AdmData type accessor.
AdmRefStr * AdmCopy_getValue(AdmCopy *copy_scalar, AdmError **error)
Get the value of an AdmCopy element.
Definition: alchemist.h:158
size_t AdmBase64_getBinValue(AdmBase64 *base64_scalar, void **value, AdmError **error)
Get the binary value of an AdmBase64 element.
int AdmData_isProtected(AdmData *data, AdmError **error)
AdmData protected verification.
int AdmBase64_setBinValue(AdmBase64 *base64_scalar, const void *value, size_t size, AdmError **error)
Set the value of an AdmBase64 element.
unsigned int AdmList_getNumData(AdmList *list, AdmError **error)
AdmList length aggregator.
int AdmString_setValue(AdmString *string_scalar, const char *value, AdmError **error)
AdmDataType
Definition: alchemist.h:153
AdmData * AdmContext_getDataByPath(AdmContext *context, const char *path, AdmError **error)
AdmData path lookup.
int AdmList_setPrepend(AdmList *list, int state, AdmError **error)
AdmList prepend mutator.
int AdmSwitchboard_checkNspMark(const char *namespace, const char *subspace, const char *mark, AdmError **error)
Definition: alchemist.h:155
AdmContext * AdmBlackBox_read(AdmBlackBox *box, AdmError **error)
AdmBlackbox read operator.
Definition: alchemist.h:1463
int AdmBool_setValue(AdmBool *bool_scalar, int value, AdmError **error)
set an AdmBool&#39;s value
AdmRefStr * AdmIdentity_getName(AdmIdentity *identity, AdmError **error)
AdmIdentity name accessor.
int AdmContext_setMask(AdmContext *context, const char *path, AdmError **error)
AdmContext mask set mutator.
struct AdmList AdmList
Definition: alchemist.h:135
void AdmIdentity_unref(AdmIdentity *identity, AdmError **error)
AdmIdentity reference decrement.
struct AdmFloat AdmFloat
Definition: alchemist.h:141
int AdmSwitchboard_checkNspMarkWithConfig(AdmList *namespace_cfg, const char *subspace, const char *mark, AdmError **error)
int AdmFloat_setValue(AdmFloat *float_scalar, double value, AdmError **error)
set an AdmFloat&#39;s value
int AdmSwitchboard_markNsp(const char *namespace, const char *subspace, const char *mark, AdmError **error)
unsigned int AdmContext_getNumMasks(AdmContext *context, AdmError **error)
AdmContext mask set length aggregator.
int AdmIdentity_setSerial(AdmIdentity *identity, unsigned int serial, AdmError **error)
AdmIdentity serial number mutator.
int AdmCopy_setValue(AdmCopy *copy_scalar, const char *value, AdmError **error)
Set the value of an AdmCopy element.
int AdmData_unlink(AdmData *data, AdmError **error)
AdmData unlink operator.
const char * AdmError_strerr(AdmError *error)
String description of error.
void AdmRefStr_unref(AdmRefStr *refstr)
int AdmIdentity_setName(AdmIdentity *identity, const char *name, AdmError **error)
AdmIdentity name mutator.
Definition: alchemist.h:154
AdmList * AdmSwitchboard_getNspCfg(AdmContext *namespace_ctx, const char *namespace, AdmError **error)
AdmIdentity * AdmIdentity_getParentA(AdmIdentity *identity, AdmError **error)
AdmIdentity parentA accessor.
AdmData * AdmData_getPrev(AdmData *data, int wrap, AdmError **error)
get the previous sibling of an AdmData element
void AdmError_create(AdmError **error, int num, const char *format,...)
Allocate new AdmError structure.
AdmData * AdmList_getDataByPath(AdmList *list, const char *path, AdmError **error)
AdmList child data path accessor.
int AdmList_isAnonymous(AdmList *list, AdmError **error)
AdmList anonymous verification.
unsigned int AdmIdentity_getSerial(AdmIdentity *identity, AdmError **error)
AdmIdentity serial number accessor.
AdmContext * AdmSwitchboard_readNspCtx(const char *namespace, AdmError **error)
read a switchboard namespace configuration from the system
Definition: alchemist.h:159
int AdmList_setAnonymous(AdmList *list, int state, AdmError **error)
AdmList anonymous mutator.
AdmContext * AdmData_getContext(AdmData *data, AdmError **error)
AdmData context accessor.
AdmRefStr * AdmData_getName(AdmData *data, AdmError **error)
AdmData name accessor.
int AdmBlackBox_setCacheDir(const char *path, AdmError **error)
int AdmInt_setValue(AdmInt *int_scalar, int value, AdmError **error)
set an AdmInt&#39;s value
struct AdmIdentity AdmIdentity
Definition: alchemist.h:149
void AdmContext_strip(AdmContext *context, AdmError **error)
AdmContext strip function.
AdmContext * AdmContext_copy(AdmContext *context, AdmError **error)
AdmContext copy operator.
AdmData * AdmContext_getDataRoot(AdmContext *context, AdmError **error)
AdmContext data root accessor.
void AdmError_unref(AdmError *error)
Decrement the ref count of an AdmError structure.
void AdmError_ref(AdmError *error)
Increment the ref count of an AdmError structure.
int AdmList_moveData(AdmList *list, AdmData *data, unsigned int index, AdmError **error)
AdmList child move operator.
AdmList * AdmSwitchboard_getSubspCfg(AdmList *namespace_cfg, const char *subspace, AdmError **error)
int AdmContext_readFromFile(AdmContext **context, const char *path, AdmError **error)
int AdmSwitchboard_writeNspCtx(const char *namespace, AdmContext *namespace_ctx, int mode, uid_t uid, gid_t gid, AdmError **error)
writes a switchboard namespace configuration to the system
void AdmData_unref(AdmData *data, AdmError **error)
AdmData reference decrement.
AdmData * AdmData_getNext(AdmData *data, int wrap, AdmError **error)
get the next sibling of an AdmData element
struct AdmString AdmBase64
Definition: alchemist.h:145
int AdmSwitchboard_writeNspWithConfig(AdmList *namespace_cfg, const char *subspace, AdmContext *context, AdmError **error)
struct AdmString AdmString
Definition: alchemist.h:143
int AdmData_validName(const char *name)
Checks a string for name validity.
char * AdmContext_toXML(AdmContext *context, AdmError **error)
int AdmContext_clearMaskByIndex(AdmContext *context, unsigned int index, AdmError **error)
AdmContext mask set element index remove.
Definition: alchemist.h:160
AdmIdentity * AdmContext_getIdentityRoot(AdmContext *context, AdmError **error)
AdmContext identity root accessor.
AdmRefStr * AdmString_getValue(AdmString *string_scalar, AdmError **error)
get an AdmString&#39;s value
struct AdmData AdmData
Definition: alchemist.h:133
struct AdmBool AdmBool
Definition: alchemist.h:139
int AdmList_isPrepend(AdmList *list, AdmError **error)
AdmList prepend verification.
AdmData * AdmData_getContainer(AdmData *data, AdmError **error)
AdmData container accessor.
struct AdmInt AdmInt
Definition: alchemist.h:137
size_t AdmRefStr_len(AdmRefStr *refstr)
AdmContext * AdmSwitchboard_readNspWithConfig(AdmList *namespace_cfg, const char *subspace, unsigned int depth, AdmError **error)
int AdmBlackBox_write(AdmBlackBox *box, AdmContext *context, AdmError **error)
AdmBlackbox write operator.
AdmRefStr * AdmData_getSource(AdmData *data, AdmError **error)
AdmData source accessor.
int AdmSwitchboard_writeNsp(const char *namespace, const char *subspace, AdmContext *context, AdmError **error)
int AdmIdentity_isAlive(AdmIdentity *identity, AdmError **error)
AdmIdentity reference check.
AdmData * AdmData_ref(AdmData *data, AdmError **error)
AdmData reference increment.
AdmRefStr * AdmBlackBox_getCacheDir(AdmError **error)
double AdmFloat_getValue(AdmFloat *float_scalar, AdmError **error)
get an AdmFloat&#39;s value
struct AdmError AdmError
Definition: alchemist.h:19
AdmContext * AdmContext_ref(AdmContext *context, AdmError **error)
AdmContext reference increment.
int AdmBase64_setValue(AdmBase64 *base64_scalar, const char *value, AdmError **error)
Set the value of an AdmBase64 element.
AdmContext * AdmBlackBox_readSerial(AdmBlackBox *box, unsigned int serial, AdmError **error)
AdmBlackbox serial list request.
AdmData * AdmList_copyData(AdmList *list, AdmData *data, AdmError **error)
AdmList copy data operator.
int AdmData_setSource(AdmData *data, const char *source, AdmError **error)
AdmData source mutator.
AdmContext * AdmContext_merge(const char *name, unsigned int serial, AdmContext *contextA, AdmContext *contextB, AdmError **error)
AdmContext merge operator.
struct AdmContext AdmContext
Definition: alchemist.h:151
AdmBlackBox * AdmSwitchboard_getBox(AdmList *subspace_cfg, const char *box_name, AdmError **error)
struct AdmRefStr AdmRefStr
Definition: alchemist.h:98
AdmContext * AdmContext_fromXML(const char *xml, AdmError **error)
AdmIdentity * AdmIdentity_ref(AdmIdentity *identity, AdmError **error)
AdmIdentity reference increment.
AdmRefStr * AdmSwitchboard_getSwbDir(AdmError **error)
AdmBlackBox * AdmBlackBox_getBox(AdmList *box_cfg, AdmError **error)
int AdmInt_getValue(AdmInt *int_scalar, AdmError **error)
get an AdmInt&#39;s value
AdmRefStr * AdmContext_getMask(AdmContext *context, unsigned int index, AdmError **error)
AdmContext mask set accessor.
void AdmBlackBox_unref(AdmBlackBox *box, AdmError **error)
AdmBlackbox reference decrement.
Definition: alchemist.h:156
AdmRefStr * AdmBase64_getValue(AdmBase64 *base64_scalar, AdmError **error)
unsigned int AdmBlackBox_getMark(AdmBlackBox *box, const char *mark, AdmError **error)
AdmBlackBox mark accessor.
void AdmContext_flatten(AdmContext *context, AdmError **error)
AdmContext flatten operator.
int AdmError_errno(AdmError *error)
Integer error code of error.
struct AdmString AdmCopy
Definition: alchemist.h:147
AdmData * AdmList_getDataByIndex(AdmList *list, unsigned int index, AdmError **error)
AdmList child index accessor.
int AdmData_isAlive(AdmData *data, AdmError **error)
AdmData reference check.
adm_bb_cap_t AdmBlackBox_caps(AdmBlackBox *box, AdmError **error)
AdmBlackBox capability querry.
int AdmBlackBox_setMark(AdmBlackBox *box, const char *mark, AdmError **error)
AdmBlackBox mark mutator.
int AdmBlackBox_listSerial(AdmBlackBox *box, unsigned int *array, unsigned int array_len, unsigned int top_serial, AdmError **error)
AdmBlackbox serial list request.
AdmIdentity * AdmIdentity_getParentB(AdmIdentity *identity, AdmError **error)
AdmIdentity parentB accessor.
AdmContext * AdmIdentity_getContext(AdmIdentity *identity, AdmError **error)
AdmIdentity context accessor.
int AdmContext_writeToFile(AdmContext *context, const char *path, int mode, uid_t uid, gid_t gid, AdmError **error)
unsigned int AdmData_getPos(AdmData *data, AdmError **error)
AdmList child position operator.
AdmRefStr * AdmRefStr_get(const char *str, int force)
Get an AdmRefStr.
int AdmList_setAtomic(AdmList *list, int state, AdmError **error)
AdmList atomic mutator.
AdmData * AdmList_addData(AdmList *list, AdmDataType type, const char *name, AdmError **error)
AdmList add child operator.
Definition: alchemist.h:161
int AdmSwitchboard_markNspWithConfig(AdmList *namespace_cfg, const char *subspace, const char *mark, AdmError **error)
int AdmBool_getValue(AdmBool *bool_scalar, AdmError **error)
get an AdmBool&#39;s value
int AdmSwitchboard_setSwbDir(const char *path, AdmError **error)
int AdmContext_clearMaskByPath(AdmContext *context, const char *path, AdmError **error)
AdmContext mask set element data path remove.
AdmData * AdmList_getDataByName(AdmList *list, const char *name, AdmError **error)
AdmList child name accessor.
AdmRefStr * AdmRefStr_ref(AdmRefStr *refstr)
void AdmContext_unref(AdmContext *context, AdmError **error)
AdmContext reference decrement.