⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cms_up.hh

📁 Source code for an Numeric Cmputer
💻 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 + -