Toggle navigation
Toggle navigation
This project
Loading...
Sign in
arcs
/
ARCS2-Components
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
Jean-Yves Didier
2013-09-05 16:33:59 +0000
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
e1e3d76185b81dfeadfc6cf4ca0ec7d622ab8f5c
e1e3d761
1 parent
3e37b30e
Suppression des fuites mémoire.
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
16 additions
and
17 deletions
network/arcsnetworkcomponent.cpp
network/arcsnetworkframes.cpp
network/arcsnetworkproxyslot.cpp
network/arcsnetworkcomponent.cpp
View file @
e1e3d76
This diff is collapsed. Click to expand it.
network/arcsnetworkframes.cpp
View file @
e1e3d76
#include "arcsnetworkframes.h"
#include <QDataStream>
#include <QByteArray>
#include <iostream>
#include <arcs/arcslog.h>
namespace
ARCS
{
...
...
@@ -43,6 +42,9 @@ QHash<int,QString> ARCS::Network::initErrors()
res
[
400
]
=
"CALL_REQUEST: wrong id (%1)"
;
res
[
401
]
=
"CALL_REQUEST: wrong port number (%1)"
;
res
[
404
]
=
"CALL_REQUEST: wrong signal name (%1)"
;
res
[
407
]
=
"CALL_REQUEST: network error (while connecting): '%1'"
;
res
[
408
]
=
"CALL_REQUEST: network error (while reading frame): '%1'"
;
res
[
409
]
=
"CALL_REQUEST: network error (while writing frame): '%1'"
;
res
[
405
]
=
"IFACE_REQUEST: time out with error '%1'"
;
res
[
409
]
=
"IFACE_REQUEST: network error (while writing frame): '%1'"
;
...
...
@@ -187,9 +189,6 @@ bool ARCSNetworkFrame::writeFrame(QIODevice* device)
device
->
write
(
block
);
return
device
->
waitForBytesWritten
(
TimeOut
);
/*{
std::cerr << "[Network] Didn't wait enough to write all bytes" << std::endl;
}*/
}
...
...
network/arcsnetworkproxyslot.cpp
View file @
e1e3d76
...
...
@@ -4,7 +4,7 @@
#include "arcsnetworkcomponent.h"
#include <arcs/arcsfactory.h>
#include <QTcpSocket>
#include <
iostream
>
#include <
QSharedPointer
>
ARCSNetworkProxySlot
::
ARCSNetworkProxySlot
(
ARCSAbstractComponent
*
cmp
,
QObject
*
parent
)
:
QObject
(
parent
)
{
...
...
@@ -40,27 +40,31 @@ int ARCSNetworkProxySlot::qt_metacall(QMetaObject::Call call,int id, void** argu
}
// call here slot with all its params.
Q
TcpSocket
*
socket
=
new
QTcpSocket
(
this
);
Q
SharedPointer
<
QTcpSocket
>
socket
(
new
QTcpSocket
(
this
)
);
socket
->
connectToHost
(
hostName
,
port
);
if
(
!
socket
->
waitForConnected
(
ARCSNetworkFrame
::
TimeOut
))
{
std
::
cerr
<<
"Erreur 408: CALL_REQUEST error: dpassement du time out "
<<
qPrintable
(
socket
->
errorString
())
<<
std
::
endl
;
std
::
cerr
<<
"Erreur 408: params are "
<<
qPrintable
(
hostName
)
<<
": "
<<
port
<<
" ("
<<
this
<<
")"
<<
std
::
endl
;
ARCS
::
Network
::
logError
(
407
,
socket
->
errorString
())
;
/*
std::cerr << "Erreur 408: params are " << qPrintable(hostName) << ": " << port
<< " (" << this << ")" << std::endl;
*/
return
-
1
;
}
// cration de la frame
ARCSNetworkFrame
frameRequest
(
ARCSNetworkFrame
::
CALL_REQUEST
);
((
ARCSNetworkCallRequest
*
)
frameRequest
.
getData
())
->
setParams
(
slotId
,
request
);
frameRequest
.
writeFrame
(
socket
);
ARCSNetworkFrame
*
response
=
ARCSNetworkFrame
::
readFrame
(
socket
);
if
(
!
frameRequest
.
writeFrame
(
socket
.
data
()))
{
ARCS
::
Network
::
logError
(
409
,
socket
->
errorString
());
return
-
1
;
}
ARCSNetworkFrame
*
response
=
ARCSNetworkFrame
::
readFrame
(
socket
.
data
());
//! \todo handle response appropriately
// traitement de response -> Non c'est juste pour attendre de manire bloquante !
socket
->
disconnectFromHost
();
if
(
response
)
delete
response
;
delete
socket
;
return
-
1
;
}
...
...
@@ -88,15 +92,11 @@ int ARCSNetworkProxySlot::prepareSlotConnect(QString , QString sltName, QString
if
(
anc
)
anc
->
requestSlotConnect
(
this
);
//! \todo insrer ici un traitement appropri
// else std::cerr <<"Erreur 415 : CONNECT_REQUEST error : erreur de connexion de slot" <<std::endl;
if
(
metaObject
()
->
indexOfSlot
(
qPrintable
(
sltName
))
!=
-
1
)
{
return
metaObject
()
->
indexOfSlot
(
qPrintable
(
sltName
));
}
// ceci n'est pas une relle erreur
//else std::cerr <<"Erreur 415 : CONNECT_REQUEST error : slot name is wrong" <<std::endl;
return
metaObject
()
->
methodCount
();
}
...
...
Please
register
or
login
to post a comment