Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Examples  

Context.hpp

00001 #if !defined (__CONTEXT_HPP)
00002 #define __CONTEXT_HPP
00003 
00004 /*
00005   CoreLinux++ 
00006   Copyright (C) 1999,2000 CoreLinux Consortium
00007   
00008    The CoreLinux++ Library is free software; you can redistribute it and/or
00009    modify it under the terms of the GNU Library General Public License as
00010    published by the Free Software Foundation; either version 2 of the
00011    License, or (at your option) any later version.
00012 
00013    The CoreLinux++ Library Library is distributed in the hope that it will 
00014    be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
00015    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00016    Library General Public License for more details.
00017 
00018    You should have received a copy of the GNU Library General Public
00019    License along with the GNU C Library; see the file COPYING.LIB.  If not,
00020    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
00021    Boston, MA 02111-1307, USA.  
00022 */   
00023 
00024 #if !defined(__COMMON_HPP)
00025 #include <Context.hpp>
00026 #endif
00027 
00028 
00029 namespace corelinux
00030 {
00031 
00032    DECLARE_CLASS( State );
00033    DECLARE_CLASS( Context );
00034 
00040    class Context
00041    {
00042    public:
00043 
00045 
00046                            Context( void );
00047 
00052                            Context( ContextCref );
00053 
00055 
00056       virtual              ~Context( void );
00057 
00058       //
00059       // Operator overloads
00060       //
00067                ContextRef  operator=( ContextCref );
00068 
00075                bool        operator==( ContextCref ) const;
00076 
00077       //
00078       // Mutators
00079       //
00080 
00082 
00083       virtual  void  request( void ) throw ( NullPointerException );
00084 
00086 
00087       virtual  void  changeState( StatePtr );
00088 
00089    protected:
00090 
00091          //
00092          // Accessors
00093          //
00095 
00096                StatePtr    getState( void ) const;
00097 
00098          //
00099          // Mutators
00100          //
00101 
00103 
00104                void        setState( StatePtr );
00105 
00106    private:
00107 
00109 
00110                StatePtr    theState;
00111 
00112    };
00113 
00114 }
00115           
00116 #endif   // if !defined(__CONTEXT_HPP)
00117 
00118 /*
00119    Common rcs information do not modify
00120    $Author: frankc $
00121    $Revision: 1.1 $
00122    $Date: 2000/05/17 03:43:30 $
00123    $Locker:  $
00124 */
00125 
00126 

This is the CoreLinux++ reference manual
Provided by The CoreLinux Consortium