📄 cms_up.hh
字号:
/********************************************************************* Description: cms_up.hh* This C++ header file defines the abstract CMS_UPDATER class* that defines the interface used by CMS to convert between local* machine-specific data representations and network machine-independant* represantations such as XDR via the derived classes of CMS_UPDATER.** 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/26 17:53:35 $********************************************************************/#ifndef CMS_UP_HH#define CMS_UP_HH#include "cms.hh" /* enum CMS_STATUS, class CMS */enum CMS_UPDATER_MODE { CMS_NO_UPDATE = 0, CMS_ENCODE_DATA, CMS_DECODE_DATA, CMS_ENCODE_HEADER, CMS_DECODE_HEADER, CMS_ENCODE_QUEUING_HEADER, CMS_DECODE_QUEUING_HEADER};struct CMS_POINTER_TABLE_ENTRY { void *ptr;};/* Abstract CMS_UPDATER CLASS */class CMS_UPDATER { public: virtual CMS_STATUS update(bool &x) = 0; virtual CMS_STATUS update(char &x) = 0; virtual CMS_STATUS update(unsigned char &x) = 0; virtual CMS_STATUS update(short int &x) = 0; virtual CMS_STATUS update(unsigned short int &x) = 0; virtual CMS_STATUS update(int &x) = 0; virtual CMS_STATUS update(unsigned int &x) = 0; virtual CMS_STATUS update(long int &x) = 0; virtual CMS_STATUS update(unsigned long int &x) = 0; virtual CMS_STATUS update(float &x) = 0; virtual CMS_STATUS update(double &x) = 0; virtual CMS_STATUS update(long double &x) = 0; virtual CMS_STATUS update(char *x, unsigned int len) = 0; virtual CMS_STATUS update(unsigned char *x, unsigned int len) = 0; virtual CMS_STATUS update(short *x, unsigned int len) = 0; virtual CMS_STATUS update(unsigned short *x, unsigned int len) = 0; virtual CMS_STATUS update(int *x, unsigned int len) = 0; virtual CMS_STATUS update(unsigned int *x, unsigned int len) = 0; virtual CMS_STATUS update(long *x, unsigned int len) = 0; virtual CMS_STATUS update(unsigned long *x, unsigned int len) = 0; virtual CMS_STATUS update(float *x, unsigned int len) = 0; virtual CMS_STATUS update(double *x, unsigned int len) = 0; virtual CMS_STATUS update(long double *x, unsigned int len) = 0; /* Neutrally Encoded Buffer positioning functions. */ virtual void rewind(); /* positions at beginning */ virtual int get_encoded_msg_size() = 0; /* Store last position in header.size */ virtual int set_mode(CMS_UPDATER_MODE); virtual CMS_UPDATER_MODE get_mode(); virtual void set_encoded_data(void *, long _encoded_data_size); protected: /********************************************** * Aliases to variables in the CMS parent * using aliases lets CMS and its CMS_UPDATER share this information * more conveniently and allowed the CMS_UPDATER functions to be pulled out * of CMS with fewer changes. *********************************************/ void *(&encoded_data); /* pointer to local copy of encoded data */ void *(&encoded_header); /* pointer to local copy of encoded header */ void *(&encoded_queuing_header); /* pointer to local copy of encoded queue info */ CMS_STATUS & status; long &size; long &encoded_header_size; /* Dynamically determined size */ long &encoded_queuing_header_size; /* Dynamically determined size */ int &using_external_encoded_data; int &pointer_check_disabled; long &encoded_data_size; virtual int check_pointer(char *ptr, long bytes); CMS_UPDATER_MODE mode; CMS *cms_parent; CMS_UPDATER(CMS *, int create_encoded_data = 1, long _neutral_size_factor = 4); virtual ~ CMS_UPDATER(); long neutral_size_factor; int encoding; /* Friends */ friend class CMS;};#endif /* !defined( CMS_UP_HH ) */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -