Go to the documentation of this file.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
00027
00028
00029
00030
00031
00032
00033
00034
00035 #include "config.h"
00036
00037 static char rcsid[] not_used =
00038 {"$Id: DataDDS.cc 17856 2008-02-02 21:25:59Z pwest $"
00039 };
00040
00041
00042 #include <iostream>
00043 #include <iomanip>
00044 #include <sstream>
00045 #include <string>
00046
00047 #include "DataDDS.h"
00048 #include "debug.h"
00049
00050 using namespace std;
00051
00052 namespace libdap {
00053
00054
00055
00059 void
00060 DataDDS::m_version_string_to_numbers()
00061 {
00062 string num = d_server_version.substr(d_server_version.find('/') + 1);
00063
00064 if (!num.empty() && num.find('.') != string::npos) {
00065 istringstream iss(num);
00066 char c;
00067
00068 iss >> d_server_version_major;
00069 iss >> c;
00070 iss >> d_server_version_minor;
00071
00072
00073 if (!(c == '.' && d_server_version_major > 0
00074 && d_server_version_minor > 0)) {
00075
00076 d_server_version_major = 0;
00077 d_server_version_minor = 0;
00078 }
00079 }
00080 else {
00081 d_server_version_major = 0;
00082 d_server_version_minor = 0;
00083 }
00084
00085 DBG(cerr << "Server version: " << d_server_version_major << "." \
00086 << d_server_version_minor << endl);
00087 }
00088
00092 void
00093 DataDDS::m_protocol_string_to_numbers()
00094 {
00095
00096 if (!d_protocol_version.empty() && d_protocol_version.find('.')
00097 != string::npos) {
00098 istringstream iss(d_protocol_version);
00099 char c;
00100
00101 iss >> d_server_protocol_major;
00102 iss >> c;
00103 iss >> d_server_protocol_minor;
00104
00105
00106 if (!(c == '.' && d_server_protocol_major > 0)) {
00107 d_server_protocol_major = 2;
00108 d_server_protocol_minor = 0;
00109 }
00110 }
00111 else {
00112 d_server_protocol_major = 2;
00113 d_server_protocol_minor = 0;
00114 }
00115
00116 DBG(cerr << "Server version: " << d_server_version_major << "." \
00117 << d_server_version_minor << endl);
00118 }
00119
00127 void
00128 DataDDS::dump(ostream &strm) const
00129 {
00130 strm << DapIndent::LMarg << "DataDDS::dump - ("
00131 << (void *)this << ")" << endl ;
00132 DapIndent::Indent() ;
00133 DDS::dump(strm) ;
00134 strm << DapIndent::LMarg << "server version: " << d_server_version
00135 << endl ;
00136 strm << DapIndent::LMarg << "version major: " << d_server_version_major
00137 << endl ;
00138 strm << DapIndent::LMarg << "version minor: " << d_server_version_minor
00139 << endl ;
00140 strm << DapIndent::LMarg << "protocol version: " << d_protocol_version
00141 << endl ;
00142 strm << DapIndent::LMarg << "protocol major: " << d_server_protocol_major
00143 << endl ;
00144 strm << DapIndent::LMarg << "protocol minor: " << d_server_protocol_minor
00145 << endl ;
00146 DapIndent::UnIndent() ;
00147 }
00148
00149
00150
00163 DataDDS::DataDDS(BaseTypeFactory *factory, const string &n, const string &v,
00164 const string &p)
00165 : DDS(factory, n), d_server_version(v), d_protocol_version(p)
00166 {
00167 m_version_string_to_numbers();
00168 m_protocol_string_to_numbers();
00169 }
00170
00171 }
00172