OSSP CVS Repository

ossp - Difference in ossp-pkg/cfg/cfg_node.c versions 1.4 and 1.5
Not logged in
[Honeypot]  [Browse]  [Home]  [Login]  [Reports
[Search]  [Ticket]  [Timeline
  [History

ossp-pkg/cfg/cfg_node.c 1.4 -> 1.5

--- cfg_node.c   2002/07/05 15:32:42     1.4
+++ cfg_node.c   2002/07/10 12:00:23     1.5
@@ -33,9 +33,10 @@
 #include <stdarg.h>
 #include <unistd.h>
 
+#include "cfg_main.h"
 #include "cfg_node.h"
 
-cfg_rc_t cfg_node_create(cfg_node_t **node)
+cfg_rc_t cfg_node_create(cfg_t *cfg, cfg_node_t **node)
 {
     cfg_node_t *n;
 
@@ -44,14 +45,32 @@
     n->parent   = NULL;
     n->rbroth   = NULL;
     n->child1   = NULL;
-    n->type     = CFG_NODE_TYPE_TOK;
+    n->type     = CFG_NODE_TYPE_ARG;
     n->token    = NULL;
     cfg_data_init(&n->data);
     *node = n;
     return CFG_OK;
 }
 
-cfg_rc_t cfg_node_set(cfg_node_t *node, cfg_node_attr_t attr, ...)
+cfg_rc_t cfg_node_destroy(cfg_t *cfg, cfg_node_t *node)
+{
+    if (node == NULL)
+        return CFG_ERR_ARG;
+    if (node->token != NULL)
+        free(node->token);
+    free(node);
+    return CFG_OK;
+}
+
+cfg_rc_t cfg_node_clone(cfg_t *cfg, cfg_node_t *node, cfg_node_t **node2)
+{
+    if (node == NULL || node2 == NULL)
+        return CFG_ERR_ARG;
+    /* FIXME */
+    return CFG_OK;
+}
+
+cfg_rc_t cfg_node_set(cfg_t *cfg, cfg_node_t *node, cfg_node_attr_t attr, ...)
 {
     va_list ap;
 
@@ -89,7 +108,7 @@
     return CFG_OK;
 }
 
-cfg_rc_t cfg_node_get(cfg_node_t *node, cfg_node_attr_t attr, ...)
+cfg_rc_t cfg_node_get(cfg_t *cfg, cfg_node_t *node, cfg_node_attr_t attr, ...)
 {
     va_list ap;
 
@@ -134,12 +153,22 @@
     return CFG_OK;
 }
 
-cfg_rc_t cfg_node_goto(cfg_node_t *node, cfg_node_goto_t id, cfg_node_t **node2)
+cfg_rc_t cfg_node_root(cfg_t *cfg, cfg_node_t **node)
 {
-    cfg_node_t *n;
+    if (cfg == NULL || node == NULL)
+        return CFG_ERR_ARG;
+    *node = cfg->root;
+    return CFG_OK;
+}
 
-    if (node == NULL || node2 == NULL)
+cfg_rc_t cfg_node_goto(cfg_t *cfg, cfg_node_t **node, const char *spec)
+{
+
+    if (cfg == NULL || node == NULL || spec == NULL)
         return CFG_ERR_ARG;
+    /* FIXME */
+#if 0
+    cfg_node_t *n;
     *node2 = NULL;
     switch (id) {
         case CFG_NODE_GOTO_PARENT: {
@@ -176,16 +205,78 @@
     }
     if (*node2 == NULL)
         return CFG_ERR_GOT;
+#endif
+    return CFG_OK;
+}
+
+cfg_rc_t 
+cfg_node_select(
+    cfg_t *cfg, 
+    cfg_node_t *node, 
+    const char *dotpath, 
+    cfg_node_t **node2)
+{
+    /* FIXME */
+    return CFG_OK;
+}
+
+cfg_rc_t 
+cfg_node_find(
+    cfg_t *cfg, 
+    cfg_node_t *node, 
+    cfg_rc_t (*cb_fct_cmp)(cfg_t *, cfg_node_t *, void *),
+    void *cb_ctx_cmp, 
+    cfg_node_t **cont)
+{
+    /* FIXME */
     return CFG_OK;
 }
 
-cfg_rc_t cfg_node_link(cfg_node_t *node, cfg_node_link_t id, cfg_node_t *node2)
+cfg_rc_t 
+cfg_node_apply(
+    cfg_t *cfg, 
+    cfg_node_t *node, 
+    cfg_rc_t (*cb_fct_cmp)(cfg_t *, cfg_node_t *, void *),
+    void *cb_ctx_cmp,
+    cfg_rc_t (*cb_fct_cb)(cfg_t *, cfg_node_t *, void *),
+    void *cb_ctx_cb)
+{
+    /* FIXME */
+#if 0
+    cfg_rc_t rc;
+
+    if (cb_fct == NULL)
+        return CFG_ERR_ARG;
+    if (node != NULL) {
+        cb_fct(cb_ctx, node);
+        if (node->child1 != NULL)
+            if ((rc = cfg_node_apply(node->child1, cb_fct, cb_ctx)) != CFG_OK)
+                return rc;
+        if (node->rbroth != NULL)
+            if ((rc = cfg_node_apply(node->rbroth, cb_fct, cb_ctx)) != CFG_OK)
+                return rc;
+    }
+#endif
+    return CFG_OK;
+}
+
+cfg_rc_t
+cfg_node_cmp(
+    cfg_t *cfg, 
+    cfg_node_t *node, 
+    void *token)
+{
+    /* FIXME */
+    return CFG_OK;
+}
+
+cfg_rc_t cfg_node_link(cfg_t *cfg, cfg_node_t *node, cfg_node_attr_t attr, cfg_node_t *node2)
 {
     cfg_node_t *n;
 
     if (node == NULL || node2 == NULL)
         return CFG_ERR_ARG;
-    if (id == CFG_NODE_LINK_RBROTH) {
+    if (attr == CFG_NODE_ATTR_RBROTH) {
         /* make node a rbroth */
         n = node2;
         n->parent = node->parent;
@@ -196,7 +287,7 @@
         n->rbroth = node->rbroth; 
         node->rbroth = node2;
     }
-    else if (id == CFG_NODE_LINK_CHILD1) {
+    else if (attr == CFG_NODE_ATTR_CHILD1) {
         /* make node a child1 */
         n = node2;
         n->parent = node;
@@ -207,10 +298,13 @@
         n->rbroth = node->child1;
         node->child1 = node2;
     }
+    /* FIXME more linkage possibilities */
+    else 
+        return CFG_ERR_ARG;
     return CFG_OK;
 }
 
-cfg_rc_t cfg_node_unlink(cfg_node_t *node)
+cfg_rc_t cfg_node_unlink(cfg_t *cfg, cfg_node_t *node)
 {
     cfg_node_t *n;
 
@@ -232,31 +326,3 @@
     return CFG_OK;
 }
 
-cfg_rc_t cfg_node_apply(cfg_node_t *node, void (*cb_fct)(void *, cfg_node_t *), void *cb_ctx)
-{
-    cfg_rc_t rc;
-
-    if (cb_fct == NULL)
-        return CFG_ERR_ARG;
-    if (node != NULL) {
-        cb_fct(cb_ctx, node);
-        if (node->child1 != NULL)
-            if ((rc = cfg_node_apply(node->child1, cb_fct, cb_ctx)) != CFG_OK)
-                return rc;
-        if (node->rbroth != NULL)
-            if ((rc = cfg_node_apply(node->rbroth, cb_fct, cb_ctx)) != CFG_OK)
-                return rc;
-    }
-    return CFG_OK;
-}
-
-cfg_rc_t cfg_node_destroy(cfg_node_t *node)
-{
-    if (node == NULL)
-        return CFG_ERR_ARG;
-    if (node->token != NULL)
-        free(node->token);
-    free(node);
-    return CFG_OK;
-}
-

CVSTrac 2.0.1