00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef _util_state_state_h
00029 #define _util_state_state_h
00030
00031 #ifdef __GNUC__
00032 #pragma interface
00033 #endif
00034
00035 #include <util/class/class.h>
00036
00037 namespace sc {
00038
00039 class StateIn;
00040 class StateOut;
00041 class TranslateDataIn;
00042 class TranslateDataOut;
00043
00046 class SavableState: public DescribedClass {
00047 protected:
00048 SavableState();
00049 SavableState(const SavableState&);
00050 #ifndef __GNUC__
00051 public:
00052 #endif
00053 SavableState& operator=(const SavableState&);
00054 public:
00055 virtual ~SavableState();
00056
00057
00058
00064 void save_state(StateOut&);
00065
00066
00067 static void save_state(SavableState*s, StateOut&);
00068
00073 void save_object_state(StateOut&);
00074
00082 virtual void save_vbase_state(StateOut&);
00083
00087 virtual void save_data_state(StateOut&);
00088
00089
00090
00098 static SavableState* restore_state(StateIn& si);
00101 static SavableState* key_restore_state(StateIn& si,
00102 const char *keyword);
00103 static SavableState* dir_restore_state(StateIn& si,
00104 const char *objectname,
00105 const char *keyword = 0);
00106
00107 protected:
00108
00113 SavableState(StateIn&);
00114 };
00115
00116 }
00117
00118 #endif
00119
00120
00121
00122
00123