Merged revisions 570-572,574-575,578-579,581-595,598-611 via svnmerge from
[senf.git] / Socket / SocketProtocol.cti
1 // $Id$
2 //
3 // Copyright (C) 2006
4 // Fraunhofer Institute for Open Communication Systems (FOKUS) 
5 // Competence Center NETwork research (NET), St. Augustin, GERMANY 
6 //     Stefan Bund <g0dil@berlios.de>
7 //
8 // This program is free software; you can redistribute it and/or modify
9 // it under the terms of the GNU General Public License as published by
10 // the Free Software Foundation; either version 2 of the License, or
11 // (at your option) any later version.
12 //
13 // This program is distributed in the hope that it will be useful,
14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 // GNU General Public License for more details.
17 //
18 // You should have received a copy of the GNU General Public License
19 // along with this program; if not, write to the
20 // Free Software Foundation, Inc.,
21 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
22
23 /** \file
24     \brief SocketProtocol and ConcreteSocketProtocol inline template implementation
25  */
26
27 //#include "SocketProtocol.ih"
28
29 // Custom includes
30 #include "SocketHandle.hh"
31
32 #define prefix_ inline
33 ///////////////////////////////cti.p///////////////////////////////////////
34
35 ///////////////////////////////////////////////////////////////////////////
36 // senf::ConcreteSocketProtocol<SocketPolicy>
37
38 template <class SocketPolicy>
39 prefix_ senf::ConcreteSocketProtocol<SocketPolicy>::~ConcreteSocketProtocol()
40 {}
41
42 template <class SocketPolicy>
43 prefix_ typename senf::ConcreteSocketProtocol<SocketPolicy>::Policy const &
44 senf::ConcreteSocketProtocol<SocketPolicy>::policy()
45     const
46 {
47     return policy_;
48 }
49
50 ////////////////////////////////////////
51 // protected members
52
53 template <class SocketPolicy>
54 prefix_ senf::ClientSocketHandle<SocketPolicy>
55 senf::ConcreteSocketProtocol<SocketPolicy>::clientHandle()
56     const
57 {
58     return static_socket_cast< ClientSocketHandle<Policy> >(fh());
59 }
60
61 template <class SocketPolicy>
62 prefix_ senf::ServerSocketHandle<SocketPolicy>
63 senf::ConcreteSocketProtocol<SocketPolicy>::serverHandle()
64     const
65 {
66     return static_socket_cast< ServerSocketHandle<Policy> >(fh());
67 }
68
69 ///////////////////////////////cti.e///////////////////////////////////////
70 #undef prefix_
71
72 \f
73 // Local Variables:
74 // mode: c++
75 // fill-column: 100
76 // c-file-style: "senf"
77 // indent-tabs-mode: nil
78 // ispell-local-dictionary: "american"
79 // compile-command: "scons -u test"
80 // comment-column: 40
81 // End: