00001
00002
00003 #include "rcs_defs.hh"
00004
00005
00006 #ifndef CMS_XUP_HH
00007 #define CMS_XUP_HH
00008
00009 extern "C"
00010 {
00011 #ifndef NO_DCE_RPC
00012 #include <rpc/rpc.h>
00013 #else
00014 #ifdef VXWORKS
00015 #include <rpc/xdr.h>
00016 #else
00017 #include "xdr.h"
00018 #endif
00019 #endif
00020
00021 }
00022 #include "cms_up.hh"
00023
00024 class CMS_XDR_UPDATER:public CMS_UPDATER
00025 {
00026 public:
00027 CMS_STATUS update (char &x);
00028 CMS_STATUS update (unsigned char &x);
00029 CMS_STATUS update (short int &x);
00030 CMS_STATUS update (unsigned short int &x);
00031 CMS_STATUS update (int &x);
00032 CMS_STATUS update (unsigned int &x);
00033 CMS_STATUS update (long int &x);
00034 CMS_STATUS update (unsigned long int &x);
00035 CMS_STATUS update (float &x);
00036 CMS_STATUS update (double &x);
00037 CMS_STATUS update (long double &x);
00038 CMS_STATUS update (char *x, unsigned int len);
00039 CMS_STATUS update (unsigned char *x, unsigned int len);
00040 CMS_STATUS update (short *x, unsigned int len);
00041 CMS_STATUS update (unsigned short *x, unsigned int len);
00042 CMS_STATUS update (int *x, unsigned int len);
00043 CMS_STATUS update (unsigned int *x, unsigned int len);
00044 CMS_STATUS update (long *x, unsigned int len);
00045 CMS_STATUS update (unsigned long *x, unsigned int len);
00046 CMS_STATUS update (float *x, unsigned int len);
00047 CMS_STATUS update (double *x, unsigned int len);
00048 CMS_STATUS update (long double *x, unsigned int len);
00049 int set_mode (CMS_UPDATER_MODE);
00050 void rewind ();
00051 int get_encoded_msg_size ();
00052 void set_encoded_data (void *, long _encoded_data_size);
00053 protected:
00054 int check_pointer (char RCS_HUGE *, long);
00055 CMS_XDR_UPDATER (CMS *);
00056 virtual ~ CMS_XDR_UPDATER ();
00057 friend class RCS_EXPORT CMS;
00058 XDR *encode_data_stream;
00059 XDR *decode_data_stream;
00060 XDR *encode_header_stream;
00061 XDR *decode_header_stream;
00062 XDR *encode_queuing_header_stream;
00063 XDR *decode_queuing_header_stream;
00064 XDR *current_stream;
00065 };
00066
00067
00068
00069 #endif
00070