summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/ouroboros/cdap.h72
1 files changed, 23 insertions, 49 deletions
diff --git a/include/ouroboros/cdap.h b/include/ouroboros/cdap.h
index bd8aa551..7312fb6f 100644
--- a/include/ouroboros/cdap.h
+++ b/include/ouroboros/cdap.h
@@ -30,43 +30,32 @@
#define F_SYNC 0x0001
+enum cdap_opcode {
+ CDAP_READ = 0,
+ CDAP_WRITE,
+ CDAP_START,
+ CDAP_STOP,
+ CDAP_CREATE,
+ CDAP_DELETE
+};
+
struct cdap;
/* Callback functions that work on the application's RIB */
struct cdap_ops {
+ int (* cdap_request)(struct cdap * instance,
+ int invoke_id,
+ enum cdap_opcode opcode,
+ char * name,
+ uint8_t * data,
+ size_t len,
+ uint32_t flags);
+
int (* cdap_reply)(struct cdap * instance,
int invoke_id,
int result,
uint8_t * data,
size_t len);
-
- int (* cdap_read)(struct cdap * instance,
- int invoke_id,
- char * name);
- int (* cdap_write)(struct cdap * instance,
- int invoke_id,
- char * name,
- uint8_t * data,
- size_t len,
- uint32_t flags);
-
- int (* cdap_create)(struct cdap * instance,
- int invoke_id,
- char * name,
- uint8_t * data,
- size_t len);
- int (* cdap_delete)(struct cdap * instance,
- int invoke_id,
- char * name,
- uint8_t * data,
- size_t len);
-
- int (* cdap_start)(struct cdap * instance,
- int invoke_id,
- char * name);
- int (* cdap_stop)(struct cdap * instance,
- int invoke_id,
- char * name);
};
/* Assumes flow is blocking */
@@ -75,27 +64,12 @@ struct cdap * cdap_create(struct cdap_ops * ops,
int cdap_destroy(struct cdap * instance);
/* Returns a positive invoke-id on success to be used in the callback */
-int cdap_send_read(struct cdap * instance,
- char * name);
-int cdap_send_write(struct cdap * instance,
- char * name,
- uint8_t * data,
- size_t len,
- uint32_t flags);
-
-int cdap_send_create(struct cdap * instance,
- char * name,
- uint8_t * data,
- size_t len);
-int cdap_send_delete(struct cdap * instance,
- char * name,
- uint8_t * data,
- size_t len);
-
-int cdap_send_start(struct cdap * instance,
- char * name);
-int cdap_send_stop(struct cdap * instance,
- char * name);
+int cdap_send_request(struct cdap * instance,
+ enum cdap_opcode code,
+ char * name,
+ uint8_t * data,
+ size_t len,
+ uint32_t flags);
/* Can only be called following a callback function */
int cdap_send_reply(struct cdap * instance,