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

simCore.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 
00019 /// simCore.h
00020 
00021 /// "What bubbles, bubbles up"
00022 
00023 /// Feed forward sometimes needs bredth first exectution, 
00024 /// so this class handles some of that.
00025 
00026 #ifndef __SIMIAN_CORE_DOT_H
00027 #define __SIMIAN_CORE_DOT_H
00028 
00029 #include <simBase/simBase.h>
00030 
00031 ///TODO: Parallel Multi-threaded!!!
00032 
00033 class SimCore : public SimBase {
00034 public:
00035    virtual ~SimCore(){}
00036 
00037    ////////////////////////////////////////////////////
00038    ///@name Modified interface
00039    ///@{
00040    bool   isModified() const           {return _modified;}
00041    void   setModified(bool mod = true) {_modified = mod;}
00042    ///@}
00043 
00044    ////////////////////////////////////////////////////
00045    ///@name Serialization 
00046    ///  TODO: should be pure virtual, SOON
00047    ///@{
00048 
00049    /// serialize
00050    virtual std::ostream &saveSelf(std::ostream &os) { return os; }
00051    /// unserialize
00052    virtual std::istream &readSelf(std::istream &is) { return is; }
00053    
00054    ///@}
00055    ////////////////////////////////////////////////////
00056 
00057    ////////////////////////////////////////////////////
00058    ///@name Forward Modify interface, NOT FOR GENERAL USE. 
00059    ///   framework interface.
00060    ///@{
00061 
00062    /// is this thing aready marked for future update?
00063    bool   isForwardModified() {return _forward;}
00064    /// mark all children as forward modified
00065    virtual void   setForwardModified() = 0;
00066 
00067    ///@}
00068    ////////////////////////////////////////////////////
00069 
00070 protected:
00071    SimCore():_modified(true), _updating(false), _forward(false){}
00072 
00073    bool _modified;
00074    bool _forward;
00075    bool _updating;
00076 
00077 private:
00078    /// not used
00079    SimCore(const SimCore &sc);
00080    SimCore &operator=(const SimCore &sc);
00081 };
00082 
00083 #endif
00084 

Send questions, comments, and bug reports to:
jmk