00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00026 #ifndef HH_SENF_PPI_predecl_
00027 #define HH_SENF_PPI_predecl_ 1
00028
00029
00030
00031
00032
00033
00034 namespace senf {
00035
00036 class Packet;
00037
00038 namespace ppi {
00039
00040 class EventDescriptor;
00041 template <class EventType=void> class EventImplementation;
00042 class EventManager;
00043 class RouteBase;
00044 class ForwardingRoute;
00045 template <class Source, class Target> class Route;
00046 class QueueingDiscipline;
00047 class ModuleManager;
00048
00049 #ifndef DOXYGEN
00050
00051 namespace detail {
00052 class EventBindingBase;
00053 template <class EvImpl> class EventBinding;
00054 template <class EventType> struct EventArgType;
00055 class NonForwardingRouteImplementation;
00056 class NonForwardingRouteToEventImplementation;
00057 class NonForwardingRouteFromEventImplementation;
00058 class ForwardForwardingRouteImplementation;
00059 class BackwardForwardingRouteImplementation;
00060 class ForwardForwardingRouteToEventImplementation;
00061 class BackwardForwardingRouteFromEventImplementation;
00062 template <class Source, class Target>
00063 class RouteImplementation;
00064 struct DisableStandardConnect;
00065 }
00066
00067 #endif
00068
00069 namespace module {
00070 class Module;
00071 namespace detail {
00072 template <class Source, class Target> class RouteHelper;
00073 }
00074 class PassiveJoin;
00075 class PriorityJoin;
00076 class ActiveDuplicator;
00077 }
00078
00079 namespace connector {
00080 class Connector;
00081 class ActiveConnector;
00082 class PassiveConnector;
00083 class InputConnector;
00084 class OutputConnector;
00085 class GenericActiveInput;
00086 class GenericActiveOutput;
00087 class GenericPassiveInput;
00088 class GenericPassiveOutput;
00089 template <class PacketType=Packet> class PassiveInput;
00090 template <class PacketType=Packet> class PassiveOutput;
00091 template <class PacketType=Packet> class ActiveInput;
00092 template <class PacketType=Packet> class ActiveOutput;
00093
00094 class Jack;
00095
00096 #ifndef DOXYGEN
00097
00098 namespace detail {
00099 template <class Self, class PacketType> class TypedInputMixin;
00100 template <class Self, class PacketType> class TypedOutputMixin;
00101 }
00102
00103 #endif
00104
00105 }
00106
00107 }}
00108
00109
00110
00111
00112
00113 #endif
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124