#define RMR_MAX_MEID 32 // spece in header reserved for managed element id
#define RMR_MAX_SRC 64 // max length of hostname (which could be IPv6 addr with [...]:port so more than the 39 bytes of a plain addr
#define RMR_MAX_MEID 32 // spece in header reserved for managed element id
#define RMR_MAX_SRC 64 // max length of hostname (which could be IPv6 addr with [...]:port so more than the 39 bytes of a plain addr
#define RMR_MAX_RCV_BYTES 4096 // max bytes we support in a receive message
// various flags for function calls
#define RMR_MAX_RCV_BYTES 4096 // max bytes we support in a receive message
// various flags for function calls
#define RMRFL_NOTHREAD 0x01 // do not start an additional route collector thread
#define RMRFL_MTCALL 0x02 // set up multi-threaded call support (rmr_init)
#define RMRFL_AUTO_ALLOC 0x03 // send auto allocates a zerocopy buffer
#define RMRFL_NOTHREAD 0x01 // do not start an additional route collector thread
#define RMRFL_MTCALL 0x02 // set up multi-threaded call support (rmr_init)
#define RMRFL_AUTO_ALLOC 0x03 // send auto allocates a zerocopy buffer
(All fields are exposed such that if a wrapper needs to dup the storage as it passes
into or out of their environment they dup it all, not just what we choose to expose.)
(All fields are exposed such that if a wrapper needs to dup the storage as it passes
into or out of their environment they dup it all, not just what we choose to expose.)
+
+ NOTE:
+ State is the RMR state of processing on the message. The transport state (tp_state)
+ will be set to mirror the value of errno for wrappers unable to access errno directly,
+ but will only be set if state is not RMR_OK. Even then, the value may be suspect as
+ the underlying transport mechanism may not set errno. It is strongly recommended that
+ user applications use tp_state only for dianostic purposes to convey additional information
+ in a log message.
unsigned char* payload; // transported data
unsigned char* xaction; // pointer to fixed length transaction id bytes
int sub_id; // subscription id
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)
// these things are off limits to the user application
void* tp_buf; // underlying transport allocated pointer (e.g. nng message)
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 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 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_get_trlen( rmr_mbuf_t* msg );
extern int rmr_get_trace( rmr_mbuf_t* msg, unsigned char* dest, int size );