dtn_ipc.h File Reference

#include <rpc/rpc.h>

Go to the source code of this file.

Classes

struct  dtnipc_handle
 State of a DTN IPC channel. More...

Defines

#define DTN_IPC_VERSION   6
 DTN IPC version.
#define DTN_IPC_PORT   5010
 Default api ports.
#define DTN_MAX_API_MSG   65536
 The maximum IPC message size (in bytes).

Typedefs

typedef struct dtnipc_handle dtnipc_handle_t

Enumerations

enum  dtnapi_message_type_t {
  DTN_OPEN = 1, DTN_CLOSE = 2, DTN_LOCAL_EID = 3, DTN_REGISTER = 4,
  DTN_UNREGISTER = 5, DTN_FIND_REGISTRATION = 6, DTN_CHANGE_REGISTRATION = 7, DTN_BIND = 8,
  DTN_UNBIND = 9, DTN_SEND = 10, DTN_RECV = 11, DTN_BEGIN_POLL = 12,
  DTN_CANCEL_POLL = 13, DTN_CANCEL = 14, DTN_SESSION_UPDATE = 15
}
 Type codes for api messages. More...

Functions

const char * dtnipc_msgtoa (u_int8_t type)
 Type code to string conversion routine.
int dtnipc_open (dtnipc_handle_t *handle)
int dtnipc_close (dtnipc_handle_t *handle)
int dtnipc_send (dtnipc_handle_t *handle, dtnapi_message_type_t type)
int dtnipc_recv (dtnipc_handle_t *handle, int *status)
int dtnipc_send_recv (dtnipc_handle_t *handle, dtnapi_message_type_t type)
 Send a message and wait for a response over the dtn ipc protocol.


Define Documentation

#define DTN_IPC_PORT   5010

Default api ports.

The handshake port is used for initial contact with the daemon to establish a session, and the latter is used for individual sessions.

Definition at line 55 of file dtn_ipc.h.

Referenced by dtn::APIServer::APIServer(), and dtnipc_open().

#define DTN_IPC_VERSION   6

DTN IPC version.

Just a simple number for now; we can refine it to a major/minor version later if desired.

This currently cannot exceed 16 bits in width.

Make sure to bump this when changing any data structures, message types, adding functions, etc.

Definition at line 48 of file dtn_ipc.h.

Referenced by dtn::APIClient::handle_handshake(), and DTNOpenCommand::init_opts().

#define DTN_MAX_API_MSG   65536

The maximum IPC message size (in bytes).

Used primarily for efficiency in buffer allocation since the transport uses TCP.

Definition at line 61 of file dtn_ipc.h.

Referenced by dtn::APIClient::APIClient(), and dtnipc_open().


Typedef Documentation

Definition at line 78 of file dtn_ipc.h.


Enumeration Type Documentation

Type codes for api messages.

Enumerator:
DTN_OPEN 
DTN_CLOSE 
DTN_LOCAL_EID 
DTN_REGISTER 
DTN_UNREGISTER 
DTN_FIND_REGISTRATION 
DTN_CHANGE_REGISTRATION 
DTN_BIND 
DTN_UNBIND 
DTN_SEND 
DTN_RECV 
DTN_BEGIN_POLL 
DTN_CANCEL_POLL 
DTN_CANCEL 
DTN_SESSION_UPDATE 

Definition at line 83 of file dtn_ipc.h.


Function Documentation

int dtnipc_close ( dtnipc_handle_t handle  ) 

const char* dtnipc_msgtoa ( u_int8_t  type  ) 

int dtnipc_open ( dtnipc_handle_t handle  ) 

int dtnipc_recv ( dtnipc_handle_t handle,
int *  status 
)

int dtnipc_send ( dtnipc_handle_t handle,
dtnapi_message_type_t  type 
)

int dtnipc_send_recv ( dtnipc_handle_t handle,
dtnapi_message_type_t  type 
)

Send a message and wait for a response over the dtn ipc protocol.

Returns 0 on success, -1 on error.

Definition at line 361 of file dtn_ipc.c.

References DTN_SUCCESS, dtnipc_recv(), dtnipc_send(), and dtnipc_handle::err.

Referenced by dtn_bind(), dtn_cancel(), dtn_cancel_poll(), dtn_recv(), dtn_send(), dtn_session_update(), dtn_unbind(), and dtnipc_close().


Generated on Fri Jan 30 09:43:10 2009 for DTN Reference Implementation by  doxygen 1.5.8