Definition at line 131 of file StateServer.cpp. 00132 { 00133 bool found = false; 00134 00135 // create message 00136 Message message(listener->readFromBuffer()); 00137 00138 // try to cast in protocol objects 00139 00140 // ServiceRequest 00141 if(!found){ 00142 try { 00143 AliveStatement tmp(message); 00144 found = true; 00145 std::string logstring; 00146 std::stringstream sstr; 00147 int switcher = clm->callback(tmp.getSessionId()); 00148 00149 if (switcher == 0){ 00150 StopCommand stopc; 00151 sstr << tmp.getSessionId(); 00152 logstring = "StopCommand ID:" ; 00153 logstring += sstr.str() ; 00154 logstring += " ERR AliveStatement ID not found in vector Client IP:" ; 00155 logstring += listener->getClientIP(); 00156 logstring += " Port:" ; 00157 logstring += listener->getClientPort(); 00158 outputserver->osPrint(logstring); 00159 listener->clearBuffer(); 00160 listener->writeToBuffer(stopc.getFormatString()); 00161 } 00162 if (switcher == 1){ 00163 GoOnCommand goc; 00164 sstr << tmp.getSessionId(); 00165 logstring = "GoOnCommand ID:" ; 00166 logstring += sstr.str() ; 00167 logstring += " GoOnCommand Client IP: " ; 00168 logstring += listener->getClientIP(); 00169 logstring += " Port:" ; 00170 logstring += listener->getClientPort(); 00171 outputserver->osPrint(logstring); 00172 listener->clearBuffer(); 00173 listener->writeToBuffer(goc.getFormatString()); 00174 } 00175 if (switcher == 2){ 00176 StopCommand sc; 00177 sstr << tmp.getSessionId(); 00178 logstring = "StopCommand ID:" ; 00179 logstring += sstr.str() ; 00180 logstring += "is in USE Client IP: " ; 00181 logstring += listener->getClientIP(); 00182 logstring += " Port:" ; 00183 logstring += listener->getClientPort(); 00184 outputserver->osPrint(logstring); 00185 listener->clearBuffer(); 00186 listener->writeToBuffer(sc.getFormatString()); 00187 } 00188 listener->write(); 00189 listener->clearBuffer(); 00190 00191 00192 } 00193 catch ( MessageCastException& e ) {} 00194 } 00195 00196 if(!found){ 00197 listener->clearBuffer(); 00198 } 00199 00200 } // receiveAndSend
|
1.5.1