InterfaceAPI.ih
Go to the documentation of this file.
1 //
2 // Copyright (c) 2020 Fraunhofer Institute for Applied Information Technology (FIT)
3 // Network Research Group (NET)
4 // Schloss Birlinghoven, 53754 Sankt Augustin, GERMANY
5 // Contact: support@wiback.org
6 //
7 // This file is part of the SENF code tree.
8 // It is licensed under the 3-clause BSD License (aka New BSD License).
9 // See LICENSE.txt in the top level directory for details or visit
10 // https://opensource.org/licenses/BSD-3-Clause
11 //
12 
13 
14 /** \file
15  \brief InterfaceAPI internal header */
16 
17 #ifndef IH_SENF_Ext_NetEmu_InterfaceAPI_
18 #define IH_SENF_Ext_NetEmu_InterfaceAPI_ 1
19 
20 // Custom includes
21 
22 //-/////////////////////////////////////////////////////////////////////////////////////////////////
23 
24 namespace senf {
25 namespace emu {
26 namespace detail {
27 
28  /** \brief Internal: Provide interface() member */
29  template <class Interface>
30  class InterfaceAccess
31  {
32  public:
33  virtual ~InterfaceAccess();
34 
35  Interface & interface();
36  Interface const & interface() const;
37  };
38 
39  /** \brief Internal: Provide receiver() and transmitter() members */
40  template <class Receiver, class Transmitter>
41  class CommfaceAccess
42  {
43  public:
44  virtual ~CommfaceAccess();
45 
46  Receiver & receiver();
47  Receiver const & receiver() const;
48 
49  Transmitter & transmitter();
50  Transmitter const & transmitter() const;
51  };
52 
53 }}}
54 
55 //-/////////////////////////////////////////////////////////////////////////////////////////////////
56 #endif
57 
58 
59 // Local Variables:
60 // mode: c++
61 // fill-column: 100
62 // comment-column: 40
63 // c-file-style: "senf"
64 // indent-tabs-mode: nil
65 // ispell-local-dictionary: "american"
66 // compile-command: "scons -u test"
67 // End: