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 #include <string>
00031
00032 #ifndef _debug_h
00033 #include "debug.h"
00034 #endif
00035
00036 using namespace std;
00037
00038 #ifndef _object_type_h
00039 #include "ObjectType.h"
00040 #endif
00041
00042 #ifndef _internal_err_
00043 #include "InternalErr.h"
00044 #endif
00045
00046 namespace libdap
00047 {
00048
00062 class Response
00063 {
00064 private:
00066 FILE *d_stream;
00068 ObjectType d_type;
00070 string d_version;
00072 string d_protocol;
00074 int d_status;
00075
00076 protected:
00079 Response()
00080 {}
00081 Response(const Response &)
00082 {}
00083 Response &operator=(const Response &)
00084 {
00085 throw InternalErr(__FILE__, __LINE__, "Unimplemented assignment");
00086 }
00088
00089 public:
00097 Response(FILE *s, int status = 0) : d_stream(s), d_type(unknown_type),
00098 d_version("dods/0.0"), d_protocol("2.0"),
00099 d_status(status)
00100 { }
00101
00103 virtual ~Response()
00104 {
00105 if (d_stream)
00106 fclose(d_stream);
00107 }
00108
00111 virtual int get_status() const
00112 {
00113 return d_status;
00114 }
00115 virtual FILE *get_stream() const
00116 {
00117 return d_stream;
00118 }
00119 virtual ObjectType get_type() const
00120 {
00121 return d_type;
00122 }
00123 virtual string get_version() const
00124 {
00125 return d_version;
00126 }
00127 virtual string get_protocol() const
00128 {
00129 return d_protocol;
00130 }
00132
00135 virtual void set_status(int s)
00136 {
00137 d_status = s;
00138 }
00139 virtual void set_stream(FILE *s)
00140 {
00141 d_stream = s;
00142 }
00143 virtual void set_type(ObjectType o)
00144 {
00145 d_type = o;
00146 }
00147 virtual void set_version(const string &v)
00148 {
00149 d_version = v;
00150 }
00151 virtual void set_protocol(const string &p)
00152 {
00153 d_protocol = p;
00154 }
00156 };
00157
00158 }
00159
00160 #endif // response_h