Implementation documentation
[senf.git] / PPI / Route.hh
1 // Copyright (C) 2007 
2 // Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
3 // Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
4 //     Stefan Bund <g0dil@berlios.de>
5 //
6 // This program is free software; you can redistribute it and/or modify
7 // it under the terms of the GNU General Public License as published by
8 // the Free Software Foundation; either version 2 of the License, or
9 // (at your option) any later version.
10 //
11 // This program is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 // GNU General Public License for more details.
15 //
16 // You should have received a copy of the GNU General Public License
17 // along with this program; if not, write to the
18 // Free Software Foundation, Inc.,
19 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
20
21 /** \file
22     \brief Route public header */
23
24 #ifndef HH_Route_
25 #define HH_Route_ 1
26
27 // Custom includes
28
29 //#include "Route.mpp"
30 ///////////////////////////////hh.p////////////////////////////////////////
31
32 namespace senf {
33 namespace ppi {
34
35     /** \brief Route descriptor
36         
37         Route instances are created by Module::route statements. The Route class provides an
38         interface to manipulate the flow processing.
39      */
40     template <class Source, class Target>
41     class Route
42     {
43     public:
44         void autoThrottling(bool state); ///< Change automatic throttle notification forwarding
45                                         /**< By default, throttle notifications are automatically
46                                              forwarded from active to passive connectors. This may
47                                              be disabled by setting the authoThrottling state to \c
48                                              false.
49                                              
50                                              This member only exists if
51                                              \li \a Source or \a Target is an event
52                                              \li one of \a Source and \a Target is an active
53                                                  connector and the other is a passive connector.
54
55                                              Routing from/to an event to/from a passive connector
56                                              will automatically create throttling notifications on
57                                              the connector whenever the event is disabled. Routing
58                                              form/to an event to/from an active connector will
59                                              disable the event whenever a throttling notification
60                                              comes in. Respective for unthrottle notifications.
61
62                                              \param[in] state New throttle forwarding state 
63
64                                              \implementation This class will be implemented using a
65                                                  baseclass, this template and several
66                                                  specializations. However, this is an implementation
67                                                  detail which does not affect the exposed
68                                                  interface. */
69     };
70
71 }}
72
73 ///////////////////////////////hh.e////////////////////////////////////////
74 //#include "Route.cci"
75 //#include "Route.ct"
76 //#include "Route.cti"
77 #endif
78
79 \f
80 // Local Variables:
81 // mode: c++
82 // fill-column: 100
83 // c-file-style: "senf"
84 // indent-tabs-mode: nil
85 // ispell-local-dictionary: "american"
86 // End: