Remove dynamic exceptions
[anna.git] / source / comm / transport / DirectTransport.cpp
1 // ANNA - Anna is Not Nothingness Anymore                                                         //
2 //                                                                                                //
3 // (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo                         //
4 //                                                                                                //
5 // See project site at http://redmine.teslayout.com/projects/anna-suite                           //
6 // See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
7
8
9 #include <anna/comm/DirectTransport.hpp>
10 #include <anna/comm/Message.hpp>
11
12 using namespace anna;
13
14 comm::TransportFactoryImpl <comm::DirectTransport> comm::DirectTransport::st_transportFactory;
15
16 comm::DirectTransport::DirectTransport() :
17   comm::Transport() {
18   setInputMessage(new Message());
19 }
20
21 comm::DirectTransport::~DirectTransport() {
22   delete getInputMessage();
23 }
24
25 //-------------------------------------------------------------------------------------------
26 // Recordar que 'message' esta alojado en la memoria intermedia que el comm::ClientSocket
27 // tiene reservada para ir guardando los mensajes en proceso => no es una copia si no una
28 // referencia un puntero.
29 //
30 // (1) Transfiere la referencia de message al cuerpo del mensaje. Ojo!! tampoco hace copia.
31 //-------------------------------------------------------------------------------------------
32 const comm::Message* comm::DirectTransport::decode(const DataBlock& data)
33 noexcept(false) {
34   return getInputMessage()->setBody(data);
35 }
36
37 const DataBlock& comm::DirectTransport::code(comm::Message& message)
38 noexcept(false) {
39   return a_forCode = message.code();
40 }
41
42