switch to new MPL based Fraunhofer FOKUS Public License
[senf.git] / senf / PPI / Events.hh
index 1025db5..202b648 100644 (file)
@@ -2,23 +2,28 @@
 //
 // 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 Events public header */
 #include "predecl.hh"
 
 //#include "Events.mpp"
-///////////////////////////////hh.p////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
 
 namespace senf {
 namespace ppi {
 
     namespace detail { class EventBindingBase; }
-    
+
     /** \defgroup event_group Events
 
         Events provide notification of events outside the PPI framework: I/O activity, Timers
@@ -49,13 +54,13 @@ namespace ppi {
 
         All events are derived from EventImplementation which is based on EventDescriptor.
         \see EventImplementation \n
-            \ref ppi_events        
+            \ref ppi_events
      */
 
     // Implementation: The concrete EventDescriptor implementation will need to set things up so
     // some callback (within the EventDescriptor implementation) will be called when the event
     // happens. This setup happens in 'v_enable()'. This internal handler sets up an EventType
-    // instance if needed and calls 'callback()'. 
+    // instance if needed and calls 'callback()'.
     //
     // 'callback()' will access the EventBinding wrapper to find the user-callback to signal. It
     // will do any needed internal processing, call that user callback and clean up afterwards.
@@ -65,13 +70,13 @@ namespace ppi {
         The EventDescriptor base-class provides an interface to control events.
 
         \see \ref ppi_events
-     */ 
+     */
     class EventDescriptor
     {
     public:
         virtual ~EventDescriptor();
 
-        bool enabled(); ///< Check, whether the event is currently enabled
+        bool enabled() const; ///< Check, whether the event is currently enabled
         void enabled(bool v); ///< Enable or disable the event
 
     protected:
@@ -100,7 +105,7 @@ namespace ppi {
         friend class ForwardingRoute;
         friend class detail::EventBindingBase;
     };
-    
+
     /** \brief Internal: Callback forwarders
      */
     template <class EventType, class Self>
@@ -121,7 +126,7 @@ namespace ppi {
     private:
         detail::EventBinding<EventType> & binding();
     };
-    
+
 #ifndef DOXYGEN
 
     template <class Self>
@@ -139,7 +144,7 @@ namespace ppi {
 
     /** \brief Event implementation base class
 
-        EventImplementation provides the base-class for all Event implementations. 
+        EventImplementation provides the base-class for all Event implementations.
         \code
         class SomeEvent : public EventImplementation<SomeEventArg>
         {
@@ -157,7 +162,7 @@ namespace ppi {
 
             void cb() {
                 // Build event argument
-                SomeEventArg arg (...); 
+                SomeEventArg arg (...);
                 // Call the event callback
                 callback(arg);
             }
@@ -176,7 +181,7 @@ namespace ppi {
      */
     template <class EventType>
     class EventImplementation
-        : public EventDescriptor, 
+        : public EventDescriptor,
           public EventImplementationHelper< EventType, EventImplementation<EventType> >
     {
     public:
@@ -185,7 +190,7 @@ namespace ppi {
 
         module::Module & module() const; ///< Module in which the event is registered
         EventManager & manager() const; ///< EventManager of the event
-        
+
     protected:
         EventImplementation();
 
@@ -201,7 +206,7 @@ namespace ppi {
 
 }}
 
-///////////////////////////////hh.e////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
 #include "Events.cci"
 //#include "Events.ct"
 #include "Events.cti"