-// ANNA - Anna is Not 'N' Anymore
-//
-// (c) Copyright 2005-2014 Eduardo Ramos Testillano & Francisco Ruiz Rayo
-//
-// https://bitbucket.org/testillano/anna
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions
-// are met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-// Authors: eduardo.ramos.testillano@gmail.com
-// cisco.tierra@gmail.com
+// ANNA - Anna is Not Nothingness Anymore //
+// //
+// (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo //
+// //
+// See project site at http://redmine.teslayout.com/projects/anna-suite //
+// See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
#ifndef anna_comm_Socket_hpp
Devuelve el descriptor de fichero asociado a este socket.
@return El descriptor de fichero asociado a este socke. Si el socket no ha sido creado devolver�-1.
*/
- int getfd() const throw() { return a_fd; }
+ int getfd() const { return a_fd; }
/**
Devuelve el tipo de socket.
\return El tipo de socket.
*/
- Type::_v getType() const throw() { return a_type; }
+ Type::_v getType() const { return a_type; }
/**
Devuelve el dominio de este socket.
\return El dominio de este socket.
*/
- Domain::_v getDomain() const throw() { return a_domain; }
+ Domain::_v getDomain() const { return a_domain; }
/**
Devuelve la categoria asociada a este socket.
\return La categoria asociada a este socket.
*/
- int getCategory() const throw() { return a_category; }
+ int getCategory() const { return a_category; }
/**
Informa sobre si el socket es capaz de procesar un determinado protocolo de transporte.
\return \em true si soporta el nombre de protocolo recibido como parametro o \em false
en otro caso.
*/
- bool support(const char* transportClassName) const throw();
+ bool support(const char* transportClassName) const ;
/**
Devuelve el estado de la conexion de este socket.
@return \em true si el servidor de socket ha sido conectado o \em false en otro caso.
*/
- bool isBound() const throw() { return a_isBound; }
+ bool isBound() const { return a_isBound; }
/**
Devuelve el estado del socket.
@return \em true si el socket este abierto o \em false en otro caso.
*/
- bool isOpened() const throw() { return a_fd != -1; }
+ bool isOpened() const { return a_fd != -1; }
/**
* Devuelve \em false si el socket usa un protocolo de comunicaciones seguro o \em false
* \return \em false si el socket usa un protocolo de comunicaciones seguro o \em false
* en otro caso.
*/
- virtual bool isSecure() const throw() { return false; }
+ virtual bool isSecure() const { return false; }
/**
Devuelve la direccion local del socket.
\return La direccion local del socket.
*/
- const AccessPoint& getLocalAccessPoint() const throw() { return a_localAccessPoint; }
+ const AccessPoint& getLocalAccessPoint() const { return a_localAccessPoint; }
/**
Devuelve la factoria de la capa de transporte usada en este socket.
\return la factoria de la capa de transporte usada en este socket.
*/
- TransportFactory* getTransportFactory() const throw() { return a_transportFactory; }
+ TransportFactory* getTransportFactory() const { return a_transportFactory; }
/**
Devuelve la factoria de receptores usada en este socket.
\return la factoria de receptores usada en este socket.
*/
- ReceiverFactory* getReceiverFactory() throw() { return a_receiverFactory; }
+ ReceiverFactory* getReceiverFactory() { return a_receiverFactory; }
/**
Activa o desactiva el modo de bloqueo.
\param blockingMode \em true si queremos activar el bloqueo o \em false en otro caso.
@return El modo de bloqueo establecido antes de invocar este masodo.
*/
- bool setBlockingMode(const bool blockingMode) throw(RuntimeException);
+ bool setBlockingMode(const bool blockingMode) noexcept(false);
/**
Activa o desactiva el modo de reuso de la direccion.
halla dejado de funcionar.
\return El modo de reuso establecido antes de invocar a este metodo.
*/
- bool setReuseMode(const bool reuseMode) throw(RuntimeException);
+ bool setReuseMode(const bool reuseMode) noexcept(false);
/**
Establece la capa de transporte usada en este socket.
\warning Exclusivamente uso interno.
*/
- void setTransportFactory(TransportFactory* transportFactory) throw() { a_transportFactory = transportFactory; }
+ void setTransportFactory(TransportFactory* transportFactory) { a_transportFactory = transportFactory; }
/**
Establece la factoria de receptores usada por este socket.
\param receiverFactory Factoria de receptores desde la que obtener el receptor asociado a este Socket.
*/
- void setReceiverFactory(ReceiverFactory& receiverFactory) throw() { a_receiverFactory = &receiverFactory; }
+ void setReceiverFactory(ReceiverFactory& receiverFactory) { a_receiverFactory = &receiverFactory; }
/**
Establece la categoria de este socket.
a partir de un anna::comm::ServerSocket comparten su misma categoria.
\param category Categoria asociada a este socket.
*/
- void setCategory(const int category) throw() { a_category = category; }
+ void setCategory(const int category) { a_category = category; }
/**
Cierra este socket. Si el socket no ha sido creado no tendra ningn efecto.
*/
- void close() throw();
+ void close() ;
/**
Intenta la asociar este socket con los parametros indicados en el constructor.
*/
- virtual void bind() throw(RuntimeException);
+ virtual void bind() noexcept(false);
/**
Devuelve una cadena con la informacion referente a este socket.
@return Una cadena con la informacion referente a este socket.
*/
- virtual std::string asString() const throw();
+ virtual std::string asString() const ;
/**
Devuelve un nodo XML con la informacion referente a este objeto.
\param parent Nodo XML a partir del cual introducir la informacion.
\return Un nodo XML con la informacion referente a este objeto.
*/
- virtual xml::Node* asXML(xml::Node* parent) const throw(RuntimeException);
+ virtual xml::Node* asXML(xml::Node* parent) const noexcept(false);
protected:
const Domain::_v a_domain;
/**
Abre el socket.
*/
- void open() throw(RuntimeException);
+ void open() noexcept(false);
/**
Cierra este socket. Si el socket no ha sido creado no tendra ningn efecto.
*/
- virtual void do_close() throw() { ::close(a_fd); }
+ virtual void do_close() { ::close(a_fd); }
/**
Asocia este Socket a la direccion recibida como parametro.
\warning Exclusivamente uso interno.
*/
- virtual int do_bind(const struct sockaddr*, const int) throw(RuntimeException);
+ virtual int do_bind(const struct sockaddr*, const int) noexcept(false);
/**
Devuelve la cadena correspondiente a la notificacion recibida como parametro.
\param v Codigo de notificacion.
\return La cadena correspondiente a la notificacion recibida como parametro.
*/
- static const char* asText(const Notify::_v v) throw();
+ static const char* asText(const Notify::_v v) ;
private:
bool a_reuseMode;
#define anna_comm_socket_check(a,b) \
if ((a) < 0) { \
- const int xerrno = errno; \
std::string msg (asString ()); \
msg += " | "; \
msg += b; \