X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=senf%2FSocket%2FSocketProtocol.hh;h=b1193934558cad57680bdcd25da126fe34742b12;hb=d0c31526ac12869eed085891e3ae13e8b21072e6;hp=8538b17869b1f4f4fda1b940f0b3467586d12445;hpb=4d7356cbd92801bc0c4bec27fffe3b0024807185;p=senf.git
diff --git a/senf/Socket/SocketProtocol.hh b/senf/Socket/SocketProtocol.hh
index 8538b17..b119393 100644
--- a/senf/Socket/SocketProtocol.hh
+++ b/senf/Socket/SocketProtocol.hh
@@ -87,12 +87,12 @@
#include "SocketHandle.ih"
//#include "SocketProtocol.mpp"
-///////////////////////////////hh.p////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
namespace senf {
/// \addtogroup protocol_group
- /// @{
+ //\{
class SocketPolicyBase;
@@ -103,16 +103,16 @@ namespace senf {
\attention SocketProtocol must \e always be inherited using public \e virtual inheritance.
*/
- class SocketProtocol
+ class SocketProtocol
: boost::noncopyable
{
public:
- ///////////////////////////////////////////////////////////////////////////
+ //-////////////////////////////////////////////////////////////////////////
// Types
- ///////////////////////////////////////////////////////////////////////////
+ //-////////////////////////////////////////////////////////////////////////
///\name Structors and default members
- ///@{
+ //\{
SocketProtocol();
virtual ~SocketProtocol() = 0;
@@ -121,13 +121,13 @@ namespace senf {
// no copy
// no conversion constructors
- ///@}
- ///////////////////////////////////////////////////////////////////////////
+ //\}
+ //-////////////////////////////////////////////////////////////////////////
virtual SocketPolicyBase const & policy() const = 0;
///< Access the policy instance
- ///////////////////////////////////////////////////////////////////////////
+ //-////////////////////////////////////////////////////////////////////////
// Virtual interface
virtual unsigned available() const = 0;
@@ -138,7 +138,7 @@ namespace senf {
in a single (non-blocking) read operation. If the
socket does not support reading (viz. NotReadablePolicy
is set), this member should always return \c 0.
-
+
Depending on the protocol, it may not be possible to
return a good value. In this case, an upper bound may
be returned (e.g.: When reading from a socket which
@@ -159,16 +159,16 @@ namespace senf {
virtual void close(); ///< Close socket
/**< This override will automatically \c shutdown() the
socket whenever it is closed.
- \throws senf::SystemException
+ \throws senf::SystemException
\fixme Move into (at least) BSDSOcketProtocol */
-
+
virtual void terminate() const; ///< Forcibly close socket
/**< This override will automatically \c shutdown() the
socket whenever it is called. Additionally it will
disable SO_LINGER to ensure, that v_terminate will not
block. Like the overriden method, this member will ignore
failures and will never throw. It is therefore safe to be
- called from a destructor.
+ called from a destructor.
\fixme Move into (at least) BSDSocketProtocol */
virtual void state(SocketStateMap & map, unsigned lod) const;
@@ -180,7 +180,7 @@ namespace senf {
\a lod value with a default value of 0. The
interpretation of the \a lod value is completely
implementation defined.
-
+
Every class derived from SocketProtocol should
reimplement state(). The reimplemented method should
call (all) baseclass-implementations of this
@@ -191,21 +191,21 @@ namespace senf {
keys are interpreted as hierarchical strings with '.'
as a separator (like hostnames or struct or class
members). They are automatically sorted correctly.
-
+
The values are std:string with one additional feature:
they allow assignment or conversion from *any* type as
long as that type is streamable. This simplifies
assigning non-string values to the map:
-
+
\code
map["socket.protocol.ip.address"] << peer();
map["socket.protocol.tcp.backlog"] << backlog();
\endcode
-
+
This will work even if peer() returns an ip-address
object or backlog() returns an integer. The values are
automatically converted to their string representation.
-
+
Additionally, if the slot the date is written to is not
empty, the \<\< operator will add add a comma
as separator. */
@@ -237,7 +237,7 @@ namespace senf {
friend class SocketBody;
};
-
+
template class ClientSocketHandle;
template class ServerSocketHandle;
@@ -256,7 +256,7 @@ namespace senf {
protocols themselves, they are combined to build concrete protocols. This structure will
remove a lot of code duplication. It is important to ensure, that the protocol facets do not
overlap, since otherwise there will be problems resolving overlapping members.
-
+
\doc init_client init_server
*/
template
@@ -264,14 +264,14 @@ namespace senf {
: public virtual SocketProtocol
{
public:
- ///////////////////////////////////////////////////////////////////////////
+ //-////////////////////////////////////////////////////////////////////////
// Types
typedef SocketPolicy Policy; ///< The protocols policy
- ///////////////////////////////////////////////////////////////////////////
+ //-////////////////////////////////////////////////////////////////////////
///\name Structors and default members
- ///@{
+ //\{
~ConcreteSocketProtocol() = 0;
@@ -279,13 +279,13 @@ namespace senf {
// no copy
// no conversion constructors
- ///@}
- ///////////////////////////////////////////////////////////////////////////
+ //\}
+ //-////////////////////////////////////////////////////////////////////////
Policy const & policy() const;
-
+
protected:
- ClientSocketHandle clientHandle() const;
+ ClientSocketHandle clientHandle() const;
///< Get client handle for associated socket
/**< Returns a client handle for the socket associated with
this protocol instance */
@@ -302,10 +302,10 @@ namespace senf {
Policy policy_;
};
- /// @}
+ //\}
}
-///////////////////////////////hh.e////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
#include "SocketProtocol.cci"
//#include "SocketProtocol.ct"
#include "SocketProtocol.cti"