00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef response_h
00027 #define response_h
00028
00029 #include <stdio.h>
00030
00031 #ifndef _debug_h
00032 #include "debug.h"
00033 #endif
00034
00035 using namespace std;
00036
00050 class Response
00051 {
00052 private:
00054 FILE *d_stream;
00056 ObjectType d_type;
00058 string d_version;
00060 string d_protocol;
00062 int d_status;
00063
00064 protected:
00067 Response()
00068 {}
00069 Response(const Response &)
00070 {}
00071 Response &operator=(const Response &)
00072 {
00073 throw InternalErr(__FILE__, __LINE__, "Unimplemented assignment");
00074 }
00076
00077 public:
00083 Response(FILE *s) : d_stream(s), d_type(unknown_type),
00084 d_version("dods/0.0"), d_protocol("2.0"),
00085 d_status(0)
00086 { }
00087
00089 virtual ~Response()
00090 {
00091 if (d_stream)
00092 fclose(d_stream);
00093 }
00094
00097 virtual int get_status() const
00098 {
00099 return d_status;
00100 }
00101 virtual FILE *get_stream() const
00102 {
00103 return d_stream;
00104 }
00105 virtual ObjectType get_type() const
00106 {
00107 return d_type;
00108 }
00109 virtual string get_version() const
00110 {
00111 return d_version;
00112 }
00113 virtual string get_protocol() const
00114 {
00115 return d_protocol;
00116 }
00118
00121 virtual void set_status(int s)
00122 {
00123 d_status = s;
00124 }
00125 virtual void set_stream(FILE *s)
00126 {
00127 d_stream = s;
00128 }
00129 virtual void set_type(ObjectType o)
00130 {
00131 d_type = o;
00132 }
00133 virtual void set_version(const string &v)
00134 {
00135 d_version = v;
00136 }
00137 virtual void set_protocol(const string &p)
00138 {
00139 d_protocol = p;
00140 }
00142 };
00143
00144 #endif // response_h