fc0fb6266204a9faa9e8a567549e6f3082ef62a2
[senf.git] / senf / PPI / predecl.hh
1 // $Id$
2 //
3 // Copyright (C) 2007
4 // Fraunhofer Institute for Open Communication Systems (FOKUS)
5 //
6 // The contents of this file are subject to the Fraunhofer FOKUS Public License
7 // Version 1.0 (the "License"); you may not use this file except in compliance
8 // with the License. You may obtain a copy of the License at 
9 // http://senf.berlios.de/license.html
10 //
11 // The Fraunhofer FOKUS Public License Version 1.0 is based on, 
12 // but modifies the Mozilla Public License Version 1.1.
13 // See the full license text for the amendments.
14 //
15 // Software distributed under the License is distributed on an "AS IS" basis, 
16 // WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 
17 // for the specific language governing rights and limitations under the License.
18 //
19 // The Original Code is Fraunhofer FOKUS code.
20 //
21 // The Initial Developer of the Original Code is Fraunhofer-Gesellschaft e.V. 
22 // (registered association), Hansastraße 27 c, 80686 Munich, Germany.
23 // All Rights Reserved.
24 //
25 // Contributor(s):
26 //   Stefan Bund <g0dil@berlios.de>
27
28 /** \file
29     \brief predecl public header */
30
31 #ifndef HH_SENF_PPI_predecl_
32 #define HH_SENF_PPI_predecl_ 1
33
34 // Custom includes
35
36 //#include "predecl.mpp"
37 //-/////////////////////////////////////////////////////////////////////////////////////////////////
38
39 namespace senf {
40
41     class Packet;
42
43 namespace ppi {
44
45     class EventDescriptor;
46     template <class EventType=void> class EventImplementation;
47     class EventManager;
48     class RouteBase;
49     class ForwardingRoute;
50     template <class Source, class Target> class Route;
51     class QueueingDiscipline;
52     class ModuleManager;
53
54 #ifndef DOXYGEN
55
56     namespace detail {
57         class EventBindingBase;
58         template <class EvImpl> class EventBinding;
59         template <class EventType> struct EventArgType;
60         class NonForwardingRouteImplementation;
61         class NonForwardingRouteToEventImplementation;
62         class NonForwardingRouteFromEventImplementation;
63         class ForwardForwardingRouteImplementation;
64         class BackwardForwardingRouteImplementation;
65         class ForwardForwardingRouteToEventImplementation;
66         class BackwardForwardingRouteFromEventImplementation;
67         template <class Source, class Target>
68             class RouteImplementation;
69         struct DisableStandardConnect;
70     }
71
72 #endif
73
74     namespace module {
75         class Module;
76         namespace detail {
77             template <class Source, class Target> class RouteHelper;
78         }
79         class PassiveJoin;
80         class PriorityJoin;
81         class ActiveDuplicator;
82     }
83
84     namespace connector {
85         class Connector;
86         class ActiveConnector;
87         class PassiveConnector;
88         class InputConnector;
89         class OutputConnector;
90         class GenericActiveInput;
91         class GenericActiveOutput;
92         class GenericPassiveInput;
93         class GenericPassiveOutput;
94         template <class PacketType=Packet> class PassiveInput;
95         template <class PacketType=Packet> class PassiveOutput;
96         template <class PacketType=Packet> class ActiveInput;
97         template <class PacketType=Packet> class ActiveOutput;
98
99         class Jack;
100
101 #ifndef DOXYGEN
102
103         namespace detail {
104             template <class Self, class PacketType> class TypedInputMixin;
105             template <class Self, class PacketType> class TypedOutputMixin;
106         }
107
108 #endif
109
110     }
111
112 }}
113
114 //-/////////////////////////////////////////////////////////////////////////////////////////////////
115 //#include "predecl.cci"
116 //#include "predecl.ct"
117 //#include "predecl.cti"
118 #endif
119
120 \f
121 // Local Variables:
122 // mode: c++
123 // fill-column: 100
124 // comment-column: 40
125 // c-file-style: "senf"
126 // indent-tabs-mode: nil
127 // ispell-local-dictionary: "american"
128 // compile-command: "scons -u test"
129 // End: