summaryrefslogtreecommitdiff
path: root/i/simulotron/src/aiguillage/aiguillage.cc
diff options
context:
space:
mode:
Diffstat (limited to 'i/simulotron/src/aiguillage/aiguillage.cc')
-rw-r--r--i/simulotron/src/aiguillage/aiguillage.cc16
1 files changed, 13 insertions, 3 deletions
diff --git a/i/simulotron/src/aiguillage/aiguillage.cc b/i/simulotron/src/aiguillage/aiguillage.cc
index 95bbad1..6292ce7 100644
--- a/i/simulotron/src/aiguillage/aiguillage.cc
+++ b/i/simulotron/src/aiguillage/aiguillage.cc
@@ -28,13 +28,20 @@
#include <stdexcept>
-/// Constructeur
+/// Constructeur client
Aiguillage::Aiguillage(const std::string & address, int port, const std::string & name)
:gst_(address, port)
{
setName(name);
}
+/// Constructeur serveur
+Aiguillage::Aiguillage(SocketServer & socket, const std::string & name)
+ :gst_(socket)
+{
+ setName(name);
+}
+
/// Envoie un paquet en rajoutant les infos de sources et de provenance
void
Aiguillage::send(const GSMessage & gsm, const std::string & source,
@@ -55,10 +62,13 @@ Aiguillage::send(const GSMessage & gsm, const std::string & source,
int
Aiguillage::receive(GSMessage & gsm, std::string & source, std::string & dest)
{
+ std::string tmp;
if(gst_.getGS(gsm) != 0)
return -1;
- gsm.getString(source, 8);
- gsm.getString(dest, 8);
+ gsm.getString(tmp, 8);
+ source = tmp.c_str();
+ gsm.getString(tmp, 8);
+ dest = tmp.c_str();
gsm.delBeforeIt();
return 0;
}