summaryrefslogtreecommitdiffstats
path: root/src/plugins/sc_model.h
diff options
context:
space:
mode:
authorjackiechen1985 <xiaobo.chen@tieto.com>2019-05-19 12:35:28 +0800
committerJunfeng Wang <drenfong.wang@intel.com>2019-05-22 04:37:38 +0000
commitce1a0daa15be4c3b7a3df64ea57ad231664e700f (patch)
treefdb1fac57156ebc6e12e8ce9cd7942a8f4023c03 /src/plugins/sc_model.h
parentaeb421c7219178ac464e8a2e62b35772a08a2c1c (diff)
Introduce a new registration mechanism to sweetcomb.
Sweetcomb plugins register for various [initialization] events by placing structures and __attribute__((constructor)) functions into the library. When sysrepo plugin is initializing, the framework walks constructor-generated singly-linked structure lists, calls the indicated functions. Change-Id: I0cb078391f2662e4f6dd08c1a383173f203adf2a Signed-off-by: jackiechen1985 <xiaobo.chen@tieto.com>
Diffstat (limited to 'src/plugins/sc_model.h')
-rw-r--r--src/plugins/sc_model.h85
1 files changed, 0 insertions, 85 deletions
diff --git a/src/plugins/sc_model.h b/src/plugins/sc_model.h
deleted file mode 100644
index a9392f9..0000000
--- a/src/plugins/sc_model.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (c) 2018 PANTHEON.tech.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at:
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __SC_MODEL_H__
-#define __SC_MODEL_H__
-
-/*
- * IETF or Openconfig YANG models registering/unregistering
- *
- * Every model supports a certain number of operations which require a
- * subscription to sysrepo : xpath_t
- */
-
-#include <sysrepo.h>
-#include <sysrepo/xpath.h>
-#include <sysrepo/values.h>
-#include <sysrepo/plugins.h>
-
-#include <scvpp/comm.h> //for ARG_CHECK only
-
-typedef enum {
- MODULE,
- XPATH,
- GETITEM,
- RPC,
-} method_e;
-
-#define ARRAY_SIZE(X) (sizeof(X) / sizeof(X[0]))
-
-typedef struct _xpath_t {
- char *xpath;
- method_e method;
- sr_datastore_t datastore;
- union {
- sr_module_change_cb mcb;
- sr_subtree_change_cb scb;
- sr_dp_get_items_cb gcb;
- sr_rpc_cb rcb;
- } cb;
- void *private_ctx;
- uint32_t priority;
- sr_subscr_options_t opts;
-} xpath_t;
-
-/*
- * Stateful informations. Keep sesssions informations about a user
- */
-
-typedef struct {
- sr_session_ctx_t *session;
- sr_subscription_ctx_t *subscription;
-} plugin_main_t;
-
-
-int
-model_register(plugin_main_t *plugin_main, const xpath_t *xpaths, size_t size);
-
-/* Declare registration */
-
-#define OC_INTERFACES_SIZE 5
-extern const xpath_t oc_interfaces_xpaths[OC_INTERFACES_SIZE];
-
-#define OC_LROUTING_SIZE 6
-extern const xpath_t oc_local_routing_xpaths[OC_LROUTING_SIZE];
-
-#define IETF_NAT_SIZE 2
-extern const xpath_t ietf_nat_xpaths[IETF_NAT_SIZE];
-
-#define IETF_INTERFACES_SIZE 5
-extern const xpath_t ietf_interfaces_xpaths[IETF_INTERFACES_SIZE];
-
-#endif /* __SC_MODEL_H__ */