// $Id$
//
-// Copyright (C) 2007
-// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
-// Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
+// Copyright (C) 2007
+// 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
/** \file
\brief predecl public header */
-#ifndef HH_predecl_
-#define HH_predecl_ 1
+#ifndef HH_SENF_PPI_predecl_
+#define HH_SENF_PPI_predecl_ 1
// Custom includes
-#include <boost/type_traits.hpp>
//#include "predecl.mpp"
///////////////////////////////hh.p////////////////////////////////////////
namespace senf {
+
+ class Packet;
+
namespace ppi {
class EventDescriptor;
template <class EventType=void> class EventImplementation;
class EventManager;
class RouteBase;
+ class ForwardingRoute;
template <class Source, class Target> class Route;
class QueueingDiscipline;
+ class ModuleManager;
+
+#ifndef DOXYGEN
namespace detail {
class EventBindingBase;
template <class EvImpl> class EventBinding;
template <class EventType> struct EventArgType;
- template <bool srcEvent, bool trgEvent> class RouteImplementation;
+ class NonForwardingRouteImplementation;
+ class NonForwardingRouteToEventImplementation;
+ class NonForwardingRouteFromEventImplementation;
+ class ForwardForwardingRouteImplementation;
+ class BackwardForwardingRouteImplementation;
+ class ForwardForwardingRouteToEventImplementation;
+ class BackwardForwardingRouteFromEventImplementation;
+ template <class Source, class Target>
+ class RouteImplementation;
}
+#endif
+
namespace module {
class Module;
namespace detail {
template <class Source, class Target> class RouteHelper;
}
+ class PassiveJoin;
+ class PriorityJoin;
+ class ActiveDuplicator;
}
namespace connector {
class PassiveConnector;
class InputConnector;
class OutputConnector;
- class ActiveInput;
- class ActiveOutput;
- class PassiveInput;
- class PassiveOutput;
+ class GenericActiveInput;
+ class GenericActiveOutput;
+ class GenericPassiveInput;
+ class GenericPassiveOutput;
+ template <class PacketType=Packet> class PassiveInput;
+ template <class PacketType=Packet> class PassiveOutput;
+ template <class PacketType=Packet> class ActiveInput;
+ template <class PacketType=Packet> class ActiveOutput;
+
+ class Jack;
+
+#ifndef DOXYGEN
+
+ namespace detail {
+ template <class Self, class PacketType> class TypedInputMixin;
+ template <class Self, class PacketType> class TypedOutputMixin;
+ }
+
+#endif
+
}
}}