#ifndef CMS_XUP_HH
#define CMS_XUP_HH
extern "C" {
#include <rpc/rpc.h>
}
#include "cms_up.hh"
class CMS_XDR_UPDATER:public CMS_UPDATER {
public:
CMS_STATUS update(bool &x);
CMS_STATUS update(char &x);
CMS_STATUS update(unsigned char &x);
CMS_STATUS update(short int &x);
CMS_STATUS update(unsigned short int &x);
CMS_STATUS update(int &x);
CMS_STATUS update(unsigned int &x);
CMS_STATUS update(long int &x);
CMS_STATUS update(unsigned long int &x);
CMS_STATUS update(float &x);
CMS_STATUS update(double &x);
CMS_STATUS update(long double &x);
CMS_STATUS update(char *x, unsigned int len);
CMS_STATUS update(unsigned char *x, unsigned int len);
CMS_STATUS update(short *x, unsigned int len);
CMS_STATUS update(unsigned short *x, unsigned int len);
CMS_STATUS update(int *x, unsigned int len);
CMS_STATUS update(unsigned int *x, unsigned int len);
CMS_STATUS update(long *x, unsigned int len);
CMS_STATUS update(unsigned long *x, unsigned int len);
CMS_STATUS update(float *x, unsigned int len);
CMS_STATUS update(double *x, unsigned int len);
CMS_STATUS update(long double *x, unsigned int len);
int set_mode(CMS_UPDATER_MODE);
void rewind();
int get_encoded_msg_size();
void set_encoded_data(void *, long _encoded_data_size);
protected:
int check_pointer(char *, long);
CMS_XDR_UPDATER(CMS *);
virtual ~ CMS_XDR_UPDATER();
friend class CMS;
XDR *encode_data_stream;
XDR *decode_data_stream;
XDR *encode_header_stream;
XDR *decode_header_stream;
XDR *encode_queuing_header_stream;
XDR *decode_queuing_header_stream;
XDR *current_stream;
};
#endif