arbeit
Main Page | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Namespace Members | Compound Members | File Members

SimModObj.h

Go to the documentation of this file.
00001 //------------------------------------------------------------------------
00002 //
00003 //   Joe Kniss
00004 //     6-20-03
00005 //                   ________    ____   ___ 
00006 //                  |        \  /    | /  /
00007 //                  +---+     \/     |/  /
00008 //                  +--+|  |\    /|     < 
00009 //                  |  ||  | \  / |  |\  \ 
00010 //                  |      |  \/  |  | \  \ 
00011 //                   \_____|      |__|  \__\
00012 //                       Copyright  2003 
00013 //                      Joe Michael Kniss
00014 //                   <<< jmk@cs.utah.edu >>>
00015 //               "All Your Base are Belong to Us"
00016 //-------------------------------------------------------------------------
00017 
00018 ///SimModObj.h
00019 /// simian core, alg
00020 
00021 #ifndef __SIMIAN_MODULE_OBJECT_DOT_H
00022 #define __SIMIAN_MODULE_OBJECT_DOT_H
00023 
00024 #include <smartptr.h>
00025 #include <simBase/simBase.h>
00026 
00027 class DataObjIF;
00028 
00029 ////////////////////////////////////////////////////////////////////////////
00030 /// Module interface
00031 /// A public module interface, implements nothing
00032 ////////////////////////////////////////////////////////////////////////////
00033 
00034 class SimModObjIF : public SimCore, public gutz::Counted {
00035 public:
00036    virtual ~SimModObjIF(){}
00037 
00038    ///////////////////////////////////////////
00039    ///@name Public Execute Interface
00040    ///@{
00041 
00042    /// Execute if anything changed
00043    virtual void execute() = 0;
00044    /// Execute no matter what!
00045    virtual void force() = 0;
00046 
00047    ///@}
00048    ///////////////////////////////////////////
00049 
00050    ///////////////////////////////////////////
00051    ///@name framework interfaces NOT FOR GENERAL USE. 
00052    ///   do not call from user programs/modules
00053    ///@{
00054 
00055    ///////////////////////////////////////////
00056    /// Update Interface
00057    ///////////////////////////////////////////
00058    
00059    /// input data modified notification
00060    virtual void update_(gutz::SmartPtr<DataObjIF> d) = 0;
00061 
00062    ///@}
00063    ///////////////////////////////////////////
00064 
00065 
00066 protected:
00067    SimModObjIF():_forwardUpdate(false)  {}
00068 
00069    bool _forwardUpdate;
00070 private:
00071    /// not used
00072    SimModObjIF(const SimModObjIF &smo);
00073    SimModObjIF &operator=(const SimModObjIF &smo);
00074 };
00075 
00076 typedef gutz::SmartPtr<SimModObjIF> SimModObjSP;
00077 
00078 #endif
00079 
00080 

Send questions, comments, and bug reports to:
jmk