switch to new MPL based Fraunhofer FOKUS Public License
[senf.git] / senf / PPI / Module.hh
index 73f5385..1b4881d 100644 (file)
@@ -2,26 +2,31 @@
 //
 // 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
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation; either version 2 of the License, or
-// (at your option) any later version.
+// The contents of this file are subject to the Fraunhofer FOKUS Public License
+// Version 1.0 (the "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at 
+// http://senf.berlios.de/license.html
 //
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
+// The Fraunhofer FOKUS Public License Version 1.0 is based on, 
+// but modifies the Mozilla Public License Version 1.1.
+// See the full license text for the amendments.
 //
-// You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the
-// Free Software Foundation, Inc.,
-// 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+// Software distributed under the License is distributed on an "AS IS" basis, 
+// WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 
+// for the specific language governing rights and limitations under the License.
+//
+// The Original Code is Fraunhofer FOKUS code.
+//
+// The Initial Developer of the Original Code is Fraunhofer-Gesellschaft e.V. 
+// (registered association), Hansastraße 27 c, 80686 Munich, Germany.
+// All Rights Reserved.
+//
+// Contributor(s):
+//   Stefan Bund <g0dil@berlios.de>
 
 /** \file
-    \brief Module public header 
+    \brief Module public header
 */
 
 #ifndef HH_SENF_PPI_Module_
@@ -36,7 +41,7 @@
 #include "ModuleManager.hh"
 
 //#include "Module.mpp"
-///////////////////////////////hh.p////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
 
 namespace senf {
 namespace ppi {
@@ -47,13 +52,13 @@ namespace module {
 
     /** \namespace senf::ppi::module
         \brief PPI Modules
-       
+
         The modules build the PPI core. The PPI provides a set of general purpose infrastructure
         modules. For concrete applications, additional application specific processing modules need
         to be implemented.
 
         \section module_impl Implementing Modules
-        
+
         All modules derive from senf::ppi::module::Module. See this class for a documentation on how
         to write new modules.
 
@@ -88,7 +93,7 @@ namespace module {
 
         senf::ppi::Module is the base-class of all PPI modules. It provides the module implementation
         with interfaces to several PPI facilities:
-        
+
         \li Connector management
         \li Flow management (routing)
         \li Event handling
@@ -111,8 +116,8 @@ namespace module {
             senf::ppi::connector::PassiveInput<> input;
             senf::ppi::connector::ActiveOutput<> output;
 
-            SomeModule(senf::FileHandle h) 
-              : handle ( h ), 
+            SomeModule(senf::FileHandle h)
+              : handle ( h ),
                 event  ( handle, senf::ppi::IOEvent::Read )
             {
                 // Set up routing. If some connector is not routed you need to explicitly state this
@@ -186,7 +191,7 @@ namespace module {
 
 #ifndef DOXYGEN
         template <class Source, class Target>
-        Route<Source, Target> & route(Source & source, Target & target); 
+        Route<Source, Target> & route(Source & source, Target & target);
 #else
         Route<connector::InputConnector, connector::OutputConnector> &
         route(connector::InputConnector & input, connector::OutputConnector & output);
@@ -213,7 +218,7 @@ namespace module {
                                                  incoming data (connector or event)
                                              \param[in] output Data target, object which controls
                                                  outgoing data (connector or event)
-                                             \returns Route instance describing this route 
+                                             \returns Route instance describing this route
                                              \see \ref ppi_throttling
                                              \note The real implementation is not provided by three
                                                  overloads but by a single template member */
@@ -230,7 +235,7 @@ namespace module {
                                              event is signaled.).
 
                                              This event routing allows to automatically
-                                             enable/disable the event on throttling notifications. 
+                                             enable/disable the event on throttling notifications.
 
                                              \see \ref route() */
 
@@ -245,7 +250,7 @@ namespace module {
                                              generated whenever the event is signaled).
 
                                              This event routing allows to automatically
-                                             enable/disable the event on throttling notifications. 
+                                             enable/disable the event on throttling notifications.
 
                                              \see \ref route() */
 #endif
@@ -258,7 +263,7 @@ namespace module {
                                              information for terminal connectors</em>.
 
                                              See the route() documentation for more on routing
-                                             
+
                                              \param[in] connector Terminal connector to declare */
 
 #ifndef DOXYGEN
@@ -282,7 +287,7 @@ namespace module {
 
                                              \param[in] target The handler to call whenever the
                                                  event is signaled
-                                             \param[in] descriptor The type of event to register 
+                                             \param[in] descriptor The type of event to register
                                              \note The real implementation has the second arguments
                                                  type as an additional template parameter. */
 #endif
@@ -301,7 +306,7 @@ namespace module {
         virtual void v_init();          ///< Called after module setup
                                         /**< This member is called directly before the PPI (resumes)
                                              execution. It is called after connections have been
-                                             setup before entering the PPI main loop. 
+                                             setup before entering the PPI main loop.
 
                                              You may overload this member. Your overload should
                                              always call the base-class implementation. */
@@ -310,11 +315,11 @@ namespace module {
     public:
 #endif
         void destroy();
-        
+
     private:
         EventManager & eventManager() const;
         ModuleManager & moduleManager() const;
-        
+
         void registerConnector(connector::Connector & connector);
         void unregisterConnector(connector::Connector & connector);
         void unregisterEvent(EventDescriptor & event);
@@ -336,7 +341,7 @@ namespace module {
 
     /** \brief Define PPI Module
 
-        Every module must begin by using this macro. 
+        Every module must begin by using this macro.
 
         \see senf::ppi::module::Module
      */
@@ -348,7 +353,7 @@ namespace module {
 
 }}}
 
-///////////////////////////////hh.e////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
 #include "Module.cci"
 #include "Module.ct"
 //#include "Module.cti"