📄 rem_msg.hh
字号:
/********************************************************************* Description: rem_msg.hh* Defines the structs passed between REMOTE clients and servers* as part of CMS.* Includes:* 1. struct REMOTE_READ_REQUEST, REMOTE_READ_REPLY,* REMOTE_WRITE_REPLY, REMOTE_WRITE_REQUEST.* 2. Function prototypes for functions that XDR encode and decode these* structs.** Derived from a work by Fred Proctor & Will Shackleford** Author:* License: LGPL Version 2* System: Linux* * Copyright (c) 2004 All rights reserved.** Last change: * $Revision: 1.5 $* $Author: paul_c $* $Date: 2005/06/13 14:38:48 $********************************************************************/#ifndef REM_MSG_HH#define REM_MSG_HHclass CMS_DIAGNOSTICS_INFO;struct CMS_HEADER;struct REMOTE_CMS_MESSAGE {};enum REMOTE_CMS_REQUEST_TYPE { NO_REMOTE_CMS_REQUEST = 0, REMOTE_CMS_READ_REQUEST_TYPE = 1, REMOTE_CMS_WRITE_REQUEST_TYPE, REMOTE_CMS_CHECK_IF_READ_REQUEST_TYPE, REMOTE_CMS_CLEAN_REQUEST_TYPE, REMOTE_CMS_CLEAR_REQUEST_TYPE, REMOTE_CMS_CLOSE_CHANNEL_REQUEST_TYPE, REMOTE_CMS_GET_KEYS_REQUEST_TYPE, REMOTE_CMS_LOGIN_REQUEST_TYPE, REMOTE_CMS_SET_SUBSCRIPTION_REQUEST_TYPE, REMOTE_CMS_READ_COMBINED_REQUEST_TYPE, REMOTE_CMS_BLOCKING_READ_REQUEST_TYPE, REMOTE_CMS_GET_BUF_NAME_REQUEST_TYPE, REMOTE_CMS_CANCEL_SUBSCRIPTION_REQUEST_TYPE, REMOTE_CMS_SET_DIAG_INFO_REQUEST_TYPE, REMOTE_CMS_GET_DIAG_INFO_REQUEST_TYPE, REMOTE_CMS_GET_MSG_COUNT_REQUEST_TYPE, REMOTE_CMS_GET_QUEUE_LENGTH_REQUEST_TYPE, REMOTE_CMS_GET_SPACE_AVAILABLE_REQUEST_TYPE,};struct REMOTE_CMS_REQUEST:public REMOTE_CMS_MESSAGE { REMOTE_CMS_REQUEST(REMOTE_CMS_REQUEST_TYPE _type) { type = (int) _type; buffer_number = 0; subdiv = 0; }; long buffer_number; int type; int subdiv;};struct REMOTE_CMS_REPLY:public REMOTE_CMS_MESSAGE { REMOTE_CMS_REPLY() { status = 0; }; int status;};/* Structure sent by client to server to initiate a read. */struct REMOTE_BLOCKING_READ_REQUEST:public REMOTE_CMS_REQUEST { REMOTE_BLOCKING_READ_REQUEST():REMOTE_CMS_REQUEST (REMOTE_CMS_BLOCKING_READ_REQUEST_TYPE) { }; int access_type; /* read or just peek */ long last_id_read; /* The server can compare with id from buffer */ /* to determine if the buffer is new */ /* to this client */ long timeout_millis; /* Milliseconds for blocking_timeout or -1 to wait forever */ void *_nml; void *_data; void *_reply;};/* Structure sent by client to server to initiate a read. */struct REMOTE_GET_BUF_NAME_REQUEST:public REMOTE_CMS_REQUEST { REMOTE_GET_BUF_NAME_REQUEST():REMOTE_CMS_REQUEST (REMOTE_CMS_GET_BUF_NAME_REQUEST_TYPE) { };};struct REMOTE_READ_REQUEST:public REMOTE_CMS_REQUEST { REMOTE_READ_REQUEST():REMOTE_CMS_REQUEST(REMOTE_CMS_READ_REQUEST_TYPE) { }; int access_type; /* read or just peek */ long last_id_read; /* The server can compare with id from buffer */ /* to determine if the buffer is new */ /* to this client */};/* Structure returned by server to client after a read. */struct REMOTE_READ_REPLY:public REMOTE_CMS_REPLY { int size; /* size of message stored in data. */ long write_id; /* Id from the buffer. */ long was_read; /* Was this message already read? */ void *data; /* Location of stored message. */};/* Structure returned by server to client after a read. */struct REMOTE_GET_BUF_NAME_REPLY:public REMOTE_CMS_REPLY { char name[32]; /* Location of stored buffer name (truncated to 31 characters). */};/* Structure returned by server to client after a read. */struct REMOTE_BLOCKING_READ_REPLY:public REMOTE_READ_REPLY {};/* Structure sent by client to server to initiate a write. */struct REMOTE_WRITE_REQUEST:public REMOTE_CMS_REQUEST { REMOTE_WRITE_REQUEST():REMOTE_CMS_REQUEST(REMOTE_CMS_WRITE_REQUEST_TYPE) { data = NULL; size = 0; }; int access_type; /* write or write_if_read */ int size; /* size of message in data */ void *data; /* location of message to write into buffer */ void *_nml;};/* Structure returned by server to client after a write. */struct REMOTE_WRITE_REPLY:public REMOTE_CMS_REPLY { long was_read; /* Was the message to be overwriten ever read? */ int confirm_write;};struct REMOTE_CHECK_IF_READ_REQUEST:public REMOTE_CMS_REQUEST { REMOTE_CHECK_IF_READ_REQUEST():REMOTE_CMS_REQUEST (REMOTE_CMS_CHECK_IF_READ_REQUEST_TYPE) { };};struct REMOTE_CHECK_IF_READ_REPLY:public REMOTE_CMS_REPLY { int was_read;};struct REMOTE_CLEAR_REQUEST:public REMOTE_CMS_REQUEST { REMOTE_CLEAR_REQUEST():REMOTE_CMS_REQUEST(REMOTE_CMS_CLEAR_REQUEST_TYPE) { };};struct REMOTE_CLEAR_REPLY:public REMOTE_CMS_REPLY {};struct REMOTE_CLOSE_CHANNEL_REQUEST:public REMOTE_CMS_REQUEST { REMOTE_CLOSE_CHANNEL_REQUEST():REMOTE_CMS_REQUEST (REMOTE_CMS_CLOSE_CHANNEL_REQUEST_TYPE) { };};struct REMOTE_CLOSE_CHANNEL_REPLY:public REMOTE_CMS_REPLY {};struct REMOTE_GET_KEYS_REQUEST:public REMOTE_CMS_REQUEST { REMOTE_GET_KEYS_REQUEST():REMOTE_CMS_REQUEST (REMOTE_CMS_GET_KEYS_REQUEST_TYPE) { }; char name[16];};struct REMOTE_GET_KEYS_REPLY:public REMOTE_CMS_REPLY { char key1[8]; char key2[8];};struct REMOTE_LOGIN_REQUEST:public REMOTE_CMS_REQUEST { REMOTE_LOGIN_REQUEST():REMOTE_CMS_REQUEST(REMOTE_CMS_LOGIN_REQUEST_TYPE) { }; char name[16]; char passwd[16];};struct REMOTE_LOGIN_REPLY:public REMOTE_CMS_REPLY { int success; // 1 = logged in, 0 = not};enum CMS_REMOTE_SUBSCRIPTION_REQUEST_TYPE { CMS_POLLED_SUBSCRIPTION = 1, CMS_NO_SUBSCRIPTION, CMS_VARIABLE_SUBSCRIPTION};struct REMOTE_SET_SUBSCRIPTION_REQUEST:public REMOTE_CMS_REQUEST { REMOTE_SET_SUBSCRIPTION_REQUEST():REMOTE_CMS_REQUEST (REMOTE_CMS_SET_SUBSCRIPTION_REQUEST_TYPE) { }; int subscription_type; int poll_interval_millis; int last_id_read;};struct REMOTE_SET_SUBSCRIPTION_REPLY:public REMOTE_CMS_REPLY { int success; // 1 = logged in, 0 = not int subscription_id; // used by UDP clients to cancel a // subscription.};struct REMOTE_CANCEL_SUBSCRIPTION_REQUEST:public REMOTE_CMS_REQUEST { REMOTE_CANCEL_SUBSCRIPTION_REQUEST():REMOTE_CMS_REQUEST (REMOTE_CMS_CANCEL_SUBSCRIPTION_REQUEST_TYPE) { }; int subscription_id;};struct REMOTE_CANCEL_SUBSCRIPTION_REPLY:public REMOTE_CMS_REPLY { int success; // 1 = logged in, 0 = not int subscription_id; // used by UDP clients to cancel a // subscription.};struct REMOTE_SET_DIAG_INFO_REQUEST:public REMOTE_CMS_REQUEST { REMOTE_SET_DIAG_INFO_REQUEST():REMOTE_CMS_REQUEST (REMOTE_CMS_SET_DIAG_INFO_REQUEST_TYPE) { }; char process_name[16]; char host_sysinfo[256]; int pid; int c_num; double rcslib_ver; int reverse_flag; double bytes_moved; double bytes_moved_accross_socket;};/* Structure returned by server to client after a read. */struct REMOTE_SET_DIAG_INFO_REPLY:public REMOTE_CMS_REPLY {};struct REMOTE_GET_DIAG_INFO_REQUEST:public REMOTE_CMS_REQUEST { REMOTE_GET_DIAG_INFO_REQUEST():REMOTE_CMS_REQUEST (REMOTE_CMS_GET_DIAG_INFO_REQUEST_TYPE) { };};/* Structure returned by server to client after a read. */struct REMOTE_GET_DIAG_INFO_REPLY:public REMOTE_CMS_REPLY { CMS_DIAGNOSTICS_INFO *cdi;};struct REMOTE_GET_MSG_COUNT_REQUEST:public REMOTE_CMS_REQUEST { REMOTE_GET_MSG_COUNT_REQUEST():REMOTE_CMS_REQUEST (REMOTE_CMS_GET_MSG_COUNT_REQUEST_TYPE) { };};/* Structure returned by server to client after a read. */struct REMOTE_GET_MSG_COUNT_REPLY:public REMOTE_CMS_REPLY { long count;};struct REMOTE_GET_QUEUE_LENGTH_REQUEST:public REMOTE_CMS_REQUEST { REMOTE_GET_QUEUE_LENGTH_REQUEST():REMOTE_CMS_REQUEST (REMOTE_CMS_GET_QUEUE_LENGTH_REQUEST_TYPE) { };};/* Structure returned by server to client after a read. */struct REMOTE_GET_QUEUE_LENGTH_REPLY:public REMOTE_CMS_REPLY { long queue_length;};struct REMOTE_GET_SPACE_AVAILABLE_REQUEST:public REMOTE_CMS_REQUEST { REMOTE_GET_SPACE_AVAILABLE_REQUEST():REMOTE_CMS_REQUEST (REMOTE_CMS_GET_SPACE_AVAILABLE_REQUEST_TYPE) { };};/* Structure returned by server to client after a read. */struct REMOTE_GET_SPACE_AVAILABLE_REPLY:public REMOTE_CMS_REPLY { long space_available;};/*! \todo Another #if 0 */#if 0#define MAX_BUFFERS_FOR_COMBINED_READ 32/* Structure sent by client to server to initiate a read of multiple buffers. */struct REMOTE_READ_COMBINED_REQUEST:public REMOTE_CMS_REQUEST { REMOTE_READ_COMBINED_REQUEST():REMOTE_CMS_REQUEST (REMOTE_CMS_READ_COMBINED_REQUEST_TYPE) { }; int access_type; /* read or just peek */ int num_buffers; struct combined_read_buf_req_info_struct { long buffer_number; long last_id_read; /* The server can compare with id from buffer */ /* to determine if the buffer is new */ /* to this client */ int header_only; // non-zero means send only the header } combined_read_buf_req_info[MAX_BUFFERS_FOR_COMBINED_READ];};/* Structure returned by server to client after a read. */struct REMOTE_READ_COMBINED_REPLY:public REMOTE_CMS_REPLY { int num_buffers; struct combined_read_buf_reply_info_struct { int size; /* size of message stored in data. */ long write_id; /* Id from the buffer. */ long was_read; /* Was this message already read? */ void *data; /* Location of stored message. */ } combined_read_buf_reply_info[MAX_BUFFERS_FOR_COMBINED_READ];};#endif#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -