Skip to content

Midas C++ API - RPC functions

This page contains the full API reference for the rpc_xxx functions and the C++ side of the JSON-RPC interface.

For explanations and examples of sending commands between programs, see Communicating between programs.

RPC Functions (rpc_xxx)

Functions

cm_query_transition

INT cm_query_transition(int *transition, int *run_number, int *trans_time)

Query system if transition has occured. Normally, one registers callbacks for transitions via cm_register_transition. In some environments however, callbacks are not possible. In that case one spciefies a NULL pointer as the callback routine and can query transitions "manually" by calling this functions. A small FIFO takes care that no transition is lost if this functions did not get called between some transitions.

Parameters:

  • transition (int *) [out] –
    Type of transition, one of TR_xxx
  • run_number (int *)
  • trans_time (int *) [out] –
    Time (in UNIX time) of transition
  • run_nuber [out] –
    Run number for transition

Returns:

  • FALSE –
    No transition occured since last call
  • TRUE –
    Transition occured

Declared in include/midas.h:1712, defined in src/midas.cxx:14631

recv_tcp_check

INT recv_tcp_check(int sock)

Check if in TCP receive buffer associated with sock is some data. Called by ss_suspend.

Parameters:

  • sock (int) [in] –
    TCP receive socket

Returns:

  • INT –
    count Number of bytes remaining in TCP buffer

Declared in include/msystem.h:576, defined in src/midas.cxx:14866

rpc_add_allowed_host

INT rpc_add_allowed_host(const char* hostname)

Permit connections from listed hosts only

Returns:

Declared in include/midas.h:1976, defined in src/midas.cxx:16668

rpc_check_allowed_host

INT rpc_check_allowed_host(const char* hostname)

Check if hostname is permitted to connect

Returns:

Declared in include/midas.h:1977, defined in src/midas.cxx:16697

rpc_check_channels

INT rpc_check_channels()

Check open rpc channels by sending watchdog messages

Returns:

Declared in include/msystem.h:578, defined in src/midas.cxx:17717

rpc_clear_allowed_hosts

INT rpc_clear_allowed_hosts()

Clear list of allowed hosts and permit connections from anybody

Returns:

Declared in include/midas.h:1975, defined in src/midas.cxx:16643

rpc_client_accept

INT rpc_client_accept(int sock)

midas program accept new RPC connection (run transitions, etc)

Parameters:

  • sock (int) [in] –
    Listen socket

Returns:

Declared in include/msystem.h:573, defined in src/midas.cxx:17031

rpc_convert_data

void rpc_convert_data(void *data, INT tid, INT flags, INT size, INT convert_flags)

Convert data format between differenct computers

Parameters:

  • data (void *) [in,out] –
    Pointer to data
    Is converted according to _convert_flag value
  • tid (INT) [in] –
    Type ID of data, one of TID_xxx
  • flags (INT) [in] –
    Combination of following flags:
    RPC_IN: data is input parameter
    RPC_OUT: data is output variable
    RPC_FIXARRAY, RPC_VARARRAY: data is array
    of "size" bytes (see next param.)
    RPC_OUTGOING: data is outgoing
  • size (INT) [in] –
    Size of bytes of data. Used for variable length arrays.
  • convert_flags (INT) [in] –
    Flags for data conversion

Returns:

Declared in include/midas.h:2017, defined in src/midas.cxx:11900

rpc_convert_single

void rpc_convert_single(void *data, INT tid, INT flags, INT convert_flags)

Declared in include/midas.h:2016, defined in src/midas.cxx:11875

rpc_flush_event

INT rpc_flush_event()

Send event residing in the TCP cache buffer filled by rpc_send_event. This routine should be called when a run is stopped.

Returns:

Declared in include/midas.h:2008, defined in src/midas.cxx:14549

rpc_flush_event_socket

int rpc_flush_event_socket(int timeout_msec)

Receive and en-buffer events from the mserver event socket

Returns:

Declared in include/msystem.h:663, defined in src/midas.cxx:17599

rpc_get_convert_flags

void rpc_get_convert_flags(INT * convert_flags)

Declared in include/midas.h:2015, defined in src/midas.cxx:11800

rpc_get_mserver_acception

RPC_SERVER_ACCEPTION*rpc_get_mserver_acception()

Declared in include/msystem.h:585, defined in src/midas.cxx:11707

rpc_get_timeout

INT rpc_get_timeout(HNDLE hConn)

Set RPC option

Get RPC timeout

Parameters:

  • hConn (HNDLE) –
    RPC connection handle, -1 for server connection, -2 for rpc connect timeout
  • item –
    One of RPC_Oxxx
  • value –
    Value to set

Returns:

Declared in include/midas.h:1982, defined in src/midas.cxx:13167

rpc_name_tid

INT rpc_name_tid(const char* name)

inverse of rpc_tid_name()

Declared in include/midas.h:2002, defined in src/midas.cxx:11972

rpc_register_client

INT rpc_register_client(const char *name, RPC_LIST * list)

Register RPC client for standalone mode (without standard midas server)

Parameters:

  • name (const char *) –
    Name of this client
  • list (RPC_LIST *) –
    Array of RPC_LIST structures containing function IDs and parameter definitions. The end of the list must be indicated by a function ID of zero.

Returns:

Declared in include/midas.h:1994, defined in src/midas.cxx:12002

rpc_register_functions

INT rpc_register_functions(const RPC_LIST * new_list, RPC_HANDLER func)

Register a set of RPC functions (both as clients or servers)

Parameters:

  • new_list (const RPC_LIST *) –
    Array of RPC_LIST structures containing function IDs and parameter definitions. The end of the list must be indicated by a function ID of zero.
  • func (RPC_HANDLER) –
    Default dispatch function

Returns:

Declared in include/midas.h:1979, defined in src/midas.cxx:12021

rpc_register_listener

INT rpc_register_listener(int port, RPC_HANDLER func, int *plsock, int *pport)

Register the calling process as a MIDAS RPC server. Note that cm_connnect_experiment must be called prior to any call of rpc_register_listener.

Parameters:

  • port (int) [in] –
    TCP port for listen. If port==0, the OS chooses a free port and returns it in *pport
  • func (RPC_HANDLER) [in] –
    Default dispatch function
  • plsock (int *) [out] –
    Listener socket, should not be NULL
  • pport (int *) [out] –
    Port under which server is listening, can be NULL

Returns:

Declared in include/msystem.h:567, defined in src/midas.cxx:15088

rpc_register_server

INT rpc_register_server(int port, int *plsock, int *pport)

Register the calling process as a MIDAS RPC server. Note that cm_connnect_experiment must be called prior to any call of rpc_register_server.

Parameters:

  • port (int) [in] –
    TCP port for listen. If port==0, the OS chooses a free port and returns it in *pport
  • plsock (int *) [out] –
    Listener socket, can be NULL
  • pport (int *) [out] –
    Port under which server is listening, can be NULL

Returns:

Declared in include/midas.h:1993, defined in src/midas.cxx:15047

rpc_send_event

INT rpc_send_event(INT buffer_handle, const EVENT_HEADER *event, int unused, INT async_flag, INT mode)

Fast send_event routine which bypasses the RPC layer and sends the event directly at the TCP level.

Parameters:

  • buffer_handle (INT) –
    Handle of the buffer to send the event to. Must be obtained via bm_open_buffer.
  • event (const EVENT_HEADER *)
  • unused (int)
  • async_flag (INT) –
    BM_WAIT / BM_NO_WAIT flag. In BM_NO_WAIT mode, the function returns immediately if it cannot send the event over the network. In BM_WAIT mode, it waits until the packet is sent (blocking).
  • mode (INT) –
    Determines in which mode the event is sent. If zero, use RPC socket, if one, use special event socket to bypass RPC layer on the server side.
  • source –
    Address of the event to send. It must have a proper event header.
  • buf_size –
    Size of event in bytes with header.

Returns:

Declared in include/midas.h:2007, defined in src/midas.cxx:14412

rpc_send_event1

INT rpc_send_event1(INT buffer_handle, const EVENT_HEADER *event)

Send event to mserver using the event socket connection, bypassing the RPC layer

Parameters:

  • buffer_handle (INT) –
    Handle of the buffer to send the event to. Must be obtained via bm_open_buffer.
  • event (const EVENT_HEADER *) –
    Pointer to event header

Returns:

Declared in include/midas.h:2010, defined in src/midas.cxx:14430

rpc_send_event_sg

INT rpc_send_event_sg(INT buffer_handle, int sg_n, const char* const sg_ptr[], const size_t sg_len[])

Declared in include/midas.h:2011, defined in src/midas.cxx:14436

rpc_server_accept

INT rpc_server_accept(int sock)

Accept new incoming connections

Parameters:

  • sock (int)
  • lscok [in] –
    Listen socket

Returns:

Declared in include/msystem.h:572, defined in src/midas.cxx:16774

rpc_server_callback

INT rpc_server_callback(struct callback_addr *callback)

Callback a remote client. Setup _server_acception entry with optional conversion flags and establish two-way TCP connection.

Returns:

Declared in include/msystem.h:571, defined in src/midas.cxx:17135

rpc_server_loop

INT rpc_server_loop()

mserver main event loop

Declared in include/midas.h:1995, defined in src/midas.cxx:17276

rpc_server_receive_event

INT rpc_server_receive_event(int idx, RPC_SERVER_ACCEPTION* sa, int timeout_msec)

Receive event and dispatch it

Returns:

Declared in include/msystem.h:570, defined in src/midas.cxx:17444

rpc_server_receive_rpc

INT rpc_server_receive_rpc(RPC_SERVER_ACCEPTION* sa)

Receive rpc commands and execute them. Close the connection if client has broken TCP pipe.

Returns:

Declared in include/msystem.h:569, defined in src/midas.cxx:17304

rpc_server_shutdown

INT rpc_server_shutdown()

Shutdown RPC server, abort all connections

Returns:

Declared in include/midas.h:1996, defined in src/midas.cxx:17646

rpc_set_timeout

INT rpc_set_timeout(HNDLE hConn, int timeout_msec, int* old_timeout_msec = NULL)

Set RPC timeout

Parameters:

  • hConn (HNDLE) –
    RPC connection handle, RPC_HNDLE_MSERVER for mserver connection, RPC_HNDLE_CONNECT for rpc connect timeout
  • timeout_msec (int) –
    RPC timeout in milliseconds
  • old_timeout_msec (int*, default: NULL) –
    returns old value of RPC timeout in milliseconds

Returns:

Declared in include/midas.h:1983, defined in src/midas.cxx:13192

rpc_test_rpc

INT rpc_test_rpc()

Test RPC parameters encoding and decoding

Returns:

Declared in include/midas.h:2013, defined in src/midas.cxx:16605

rpc_tid_name

const char *rpc_tid_name(INT id)

Declared in include/midas.h:2000, defined in src/midas.cxx:11958

rpc_tid_name_old

const char *rpc_tid_name_old(INT id)

Declared in include/midas.h:2001, defined in src/midas.cxx:11965

rpc_tid_size

INT rpc_tid_size(INT id)

Declared in include/midas.h:1999, defined in src/midas.cxx:11951

Macros

routine IDs for RPC calls

RPC_AL_CHECK
#define RPC_AL_CHECK 11500

Defined in include/mrpc.h:115

RPC_AL_RESET_ALARM
#define RPC_AL_RESET_ALARM 11502

Defined in include/mrpc.h:117

RPC_AL_TRIGGER_ALARM
#define RPC_AL_TRIGGER_ALARM 11501

Defined in include/mrpc.h:116

RPC_ANA_CLEAR_HISTOS
#define RPC_ANA_CLEAR_HISTOS 13000

Defined in include/mrpc.h:121

RPC_BM_ADD_EVENT_REQUEST
#define RPC_BM_ADD_EVENT_REQUEST 11107

Defined in include/mrpc.h:43

RPC_BM_CLOSE_ALL_BUFFERS
#define RPC_BM_CLOSE_ALL_BUFFERS 11102

Defined in include/mrpc.h:38

RPC_BM_CLOSE_BUFFER
#define RPC_BM_CLOSE_BUFFER 11101

Defined in include/mrpc.h:37

RPC_BM_EMPTY_BUFFERS
#define RPC_BM_EMPTY_BUFFERS 11113

Defined in include/mrpc.h:49

RPC_BM_FLUSH_CACHE
#define RPC_BM_FLUSH_CACHE 11110

Defined in include/mrpc.h:46

RPC_BM_GET_BUFFER_INFO
#define RPC_BM_GET_BUFFER_INFO 11103

Defined in include/mrpc.h:39

RPC_BM_GET_BUFFER_LEVEL
#define RPC_BM_GET_BUFFER_LEVEL 11104

Defined in include/mrpc.h:40

RPC_BM_INIT_BUFFER_COUNTERS
#define RPC_BM_INIT_BUFFER_COUNTERS 11105

Defined in include/mrpc.h:41

RPC_BM_MARK_READ_WAITING
#define RPC_BM_MARK_READ_WAITING 11112

Defined in include/mrpc.h:48

RPC_BM_OPEN_BUFFER
#define RPC_BM_OPEN_BUFFER 11100

Defined in include/mrpc.h:36

RPC_BM_RECEIVE_EVENT
#define RPC_BM_RECEIVE_EVENT 11111

Defined in include/mrpc.h:47

RPC_BM_RECEIVE_EVENT_CXX
#define RPC_BM_RECEIVE_EVENT_CXX 11115

Defined in include/mrpc.h:51

RPC_BM_REMOVE_EVENT_REQUEST
#define RPC_BM_REMOVE_EVENT_REQUEST 11108

Defined in include/mrpc.h:44

RPC_BM_SEND_EVENT
#define RPC_BM_SEND_EVENT 11109

Defined in include/mrpc.h:45

RPC_BM_SET_CACHE_SIZE
#define RPC_BM_SET_CACHE_SIZE 11106

Defined in include/mrpc.h:42

RPC_BM_SKIP_EVENT
#define RPC_BM_SKIP_EVENT 11114

Defined in include/mrpc.h:50

RPC_BRPC
#define RPC_BRPC 18001

Defined in include/mrpc.h:137

RPC_BRPC_CXX
#define RPC_BRPC_CXX 18003

Defined in include/mrpc.h:139

RPC_CM_ASCTIME
#define RPC_CM_ASCTIME 11007

Defined in include/mrpc.h:28

RPC_CM_CHECK_CLIENT
#define RPC_CM_CHECK_CLIENT 11014

Defined in include/mrpc.h:34

RPC_CM_CLEANUP
#define RPC_CM_CLEANUP 11002

Defined in include/mrpc.h:23

RPC_CM_EXIST
#define RPC_CM_EXIST 11011

Defined in include/mrpc.h:31

RPC_CM_GET_WATCHDOG_INFO
#define RPC_CM_GET_WATCHDOG_INFO 11003

Defined in include/mrpc.h:24

RPC_CM_MSG
#define RPC_CM_MSG 11009

Defined in include/mrpc.h:30

RPC_CM_MSG_LOG
#define RPC_CM_MSG_LOG 11004

Defined in include/mrpc.h:25

RPC_CM_MSG_LOG1
#define RPC_CM_MSG_LOG1 11013

Defined in include/mrpc.h:33

RPC_CM_MSG_RETRIEVE
#define RPC_CM_MSG_RETRIEVE 11012

Defined in include/mrpc.h:32

RPC_CM_SET_CLIENT_INFO
#define RPC_CM_SET_CLIENT_INFO 11000

Defined in include/mrpc.h:21

RPC_CM_SET_WATCHDOG_PARAMS
#define RPC_CM_SET_WATCHDOG_PARAMS 11001

Defined in include/mrpc.h:22

RPC_CM_SYNCHRONIZE
#define RPC_CM_SYNCHRONIZE 11006

Defined in include/mrpc.h:27

RPC_CM_TIME
#define RPC_CM_TIME 11008

Defined in include/mrpc.h:29

RPC_CNAF16
#define RPC_CNAF16 16000

Defined in include/mrpc.h:131

RPC_CNAF24
#define RPC_CNAF24 16001

Defined in include/mrpc.h:132

RPC_DB_ADD_OPEN_RECORD
#define RPC_DB_ADD_OPEN_RECORD 11222

Defined in include/mrpc.h:73

RPC_DB_CHECK_RECORD
#define RPC_DB_CHECK_RECORD 11240

Defined in include/mrpc.h:90

RPC_DB_CLOSE_ALL_DATABASES
#define RPC_DB_CLOSE_ALL_DATABASES 11202

Defined in include/mrpc.h:55

RPC_DB_CLOSE_DATABASE
#define RPC_DB_CLOSE_DATABASE 11201

Defined in include/mrpc.h:54

RPC_DB_COPY_XML
#define RPC_DB_COPY_XML 11249

Defined in include/mrpc.h:99

RPC_DB_CREATE_KEY
#define RPC_DB_CREATE_KEY 11203

Defined in include/mrpc.h:56

#define RPC_DB_CREATE_LINK 11204

Defined in include/mrpc.h:57

RPC_DB_CREATE_RECORD
#define RPC_DB_CREATE_RECORD 11230

Defined in include/mrpc.h:81

RPC_DB_DELETE_KEY
#define RPC_DB_DELETE_KEY 11210

Defined in include/mrpc.h:63

RPC_DB_ENUM_KEY
#define RPC_DB_ENUM_KEY 11211

Defined in include/mrpc.h:64

#define RPC_DB_ENUM_LINK 11228

Defined in include/mrpc.h:79

RPC_DB_FIND_KEY
#define RPC_DB_FIND_KEY 11207

Defined in include/mrpc.h:60

#define RPC_DB_FIND_LINK 11208

Defined in include/mrpc.h:61

RPC_DB_FLUSH_DATABASE
#define RPC_DB_FLUSH_DATABASE 11235

Defined in include/mrpc.h:85

RPC_DB_GET_DATA
#define RPC_DB_GET_DATA 11213

Defined in include/mrpc.h:66

RPC_DB_GET_DATA1
#define RPC_DB_GET_DATA1 11238

Defined in include/mrpc.h:88

RPC_DB_GET_DATA_CXX
#define RPC_DB_GET_DATA_CXX 11250

Defined in include/mrpc.h:100

RPC_DB_GET_DATA_INDEX
#define RPC_DB_GET_DATA_INDEX 11231

Defined in include/mrpc.h:82

RPC_DB_GET_KEY
#define RPC_DB_GET_KEY 11212

Defined in include/mrpc.h:65

RPC_DB_GET_KEY_INFO
#define RPC_DB_GET_KEY_INFO 11237

Defined in include/mrpc.h:87

RPC_DB_GET_KEY_TIME
#define RPC_DB_GET_KEY_TIME 11232

Defined in include/mrpc.h:83

#define RPC_DB_GET_LINK 11242

Defined in include/mrpc.h:92

#define RPC_DB_GET_LINK_DATA 11243

Defined in include/mrpc.h:93

#define RPC_DB_GET_NEXT_LINK 11241

Defined in include/mrpc.h:91

RPC_DB_GET_OPEN_RECORDS
#define RPC_DB_GET_OPEN_RECORDS 11233

Defined in include/mrpc.h:84

RPC_DB_GET_PARENT
#define RPC_DB_GET_PARENT 11248

Defined in include/mrpc.h:98

RPC_DB_GET_PATH
#define RPC_DB_GET_PATH 11209

Defined in include/mrpc.h:62

RPC_DB_GET_RECORD
#define RPC_DB_GET_RECORD 11220

Defined in include/mrpc.h:71

RPC_DB_GET_RECORD_SIZE
#define RPC_DB_GET_RECORD_SIZE 11219

Defined in include/mrpc.h:70

RPC_DB_GET_VALUE
#define RPC_DB_GET_VALUE 11206

Defined in include/mrpc.h:59

RPC_DB_LOAD
#define RPC_DB_LOAD 11225

Defined in include/mrpc.h:76

RPC_DB_NOTIFY_CLIENTS_ARRAY
#define RPC_DB_NOTIFY_CLIENTS_ARRAY 11247

Defined in include/mrpc.h:97

RPC_DB_OPEN_DATABASE
#define RPC_DB_OPEN_DATABASE 11200

Defined in include/mrpc.h:53

RPC_DB_REMOVE_OPEN_RECORD
#define RPC_DB_REMOVE_OPEN_RECORD 11223

Defined in include/mrpc.h:74

RPC_DB_RENAME_KEY
#define RPC_DB_RENAME_KEY 11227

Defined in include/mrpc.h:78

RPC_DB_REORDER_KEY
#define RPC_DB_REORDER_KEY 11229

Defined in include/mrpc.h:80

RPC_DB_SAVE
#define RPC_DB_SAVE 11224

Defined in include/mrpc.h:75

RPC_DB_SET_CLIENT_NAME
#define RPC_DB_SET_CLIENT_NAME 11226

Defined in include/mrpc.h:77

RPC_DB_SET_DATA
#define RPC_DB_SET_DATA 11214

Defined in include/mrpc.h:67

RPC_DB_SET_DATA1
#define RPC_DB_SET_DATA1 11246

Defined in include/mrpc.h:96

RPC_DB_SET_DATA_INDEX
#define RPC_DB_SET_DATA_INDEX 11215

Defined in include/mrpc.h:68

RPC_DB_SET_DATA_INDEX1
#define RPC_DB_SET_DATA_INDEX1 11236

Defined in include/mrpc.h:86

#define RPC_DB_SET_LINK_DATA 11244

Defined in include/mrpc.h:94

#define RPC_DB_SET_LINK_DATA_INDEX 11245

Defined in include/mrpc.h:95

RPC_DB_SET_MODE
#define RPC_DB_SET_MODE 11216

Defined in include/mrpc.h:69

RPC_DB_SET_NUM_VALUES
#define RPC_DB_SET_NUM_VALUES 11239

Defined in include/mrpc.h:89

RPC_DB_SET_RECORD
#define RPC_DB_SET_RECORD 11221

Defined in include/mrpc.h:72

RPC_DB_SET_VALUE
#define RPC_DB_SET_VALUE 11205

Defined in include/mrpc.h:58

RPC_EL_SUBMIT
#define RPC_EL_SUBMIT 11400

Defined in include/mrpc.h:113

RPC_ID_EXIT
#define RPC_ID_EXIT 99999

Defined in include/mrpc.h:143

RPC_ID_SHUTDOWN
#define RPC_ID_SHUTDOWN 99998

Defined in include/mrpc.h:142

RPC_ID_WATCHDOG
#define RPC_ID_WATCHDOG 99997

Defined in include/mrpc.h:141

RPC_JRPC
#define RPC_JRPC 18000

Defined in include/mrpc.h:136

RPC_JRPC_CXX
#define RPC_JRPC_CXX 18002

Defined in include/mrpc.h:138

RPC_LOG_REWIND
#define RPC_LOG_REWIND 14000

Defined in include/mrpc.h:123

RPC_MANUAL_TRIG
#define RPC_MANUAL_TRIG 17000

Defined in include/mrpc.h:134

RPC_RC_TRANSITION
#define RPC_RC_TRANSITION 12000

Defined in include/mrpc.h:119

RPC_TEST
#define RPC_TEST 15000

Defined in include/mrpc.h:125

RPC_TEST2
#define RPC_TEST2 15001

Defined in include/mrpc.h:126

RPC_TEST2_CXX
#define RPC_TEST2_CXX 15002

Defined in include/mrpc.h:127

RPC_TEST3_CXX
#define RPC_TEST3_CXX 15003

Defined in include/mrpc.h:128

RPC_TEST4_CXX
#define RPC_TEST4_CXX 15004

Defined in include/mrpc.h:129

Midas RPC_LIST

Functions

rpc_get_internal_list

RPC_LIST *rpc_get_internal_list(INT flag)

Declared in include/msystem.h:568, defined in src/mrpc.cxx:785

JSON-RPC Functions

Classes

MJSO

class MJSO : public MJsonNode

MIDAS JSON Schema Objects for documenting RPC calls.

Typical use:

static MJsonNode* js_cm_exist(const MJsonNode* params) { if (!params) { MJSO* doc = MJSO::I(); doc->D("calls MIDAS cm_exist() to check if given MIDAS program is running"); doc->P("name", MJSON_STRING, "name of the program, corresponding to ODB /Programs/name"); doc->P("unique?", MJSON_BOOL, "bUnique argument to cm_exist()"); doc->R("status", MJSON_INT, "return status of cm_exist()"); return doc; } ... rpc function body }

Defined in include/mjsonrpc.h:58

Methods
Add
void Add(const char* name, int mjson_type, const char* description)

Declared in include/mjsonrpc.h:82, defined in src/mjsonrpc.cxx:360

AddArray
MJSO*AddArray(const char* name, const char* description)

Declared in include/mjsonrpc.h:84, defined in src/mjsonrpc.cxx:398

AddObject
MJSO*AddObject(const char* name, const char* description)

Declared in include/mjsonrpc.h:83, defined in src/mjsonrpc.cxx:389

AddToSchema protected
void AddToSchema(MJsonNode* s, const char* name)

Declared in include/mjsonrpc.h:71, defined in src/mjsonrpc.cxx:266

D
void D(const char* description)

Declared in include/mjsonrpc.h:75, defined in src/mjsonrpc.cxx:307

I static
static MJSO*I()

Declared in include/mjsonrpc.h:74, defined in src/mjsonrpc.cxx:302

MakeArraySchema staticprotected
static MJSO*MakeArraySchema(const char* description)

constructor for array schema

Declared in include/mjsonrpc.h:70, defined in src/mjsonrpc.cxx:247

MakeObjectSchema staticprotected
static MJSO*MakeObjectSchema(const char* description)

constructor for object schema

Declared in include/mjsonrpc.h:69, defined in src/mjsonrpc.cxx:234

MJSO protected
MJSO()

ctor

Declared in include/mjsonrpc.h:87, defined in src/mjsonrpc.cxx:407

P
void P(const char* name, int mjson_type, const char* description)

Declared in include/mjsonrpc.h:80, defined in src/mjsonrpc.cxx:344

PA
MJSO*PA(const char* description)

Declared in include/mjsonrpc.h:78, defined in src/mjsonrpc.cxx:330

Params
MJSO*Params()

Declared in include/mjsonrpc.h:76, defined in src/mjsonrpc.cxx:312

R
void R(const char* name, int mjson_type, const char* description)

Declared in include/mjsonrpc.h:81, defined in src/mjsonrpc.cxx:352

RA
MJSO*RA(const char* description)

Declared in include/mjsonrpc.h:79, defined in src/mjsonrpc.cxx:337

Result
MJSO*Result()

Declared in include/mjsonrpc.h:77, defined in src/mjsonrpc.cxx:321

Attributes
items protected
MJsonNode *items

Defined in include/mjsonrpc.h:63

params protected
MJSO* params

Defined in include/mjsonrpc.h:65

properties protected
MJsonNode *properties

Defined in include/mjsonrpc.h:61

required protected
MJsonNode *required

Defined in include/mjsonrpc.h:62

result protected
MJSO* result

Defined in include/mjsonrpc.h:66

Type definitions

mjsonrpc_handler_t

typedef MJsonNode* (mjsonrpc_handler_t)(const MJsonNode* params)

Defined in include/mjsonrpc.h:18

Functions

mjsonrpc_add_handler

void mjsonrpc_add_handler(const char* method, mjsonrpc_handler_t *handler, bool needs_locking = false)

Declared in include/mjsonrpc.h:24, defined in src/mjsonrpc.cxx:4985

mjsonrpc_decode_post_data

MJsonNode*mjsonrpc_decode_post_data(const char* post_data)

printf("mjsonrpc call, data [%s]\n", post_data);

Declared in include/mjsonrpc.h:37, defined in src/mjsonrpc.cxx:5614

mjsonrpc_exit

void mjsonrpc_exit()

Declared in include/mjsonrpc.h:25, defined in src/mjsonrpc.cxx:5090

mjsonrpc_get_param

const MJsonNode*mjsonrpc_get_param(const MJsonNode* params, const char* name, MJsonNode** error)

Declared in include/mjsonrpc.h:35, defined in src/mjsonrpc.cxx:182

mjsonrpc_get_schema

MJsonNode*mjsonrpc_get_schema()

Declared in include/mjsonrpc.h:29, defined in src/mjsonrpc.cxx:5128

mjsonrpc_init

void mjsonrpc_init()

Declared in include/mjsonrpc.h:22, defined in src/mjsonrpc.cxx:4998

mjsonrpc_make_error

MJsonNode*mjsonrpc_make_error(int code, const char* message, const char* data)

Declared in include/mjsonrpc.h:32, defined in src/mjsonrpc.cxx:127

mjsonrpc_make_result

Note: this function has 2 different signatures.

mjsonrpc_make_result
MJsonNode*mjsonrpc_make_result(MJsonNode* node)

Declared in include/mjsonrpc.h:33, defined in src/mjsonrpc.cxx:139

mjsonrpc_make_result
MJsonNode*mjsonrpc_make_result(const char* name, MJsonNode* value, const char* name2 = NULL, MJsonNode* value2 = NULL, const char* name3 = NULL, MJsonNode* value3 = NULL)

Declared in include/mjsonrpc.h:34, defined in src/mjsonrpc.cxx:146

mjsonrpc_schema_to_text

std::string mjsonrpc_schema_to_text(const MJsonNode *schema)

Declared in include/mjsonrpc.h:30, defined in src/mjsonrpc.cxx:5438

mjsonrpc_set_std_mutex

void mjsonrpc_set_std_mutex(void* mutex)

Declared in include/mjsonrpc.h:27, defined in src/mjsonrpc.cxx:4993

mjsonrpc_user_init

void mjsonrpc_user_init()

Declared in include/mjsonrpc.h:23, defined in src/mjsonrpc_user.cxx:116

Variables

mjsonrpc_debug extern

int mjsonrpc_debug = 0

in mjsonrpc.h

Declared in include/mjsonrpc.h:20, defined in src/mjsonrpc.cxx:116

JSON documents (MJsonNode)

JSON-RPC methods written in C++ receive their parameters, and build their replies, as MJsonNode objects (mjson/mjson.h). See mjson (JSON documents) for the full reference.