00001 // Marshaller.h 00002 00003 #ifndef A_Marshaller_h 00004 #define A_Marshaller_h 1 00005 00006 #include <string> 00007 #include <vector> 00008 00009 using std::string ; 00010 using std::vector ; 00011 00012 #include "DapObj.h" 00013 00014 #include "dods-datatypes.h" 00015 00016 class Vector ; 00017 00018 class Marshaller : public DapObj 00019 { 00020 public: 00021 virtual void put_byte( dods_byte val ) = 0 ; 00022 00023 virtual void put_int16( dods_int16 val ) = 0 ; 00024 virtual void put_int32( dods_int32 val ) = 0 ; 00025 00026 virtual void put_float32( dods_float32 val ) = 0 ; 00027 virtual void put_float64( dods_float64 val ) = 0 ; 00028 00029 virtual void put_uint16( dods_uint16 val ) = 0 ; 00030 virtual void put_uint32( dods_uint32 val ) = 0 ; 00031 00032 virtual void put_str( const string &val ) = 0 ; 00033 virtual void put_url( const string &val ) = 0 ; 00034 00035 virtual void put_opaque( char *val, unsigned int len ) = 0 ; 00036 virtual void put_int( int val ) = 0 ; 00037 00038 virtual void put_vector( char *val, int num, 00039 Vector &vec ) = 0 ; 00040 virtual void put_vector( char *val, int num, int width, 00041 Vector &vec ) = 0 ; 00042 00043 virtual void dump(ostream &strm) const = 0 ; 00044 } ; 00045 00046 #endif // A_Marshaller_h 00047