Jean-Yves Didier

Mise à jour de l'API de réseau

...@@ -21,11 +21,24 @@ void ARCS::Network::logError(int errorCode,QString moreInfo) ...@@ -21,11 +21,24 @@ void ARCS::Network::logError(int errorCode,QString moreInfo)
21 errors[errorCode].arg(moreInfo)); 21 errors[errorCode].arg(moreInfo));
22 } 22 }
23 23
24 +void ARCS::Network::logInformation(QString moreInfo)
25 +{
26 + ARCSLog::getInstance()->logInformation("Net",moreInfo);
27 +}
28 +
29 +
24 QHash<int,QString> ARCS::Network::initErrors() 30 QHash<int,QString> ARCS::Network::initErrors()
25 { 31 {
26 QHash<int,QString> res; 32 QHash<int,QString> res;
27 33
28 /////////////////////////////////////////////////////////////////////////// 34 ///////////////////////////////////////////////////////////////////////////
35 + // general errors
36 + res[600]="Null frame recieved";
37 + res[601]="Listening on ports 2020 to 2084 failed";
38 + res[602]="Cannot listen to port %1";
39 + res[603]="Not bound to any interface";
40 +
41 + ///////////////////////////////////////////////////////////////////////////
29 // errors on client side 42 // errors on client side
30 res[400]="CALL_REQUEST: wrong id (%1)"; 43 res[400]="CALL_REQUEST: wrong id (%1)";
31 res[401]="CALL_REQUEST: wrong port number (%1)"; 44 res[401]="CALL_REQUEST: wrong port number (%1)";
......
...@@ -10,6 +10,7 @@ namespace ARCS { ...@@ -10,6 +10,7 @@ namespace ARCS {
10 namespace Network { 10 namespace Network {
11 extern const QHash<int,QString> errors; 11 extern const QHash<int,QString> errors;
12 void logError(int errorCode, QString moreInfo=QString::null); 12 void logError(int errorCode, QString moreInfo=QString::null);
13 + void logInformation(QString moreInfo);
13 } 14 }
14 } 15 }
15 16
......
...@@ -27,7 +27,7 @@ void ARCSNetworkServerThread::handleRequest(QTcpSocket* socket) ...@@ -27,7 +27,7 @@ void ARCSNetworkServerThread::handleRequest(QTcpSocket* socket)
27 //std::cout << "Recieved request" << request->getType() << std::endl; 27 //std::cout << "Recieved request" << request->getType() << std::endl;
28 if (request == 0) 28 if (request == 0)
29 { 29 {
30 - std::cerr << "[Server] Null frame recieved !" << std::endl; 30 + ARCS::Network::logError(600);
31 return ; 31 return ;
32 } 32 }
33 33
...@@ -72,10 +72,9 @@ void ARCSNetworkServerThread::handleConnectRequest(ARCSNetworkConnectRequest* an ...@@ -72,10 +72,9 @@ void ARCSNetworkServerThread::handleConnectRequest(ARCSNetworkConnectRequest* an
72 // 1 : requete du slot de l'autre composant. 72 // 1 : requete du slot de l'autre composant.
73 QTcpSocket* socketDest = new QTcpSocket(); 73 QTcpSocket* socketDest = new QTcpSocket();
74 socketDest->connectToHost(hostDest, portDest); 74 socketDest->connectToHost(hostDest, portDest);
75 - //std::cout <<"le numro de port"<< portDest << std::endl;
76 if (!socketDest->waitForConnected(ARCSNetworkFrame::TimeOut)) 75 if (!socketDest->waitForConnected(ARCSNetworkFrame::TimeOut))
77 { 76 {
78 - std::cerr << "Erreur 418 : CONNECT_REQUEST error : depassement du time out " << qPrintable(socketDest->errorString()) << std::endl; 77 + ARCS::Network::logError(418,socketDest->errorString());
79 return ; 78 return ;
80 } 79 }
81 80
...@@ -83,19 +82,25 @@ void ARCSNetworkServerThread::handleConnectRequest(ARCSNetworkConnectRequest* an ...@@ -83,19 +82,25 @@ void ARCSNetworkServerThread::handleConnectRequest(ARCSNetworkConnectRequest* an
83 ARCSNetworkFrame request(ARCSNetworkFrame::SLOT_REQUEST); 82 ARCSNetworkFrame request(ARCSNetworkFrame::SLOT_REQUEST);
84 ((ARCSNetworkSlotRequest*)request.getData())->setSlot(ancr->getSlot()); 83 ((ARCSNetworkSlotRequest*)request.getData())->setSlot(ancr->getSlot());
85 //std::cout << "liste de slots reu " << qPrintable(ancr->getSlot()) << std::endl; 84 //std::cout << "liste de slots reu " << qPrintable(ancr->getSlot()) << std::endl;
86 - if ( !(request.isValid())) std::cerr <<"Erreur 436 : SLOT_REQUEST error : Trame invalide"<< std::endl; 85 + /** implementation sans aucun sens
86 + if ( !(request.isValid()))
87 + {
88 + std::cerr <<"Erreur 436 : SLOT_REQUEST error : Trame invalide"<< std::endl;
89 + }*/
87 request.writeFrame(socketDest); 90 request.writeFrame(socketDest);
88 91
89 ARCSNetworkFrame* response = ARCSNetworkFrame::readFrame(socketDest); 92 ARCSNetworkFrame* response = ARCSNetworkFrame::readFrame(socketDest);
90 if (response ) 93 if (response )
91 { 94 {
92 if (response->getType() != ARCSNetworkFrame::CONNECT_RESPONSE) 95 if (response->getType() != ARCSNetworkFrame::CONNECT_RESPONSE)
93 - std::cerr << "Erreur 416 : CONNECT_RESPONSE error :invalid response recieved to connect request!" << std::endl; 96 + //! \todo process if it is an error frame
97 + ARCS::Network::logError(416);
94 else 98 else
95 id = ((ARCSNetworkConnectResponse*)response->getData())->getId(); 99 id = ((ARCSNetworkConnectResponse*)response->getData())->getId();
96 } 100 }
97 else 101 else
98 - std::cerr << "Erreur 417 : CONNECT_RESPONSE error : Null connect response recieved ! " << std::endl; 102 + ARCS::Network::logError(417);
103 +
99 104
100 socketDest->disconnectFromHost(); 105 socketDest->disconnectFromHost();
101 if (response) 106 if (response)
...@@ -108,7 +113,8 @@ void ARCSNetworkServerThread::handleConnectRequest(ARCSNetworkConnectRequest* an ...@@ -108,7 +113,8 @@ void ARCSNetworkServerThread::handleConnectRequest(ARCSNetworkConnectRequest* an
108 ARCSNetworkFrame frame(ARCSNetworkFrame::ACK_RESPONSE); 113 ARCSNetworkFrame frame(ARCSNetworkFrame::ACK_RESPONSE);
109 ((ARCSNetworkAckResponse*)frame.getData())->setId(id); // utilit du id ? 114 ((ARCSNetworkAckResponse*)frame.getData())->setId(id); // utilit du id ?
110 frame.writeFrame(socket); 115 frame.writeFrame(socket);
111 - /*if ((QString*)ARCSNetworkServer::getInstance()->getSignals()!=ancr->getSignal()) 116 + /** implementation sans aucun sens
117 + if ((QString*)ARCSNetworkServer::getInstance()->getSignals()!=ancr->getSignal())
112 { 118 {
113 std::cerr << "Erreur 444 :SIGNAL_REQUEST error : signal name not found " << qPrintable(socket->errorString()) << std::endl; 119 std::cerr << "Erreur 444 :SIGNAL_REQUEST error : signal name not found " << qPrintable(socket->errorString()) << std::endl;
114 return ; 120 return ;
...@@ -235,18 +241,18 @@ void ARCSNetworkServer::run() ...@@ -235,18 +241,18 @@ void ARCSNetworkServer::run()
235 while(!server->listen(QHostAddress::Any, i) && i < 2084) i++; 241 while(!server->listen(QHostAddress::Any, i) && i < 2084) i++;
236 242
237 if (i == 2084) 243 if (i == 2084)
238 - std::cerr << "[Server] listening on ports 2020 to 2084 failed" << std::endl; 244 + ARCS::Network::logError(601);
239 else 245 else
240 { 246 {
241 port = i; 247 port = i;
242 - std::cout << "[Server] listening to port " << port << std::endl; 248 + ARCS::Network::logInformation("Listening to port" + QString::number(port));
243 } 249 }
244 } 250 }
245 else 251 else
246 { 252 {
247 if (!server->listen(QHostAddress::Any, port)) 253 if (!server->listen(QHostAddress::Any, port))
248 { 254 {
249 - std::cerr << "[Server] Cannot listen to port " << port << " error: " << qPrintable(server->errorString()); 255 + ARCS::Network::logError(602,QString::number(port)+" (" + server->errorString() + ").");
250 port = 0; 256 port = 0;
251 } 257 }
252 } 258 }
...@@ -271,7 +277,8 @@ void ARCSNetworkServer::getInterface(QStringList & slotList, QStringList & signa ...@@ -271,7 +277,8 @@ void ARCSNetworkServer::getInterface(QStringList & slotList, QStringList & signa
271 slotList = interface->getSlots(); 277 slotList = interface->getSlots();
272 signalList= interface->getSignals(); 278 signalList= interface->getSignals();
273 } 279 }
274 - else std::cerr <<"Erreur can not get the interface"<< std::endl; 280 + else
281 + ARCS::Network::logError(603);
275 282
276 } 283 }
277 284
...@@ -311,11 +318,13 @@ int ARCSNetworkServer::createSignalStub(QString s) ...@@ -311,11 +318,13 @@ int ARCSNetworkServer::createSignalStub(QString s)
311 proxySignalsMap.insert(s, id); 318 proxySignalsMap.insert(s, id);
312 if (interface) 319 if (interface)
313 ARCSAbstractComponent::connect(s,interface, s); 320 ARCSAbstractComponent::connect(s,interface, s);
314 - //std::cout <<"connexion russi"<< std::endl; 321 + else
322 + ARCS::Network::logError(603);
323 + /** bricolage hasardeux
315 if (!interface) 324 if (!interface)
316 { 325 {
317 std::cerr <<"Erreur 415 : CONNECT_REQUEST error : slot name is wrong : pas de cration de proxysignal" << std::endl; 326 std::cerr <<"Erreur 415 : CONNECT_REQUEST error : slot name is wrong : pas de cration de proxysignal" << std::endl;
318 - } 327 + }*/
319 } 328 }
320 329
321 return id; 330 return id;
...@@ -333,7 +342,10 @@ int ARCSNetworkServer::createSlotStub(QString signal, int id, quint16 port,QStri ...@@ -333,7 +342,10 @@ int ARCSNetworkServer::createSlotStub(QString signal, int id, quint16 port,QStri
333 342
334 if (interface) 343 if (interface)
335 interface->connect(signal, this, signal); 344 interface->connect(signal, this, signal);
336 - else std::cerr <<"Erreur 435x : SLOT_REQUEST error : slot name is wrong: pas de cration de proxyslot" << std::endl; 345 + else
346 + ARCS::Network::logError(603);
347 +
348 + /*std::cerr <<"Erreur 435x : SLOT_REQUEST error : slot name is wrong: pas de cration de proxyslot" << std::endl;*/
337 349
338 return 0; 350 return 0;
339 } 351 }
......