Completed first stage of PPI API specification
[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     template <class Source, class Target>
36     class Route
37     {
38     public:
39         void autoThrottling(bool state); ///< Change automatic throttle notification forwarding
40                                         /**< By default, throttle notifications are automatically
41                                              forwarded from active to passive connectors. This may
42                                              be disabled by setting the authoThrottling state to \c
43                                              false.
44                                              
45                                              This member only exists if
46                                              \li \a Source or \a Target is an event
47                                              \li one of \a Source and \a Target is an active
48                                                  connector and the other is a passive connector.
49
50                                              Routing from/to an event to/from a passive connector
51                                              will automatically create throttling notifications on
52                                              the connector whenever the event is disabled. Routing
53                                              form/to an event to/from an active connector will
54                                              disable the event whenever a throttling notification
55                                              comes in. Respective for unthrottle notifications.
56
57                                              \param[in] state New throttle forwarding state 
58
59                                              \implementation This class will be implemented using a
60                                                  baseclass, this template and several
61                                                  specializations. However, this is an implementation
62                                                  detail which does not affect the exposed
63                                                  interface. */
64     };
65
66 }}
67
68 ///////////////////////////////hh.e////////////////////////////////////////
69 //#include "Route.cci"
70 //#include "Route.ct"
71 //#include "Route.cti"
72 #endif
73
74 \f
75 // Local Variables:
76 // mode: c++
77 // fill-column: 100
78 // c-file-style: "senf"
79 // indent-tabs-mode: nil
80 // ispell-local-dictionary: "american"
81 // End: