Checkpoint commit: refactoring the request code in TIDS for better reuse
[trust_router.git] / include / tr_msg.h
index 25f05aa..59b7cf7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2012, JANET(UK)
+ * Copyright (c) 2012-2014, JANET(UK)
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
 
 #include <jansson.h>
 #include <trust_router/tid.h>
-
+#include <trust_router/trp.h>
 typedef struct tr_msg TR_MSG;
 
 enum msg_type {
   TR_UNKNOWN = 0,
   TID_REQUEST,
-  TID_RESPONSE
+  TID_RESPONSE,
+  TRP_UPDATE,
+  TRP_REQUEST
 };
 
 /* Union of TR message types to hold message of any type. */
-typedef struct tr_msg {
+struct tr_msg {
   enum msg_type msg_type;
-  union {
-    TID_REQ *tid_req;
-    TID_RESP *tid_resp;
-  };
-} TR_MSG;
+  void *msg_rep;
+};
 
 /* Accessors */
 enum msg_type tr_msg_get_msg_type(TR_MSG *msg);
@@ -62,10 +61,15 @@ TID_REQ *tr_msg_get_req(TR_MSG *msg);
 void tr_msg_set_req(TR_MSG *msg, TID_REQ *req);
 TID_RESP *tr_msg_get_resp(TR_MSG *msg);
 void tr_msg_set_resp(TR_MSG *msg, TID_RESP *resp);
+TRP_UPD *tr_msg_get_trp_upd(TR_MSG *msg);
+void tr_msg_set_trp_upd(TR_MSG *msg, TRP_UPD *req);
+TRP_REQ *tr_msg_get_trp_req(TR_MSG *msg);
+void tr_msg_set_trp_req(TR_MSG *msg, TRP_REQ *req);
+
 
 /* Encoders/Decoders */
-char *tr_msg_encode(TR_MSG *msg);
-TR_MSG *tr_msg_decode(char *jmsg, size_t len);
+char *tr_msg_encode(TALLOC_CTX *mem_ctx, TR_MSG *msg);
+TR_MSG *tr_msg_decode(const char *jmsg, size_t len);
 void tr_msg_free_encoded(char *jmsg);
 void tr_msg_free_decoded(TR_MSG *msg);