X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/65bf2eef7ac487329a3af3cd1c06e7957afc3a6c..1767eccd7e3ea6de4101d6d29c1d29ac0fba2a51:/Server/src/connection.cpp?ds=sidebyside diff --git a/Server/src/connection.cpp b/Server/src/connection.cpp index 086548a..31aaf1a 100644 --- a/Server/src/connection.cpp +++ b/Server/src/connection.cpp @@ -25,16 +25,78 @@ // $Id$ // -#include "connection.h" +#include "plaqui/server/connection.h" #include +#ifdef DEBUG +# include +#endif // DEBUG -using namespace Plaqui; +using namespace std; -Connection::Connection(const sockinetbuf& sb): - socket(sb) { +namespace PlaQui { + +namespace Server { + +Connection::~Connection(void) { +#ifdef DEBUG + cerr << __FILE__ << "(" << __LINE__ << ")" + << ": destructor." << endl; +#endif // DEBUG +} + +Connection::Connection(const sockbuf::sockdesc& sd): + socket(sd) { +#ifdef DEBUG + cerr << __FILE__ << "(" << __LINE__ << ")" + << ": sd = " << sd.sock; +#endif // DEBUG + host = socket->peerhost(); + port = socket->peerport(); +#ifdef DEBUG + cerr << " | host = " << host << " | port = " << port << endl; +#endif // DEBUG +} + +Connection::Connection(const sockbuf::type& type, const std::string& host, + const Port& port): socket(type), host(host), port(port) { +#ifdef DEBUG + cerr << __FILE__ << "(" << __LINE__ << ")" + << ": type = " << type << " | host = " << host + << " | port = " << port << endl; +#endif // DEBUG +} + +Connection::Connection(const std::string& host, const Port& port): + host(host), port(port) { +#ifdef DEBUG + cerr << __FILE__ << "(" << __LINE__ << ")" + << ": host = " << host << " | port = " << port << endl; +#endif // DEBUG +} + +void Connection::finish(void) { +#ifdef DEBUG + cerr << __FILE__ << "(" << __LINE__ << ")" + << ": finish();" << endl; +#endif // DEBUG + Runnable::finish(); + try { + // Para que el socket retorne el control, cierro sus canales de E/S. + socket->shutdown(sockbuf::shut_readwrite); + } catch (const sockerr& e) { + signal_error().emit(e.serrno(), e.errstr()); + } } -Connection::Connection(sockbuf::type type): - socket(type) { +const string Connection::get_host(void) const { + return host; } +const Connection::Port Connection::get_port(void) const { + return port; +} + +} // namespace Server + +} // namespace PlaQui +