X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fcommon%2Finclude%2Frmr.h;h=e6c1660f1d42e705d067a39688620dd8ee000ce2;hb=refs%2Fchanges%2F51%2F151%2F1;hp=9ef563f021bce59da210e205f40dc2682c1b6489;hpb=68c5cf1104e89f5c43786a3e48f5c6a1e757f59f;p=ric-plt%2Flib%2Frmr.git diff --git a/src/common/include/rmr.h b/src/common/include/rmr.h index 9ef563f..e6c1660 100644 --- a/src/common/include/rmr.h +++ b/src/common/include/rmr.h @@ -1,14 +1,14 @@ // : vi ts=4 sw=4 noet : /* ================================================================================== - Copyright (c) 2019 Nokia + Copyright (c) 2019 Nokia Copyright (c) 2018-2019 AT&T Intellectual Property. 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 + 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, @@ -47,6 +47,8 @@ extern "C" { #define RMR_DEF_SIZE 0 // pass as size to have msg allocation use the default msg size +#define RMR_VOID_MSGTYPE (-1) // unset/invalid message type and sub id +#define RMR_VOID_SUBID (-1) #define RMR_OK 0 // state is good #define RMR_ERR_BADARG 1 // argument passd to function was unusable @@ -63,6 +65,7 @@ extern "C" { #define RMR_ERR_TIMEOUT 12 // message processing call timed out #define RMR_ERR_UNSET 13 // the message hasn't been populated with a transport buffer #define RMR_ERR_TRUNC 14 // received message likely truncated +#define RMR_ERR_INITFAILED 15 // initialisation of something (probably message) failed #define RMR_WH_CONNECTED(a) (a>=0) // for now whid is integer; it could be pointer at some future date @@ -73,14 +76,15 @@ extern "C" { into or out of their environment they dup it all, not just what we choose to expose.) */ typedef struct { - int state; // state of processing + int state; // state of processing int mtype; // message type int len; // length of data in the payload (send or received) unsigned char* payload; // transported data unsigned char* xaction; // pointer to fixed length transaction id bytes + int sub_id; // subscription id // these things are off limits to the user application - void* tp_buf; // underlying transport allocated pointer (e.g. nng message) + void* tp_buf; // underlying transport allocated pointer (e.g. nng message) void* header; // internal message header (whole buffer: header+payload) unsigned char* id; // if we need an ID in the message separate from the xaction id int flags; // various MFL_ (private) flags as needed @@ -96,6 +100,7 @@ extern rmr_mbuf_t* rmr_alloc_msg( void* vctx, int size ); extern rmr_mbuf_t* rmr_call( void* vctx, rmr_mbuf_t* msg ); extern void rmr_close( void* vctx ); extern void* rmr_init( char* proto_port, int max_msg_size, int flags ); +extern int rmr_init_trace( void* vctx, int size ); extern int rmr_payload_size( rmr_mbuf_t* msg ); extern rmr_mbuf_t* rmr_send_msg( void* vctx, rmr_mbuf_t* msg ); extern rmr_mbuf_t* rmr_mtosend_msg( void* vctx, rmr_mbuf_t* msg, int max_to ); @@ -107,6 +112,7 @@ extern int rmr_set_rtimeout( void* vctx, int time ); extern int rmr_set_stimeout( void* vctx, int time ); extern int rmr_get_rcvfd( void* vctx ); // only supported with nng extern rmr_mbuf_t* rmr_torcv_msg( void* vctx, rmr_mbuf_t* old_msg, int ms_to ); +extern rmr_mbuf_t* rmr_tralloc_msg( void* context, int msize, int trsize, unsigned const char* data ); extern rmr_whid_t rmr_wh_open( void* vctx, char const* target ); extern rmr_mbuf_t* rmr_wh_send_msg( void* vctx, rmr_whid_t whid, rmr_mbuf_t* msg ); extern void rmr_wh_close( void* vctx, int whid ); @@ -118,11 +124,16 @@ extern void rmr_bytes2payload( rmr_mbuf_t* mbuf, unsigned char const* src, int l extern int rmr_bytes2xact( rmr_mbuf_t* mbuf, unsigned char const* src, int len ); extern void rmr_free_msg( rmr_mbuf_t* mbuf ); extern unsigned char* rmr_get_meid( rmr_mbuf_t* mbuf, unsigned char* dest ); +extern unsigned char* rmr_get_src( rmr_mbuf_t* mbuf, unsigned char* dest ); +extern rmr_mbuf_t* rmr_realloc_msg( rmr_mbuf_t* mbuf, int new_tr_size ); extern int rmr_str2meid( rmr_mbuf_t* mbuf, unsigned char const* str ); extern void rmr_str2payload( rmr_mbuf_t* mbuf, unsigned char const* str ); extern void rmr_str2payload( rmr_mbuf_t* mbuf, unsigned char const* str ); extern int rmr_str2xact( rmr_mbuf_t* mbuf, unsigned char const* str ); +extern int rmr_get_trlen( rmr_mbuf_t* msg ); +extern int rmr_get_trace( rmr_mbuf_t* msg, unsigned char* dest, int size ); +extern int rmr_set_trace( rmr_mbuf_t* msg, unsigned const char* data, int size ); extern int rmr_rcv_to( void* vctx, int time ); // DEPRECATED -- replaced with set_rtimeout extern int rmr_send_to( void* vctx, int time ); // DEPRECATED -- replaced with set_stimeout @@ -132,23 +143,23 @@ extern int rmr_send_to( void* vctx, int time ); // DEPRECATED -- replaced with #ifdef UTA_COMPAT #pragma message( "use of UTA_COMPAT is deprecated and soon to be removed" ) -#define UTA_MAX_XID RMR_MAX_XID -#define UTA_MAX_SID RMR_MAX_SID -#define UTA_MAX_SRC RMR_MAX_SRC -#define UTA_MAX_RCV_BYTES RMR_MAX_RCV_BYTES +#define UTA_MAX_XID RMR_MAX_XID +#define UTA_MAX_SID RMR_MAX_SID +#define UTA_MAX_SRC RMR_MAX_SRC +#define UTA_MAX_RCV_BYTES RMR_MAX_RCV_BYTES -#define UTAFL_NONE RMRFL_NONE -#define UTAFL_AUTO_ALLOC RMRFL_AUTO_ALLOC +#define UTAFL_NONE RMRFL_NONE +#define UTAFL_AUTO_ALLOC RMRFL_AUTO_ALLOC -#define UTA_DEF_SIZE RMRFL_AUTO_ALLOC +#define UTA_DEF_SIZE RMRFL_AUTO_ALLOC -#define UTA_OK RMR_OK -#define UTA_ERR_BADARG RMR_ERR_BADARG -#define UTA_ERR_NOENDPT RMR_ERR_NOENDPT +#define UTA_OK RMR_OK +#define UTA_ERR_BADARG RMR_ERR_BADARG +#define UTA_ERR_NOENDPT RMR_ERR_NOENDPT #define UTA_ERR_EMPTY RMR_ERR_EMPTY -#define UTA_ERR_NOHDR RMR_ERR_NOHDR -#define UTA_ERR_SENDFAILED RMR_ERR_SENDFAILED -#define UTA_ERR_CALLFAILED RMR_ERR_CALLFAILED +#define UTA_ERR_NOHDR RMR_ERR_NOHDR +#define UTA_ERR_SENDFAILED RMR_ERR_SENDFAILED +#define UTA_ERR_CALLFAILED RMR_ERR_CALLFAILED #define uta_mbuf_t rmr_mbuf_t