Packets: Add StringParser ostream operation
[senf.git] / Socket / ServerSocketHandle.cti
index 0887c90..132625d 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 //
-// Copyright (C) 2006 
-// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
-// Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
-//     Stefan Bund <stefan.bund@fokus.fraunhofer.de>
+// Copyright (C) 2006
+// Fraunhofer Institute for Open Communication Systems (FOKUS)
+// Competence Center NETwork research (NET), St. Augustin, GERMANY
+//     Stefan Bund <g0dil@berlios.de>
 //
 // This program is free software; you can redistribute it and/or modify
 // it under the terms of the GNU General Public License as published by
 // Free Software Foundation, Inc.,
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
+/** \file
+    \brief ServerSocketHandle inline template implementation
+ */
+
 // Definition of inline template functions
 
 //#include "ServerSocketHandle.ih"
 #define prefix_ inline
 ///////////////////////////////cti.p///////////////////////////////////////
 
-template <class SocketPolicy>
+template <class SPolicy>
+prefix_ senf::ServerSocketHandle<SPolicy>::ServerSocketHandle()
+{}
+
+template <class SPolicy>
 template <class OtherPolicy>
-prefix_ satcom::lib::ServerSocketHandle<SocketPolicy>::
+prefix_ senf::ServerSocketHandle<SPolicy>::
 ServerSocketHandle(ServerSocketHandle<OtherPolicy> other,
-                   typename SocketHandle<SocketPolicy>::template IsCompatible<OtherPolicy>::type *)
-    : SocketHandle<SocketPolicy>(other,true)
+                   typename SocketHandle<SPolicy>::template IsCompatible<OtherPolicy>::type *)
+    : SocketHandle<SPolicy>(other,true)
 {}
 
-template <class SocketPolicy>
-prefix_  satcom::lib::ServerSocketHandle<SocketPolicy>::
-ServerSocketHandle(std::auto_ptr<SocketProtocol> protocol)
-    : SocketHandle<SocketPolicy>(protocol,true)
+template <class SPolicy>
+prefix_  senf::ServerSocketHandle<SPolicy>::
+ServerSocketHandle(std::auto_ptr<SocketBody> body)
+    : SocketHandle<SPolicy>(body)
 {}
 
-template <class SocketPolicy>
+template <class SPolicy>
 template <class OtherPolicy>
-prefix_ typename satcom::lib::SocketHandle<SocketPolicy>::template IsCompatible<OtherPolicy>::type const &
-satcom::lib::ServerSocketHandle<SocketPolicy>::operator=(ServerSocketHandle<OtherPolicy> other)
+prefix_ typename senf::SocketHandle<SPolicy>::template IsCompatible<OtherPolicy>::type const &
+senf::ServerSocketHandle<SPolicy>::operator=(ServerSocketHandle<OtherPolicy> other)
 {
     assign(other);
     return *this;
@@ -56,94 +64,94 @@ satcom::lib::ServerSocketHandle<SocketPolicy>::operator=(ServerSocketHandle<Othe
 ///////////////////////////////////////////////////////////////////////////
 // Server socket interface
 
-template <class Policy>
-prefix_ void satcom::lib::ServerSocketHandle<Policy>::bind(AddressParam addr)
+template <class SPolicy>
+prefix_ void senf::ServerSocketHandle<SPolicy>::bind(AddressParam addr)
 {
-    Policy::AddressingPolicy::bind(*this,addr);
+    SPolicy::AddressingPolicy::bind(*this,addr);
 }
 
-template <class Policy>
-prefix_ void satcom::lib::ServerSocketHandle<Policy>::listen(unsigned backlog)
+template <class SPolicy>
+prefix_ void senf::ServerSocketHandle<SPolicy>::listen(unsigned backlog)
 {
-    Policy::CommunicationPolicy::listen(*this,backlog);
+    SPolicy::CommunicationPolicy::listen(*this,backlog);
 }
 
-template <class Policy>
-prefix_ typename satcom::lib::ServerSocketHandle<Policy>::Address
-satcom::lib::ServerSocketHandle<Policy>::local()
+template <class SPolicy>
+prefix_ typename senf::ServerSocketHandle<SPolicy>::Address
+senf::ServerSocketHandle<SPolicy>::local()
 {
-    typename Policy::AddressingPolicy::Address addr;
+    typename SPolicy::AddressingPolicy::Address addr;
     this->local(addr);
     return addr;
 }
 
-template <class Policy>
-prefix_ void satcom::lib::ServerSocketHandle<Policy>::local(Address & addr)
+template <class SPolicy>
+prefix_ void senf::ServerSocketHandle<SPolicy>::local(Address & addr)
 {
-    Policy::AddressingPolicy::local(*this,addr);
+    SPolicy::AddressingPolicy::local(*this,addr);
 }
 
-template <class Policy>
-prefix_ typename satcom::lib::ServerSocketHandle<Policy>::ClientSocketHandle
-satcom::lib::ServerSocketHandle<Policy>::accept()
+template <class SPolicy>
+prefix_ typename senf::ServerSocketHandle<SPolicy>::ClientHandle
+senf::ServerSocketHandle<SPolicy>::accept()
 {
-    Address address;
-    return acceptfrom(address);
+    return ClientHandle(this->body().clone(
+                            SPolicy::CommunicationPolicy::accept(*this), false));
 }
 
-template <class Policy>
-prefix_ std::pair<typename satcom::lib::ServerSocketHandle<Policy>::ClientSocketHandle,
-                  typename satcom::lib::ServerSocketHandle<Policy>::Address>
-satcom::lib::ServerSocketHandle<Policy>::acceptfrom()
+template <class SPolicy>
+prefix_ std::pair<typename senf::ServerSocketHandle<SPolicy>::ClientHandle,
+                  typename senf::ServerSocketHandle<SPolicy>::Address>
+senf::ServerSocketHandle<SPolicy>::acceptfrom()
 {
 
     Address address;
-    ClientSocketHandle handle = accept(address);
+    ClientHandle handle = acceptfrom(address);
     return std::make_pair(handle,address);
 }
 
-template <class Policy>
-prefix_ typename satcom::lib::ServerSocketHandle<Policy>::ClientSocketHandle
-satcom::lib::ServerSocketHandle<Policy>::acceptfrom(Address & addr)
+template <class SPolicy>
+prefix_ typename senf::ServerSocketHandle<SPolicy>::ClientHandle
+senf::ServerSocketHandle<SPolicy>::acceptfrom(Address & addr)
 {
-    return ClientSocketHandle(this->protocol().clone(), 
-                              Policy::CommunicationPolicy::accept(*this,addr));
+    return ClientHandle(this->body().clone(
+                            SPolicy::CommunicationPolicy::accept(*this,addr), false));
 }
 
 ///////////////////////////////////////////////////////////////////////////
 
-template <class Policy>
-prefix_ satcom::lib::ServerSocketHandle<Policy>::ServerSocketHandle(FileHandle other,
+template <class SPolicy>
+prefix_ senf::ServerSocketHandle<SPolicy>::ServerSocketHandle(FileHandle other,
                                                                     bool isChecked)
-    : SocketHandle<Policy>(other, isChecked)
+    : SocketHandle<SPolicy>(other, isChecked)
 {}
 
-template <class Policy>
-prefix_ satcom::lib::ServerSocketHandle<Policy>
-satcom::lib::ServerSocketHandle<Policy>::cast_static(FileHandle handle)
+template <class SPolicy>
+prefix_ senf::ServerSocketHandle<SPolicy>
+senf::ServerSocketHandle<SPolicy>::cast_static(FileHandle handle)
 {
     return ServerSocketHandle(handle,true);
 }
 
-template <class Policy>
-prefix_ satcom::lib::ServerSocketHandle<Policy>
-satcom::lib::ServerSocketHandle<Policy>::cast_dynamic(FileHandle handle)
+template <class SPolicy>
+prefix_ senf::ServerSocketHandle<SPolicy>
+senf::ServerSocketHandle<SPolicy>::cast_dynamic(FileHandle handle)
 {
-    SocketHandle<Policy> h (SocketHandle<Policy>::cast_dynamic(handle));
+    SocketHandle<SPolicy> h (SocketHandle<SPolicy>::cast_dynamic(handle));
     if (! static_cast<SocketBody&>(FileHandle::body(handle)).isServer())
         throw std::bad_cast();
     return cast_static(handle);
 }
 
-template <class Policy>
-prefix_ void satcom::lib::ServerSocketHandle<Policy>::state(SocketStateMap & map, unsigned lod)
+template <class SPolicy>
+prefix_ void senf::ServerSocketHandle<SPolicy>::state(SocketStateMap & map, unsigned lod)
 {
     map["handle"] = prettyName(typeid(*this));
     this->body().state(map,lod);
 }
 
-template <class Policy>
-prefix_ std::string satcom::lib::ServerSocketHandle<Policy>::dumpState(unsigned lod)
+template <class SPolicy>
+prefix_ std::string senf::ServerSocketHandle<SPolicy>::dumpState(unsigned lod)
 {
     SocketStateMap map;
     state(map,lod);
@@ -156,5 +164,10 @@ prefix_ std::string satcom::lib::ServerSocketHandle<Policy>::dumpState(unsigned
 \f
 // Local Variables:
 // mode: c++
-// c-file-style: "satcom"
+// fill-column: 100
+// c-file-style: "senf"
+// indent-tabs-mode: nil
+// ispell-local-dictionary: "american"
+// compile-command: "scons -u test"
+// comment-column: 40
 // End: