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 <cstdio>
00030
00031 #ifndef _debug_h
00032 #include "debug.h"
00033 #endif
00034
00035 using namespace std;
00036
00037 namespace libdap
00038 {
00039
00053 class Response
00054 {
00055 private:
00057 FILE *d_stream;
00059 ObjectType d_type;
00061 string d_version;
00063 string d_protocol;
00065 int d_status;
00066
00067 protected:
00070 Response()
00071 {}
00072 Response(const Response &)
00073 {}
00074 Response &operator=(const Response &)
00075 {
00076 throw InternalErr(__FILE__, __LINE__, "Unimplemented assignment");
00077 }
00079
00080 public:
00088 Response(FILE *s, int status = 0) : d_stream(s), d_type(unknown_type),
00089 d_version("dods/0.0"), d_protocol("2.0"),
00090 d_status(status)
00091 { }
00092
00094 virtual ~Response()
00095 {
00096 if (d_stream)
00097 fclose(d_stream);
00098 }
00099
00102 virtual int get_status() const
00103 {
00104 return d_status;
00105 }
00106 virtual FILE *get_stream() const
00107 {
00108 return d_stream;
00109 }
00110 virtual ObjectType get_type() const
00111 {
00112 return d_type;
00113 }
00114 virtual string get_version() const
00115 {
00116 return d_version;
00117 }
00118 virtual string get_protocol() const
00119 {
00120 return d_protocol;
00121 }
00123
00126 virtual void set_status(int s)
00127 {
00128 d_status = s;
00129 }
00130 virtual void set_stream(FILE *s)
00131 {
00132 d_stream = s;
00133 }
00134 virtual void set_type(ObjectType o)
00135 {
00136 d_type = o;
00137 }
00138 virtual void set_version(const string &v)
00139 {
00140 d_version = v;
00141 }
00142 virtual void set_protocol(const string &p)
00143 {
00144 d_protocol = p;
00145 }
00147 };
00148
00149 }
00150
00151 #endif // response_h