Changeset 214 for XMLIO_V2/dev/dev_rv/src/xmlio/server.cpp
- Timestamp:
- 06/14/11 16:20:27 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XMLIO_V2/dev/dev_rv/src/xmlio/server.cpp
r199 r214 1 1 #include "server.hpp" 2 3 #include "tree_manager.hpp" 4 #include "duration.hpp" 5 #include "data_treatment.hpp" 2 6 3 7 namespace xmlioserver { … … 14 18 15 19 ///-------------------------------------------------------------- 20 21 boost::shared_ptr<CServer> CServer::Server; 22 23 ///-------------------------------------------------------------- 16 24 17 25 const CBufferList & CServer::getBufferList(void) const 18 26 { 19 27 return (this->blist); 20 } 28 } 29 30 ///-------------------------------------------------------------- 31 32 boost::shared_ptr<CServer> CServer::CreateServer(MPIComm comm_client_server) 33 { 34 if (CServer::Server.get() != NULL) 35 CServer::Server = boost::shared_ptr<CServer>(new CServer(comm_client_server)); 36 return (CServer::GetServer()); 37 } 38 39 ///-------------------------------------------------------------- 40 41 boost::shared_ptr<CServer> CServer::GetServer(void) 42 { 43 return (CServer::Server); 44 } 21 45 22 46 //--------------------------------------------------------------- … … 74 98 this->updateCalendar(lbuffer); 75 99 continue; 100 case (2) : 101 this->setTimestep(lbuffer); 102 continue; 76 103 default : 77 104 ERROR("CServer::run(void)", … … 121 148 comm::CMPIManager::Barrier(); 122 149 } 123 150 151 //-------------------------------------------------------------- 152 153 void CServer::setTimestep(const std::vector<CLinearBuffer> & buffer)// manager 1, method 2 154 { 155 boost::shared_ptr<CContext> context = 156 CObjectFactory::GetObject<CContext>(CObjectFactory::GetCurrentContextId()); 157 boost::shared_ptr<data::CDataTreatment> dtreat = context->getDataTreatment(); 158 159 StdString durationstr; 160 for (StdSize i = 0; i < buffer.size(); i++) 161 { 162 StdString durationstr_ = buffer[i].getString(3); 163 if (durationstr.compare(durationstr_) != 0 && (i != 0)) 164 { 165 ERROR("CServer::setTimestep(const std::vector<CLinearBuffer> & buffer)", 166 << "[ durationstr 1 = " << durationstr << ", " 167 << "[ durationstr 2 = " << durationstr_ << "] " 168 << " Modification de timestep désynchronisé !"); 169 } 170 else durationstr = durationstr_; 171 172 } 173 std::cout << "setTimestep called " << durationstr << std::endl; 174 dtreat->set_timestep(date::CDuration::FromString(durationstr)); 175 } 176 124 177 //-------------------------------------------------------------- 125 178 … … 141 194 } 142 195 std::cout << "setContext called " << contextId << std::endl; 196 CTreeManager::SetCurrentContextId(contextId); 143 197 } 144 198 … … 147 201 void CServer::updateCalendar(const std::vector<CLinearBuffer> & buffer) // manager 1, method 1 148 202 { 203 boost::shared_ptr<CContext> context = 204 CObjectFactory::GetObject<CContext>(CObjectFactory::GetCurrentContextId()); 205 boost::shared_ptr<data::CDataTreatment> dtreat = context->getDataTreatment(); 206 149 207 int timestep = -1; 150 208 for (StdSize i = 0; i < buffer.size(); i++) … … 161 219 } 162 220 std::cout << "updateCalendar called " << timestep <<std::endl; 221 dtreat->update_calendar(timestep); 163 222 } 164 223 … … 167 226 void CServer::writeData(const std::vector<CLinearBuffer> & buffer, int prec) // manager 2, method 0 - 1 168 227 { 169 StdString fieldId; 228 boost::shared_ptr<CContext> context = 229 CObjectFactory::GetObject<CContext>(CObjectFactory::GetCurrentContextId()); 230 boost::shared_ptr<data::CDataTreatment> dtreat = context->getDataTreatment(); 231 232 StdString fieldId, fileId; 170 233 for (StdSize i = 0; i < buffer.size(); i++) 171 234 { 172 235 StdString fieldId_ = buffer[i].getString(3); 236 StdString fileId_ = buffer[i].getString(4); 237 173 238 if (fieldId.compare(fieldId_) != 0 && (i != 0)) 174 239 { … … 178 243 << " Ecriture des données désynchronisée !"); 179 244 } 180 else fieldId = fieldId_; 245 else fieldId = fieldId_; 246 247 if (fileId.compare(fileId_) != 0 && (i != 0)) 248 { 249 ERROR("CServer::writeData(const std::vector<CLinearBuffer> & buffer, int prec)", 250 << "[fileId 1 = " << fileId << ", " 251 << " fileId 2 = " << fileId_ << "] " 252 << " Ecriture des données désynchronisée !"); 253 } 254 else fileId = fileId_; 181 255 } 182 256 … … 185 259 std::deque<ARRAY(float, 1)> dataArray(buffer.size()); 186 260 for (StdSize i = 0; i < buffer.size(); i++) 187 dataArray[i] = buffer[i].getFloatArray(4); 188 261 dataArray[i] = buffer[i].getFloatArray(5); 189 262 std::cout << "writeData called (float) " << fieldId << ", " << dataArray[0] << std::endl; 263 // Jamais atteint car les données sont transférées en tant que double 190 264 return; 191 265 } … … 194 268 std::deque<ARRAY(double, 1)> dataArray(buffer.size()); 195 269 for (StdSize i = 0; i < buffer.size(); i++) 196 dataArray[i] = buffer[i].getDoubleArray(4); 197 270 dataArray[i] = buffer[i].getDoubleArray(5); 198 271 std::cout << "writeData called (double) " << fieldId << ", " << dataArray[0] << std::endl; 272 dtreat->write_data(fieldId, fileId, dataArray); 199 273 return; 200 274 }
Note: See TracChangeset
for help on using the changeset viewer.