The Sparta Modeling Framework
|
Single checkpoint object interface with a tick number and an ID unique to the owning Checkpointer instance. More...
#include <Checkpoint.hpp>
Public Types | |
Local Types | |
typedef sparta::Scheduler::Tick | tick_t |
tick_t Tick type to which checkpoints will refer | |
typedef uint64_t | chkpt_id_t |
tick_t Tick type to which checkpoints will refer | |
Public Member Functions | |
virtual std::string | stringize () const |
Returns a string describing this object. | |
virtual void | dumpData (std::ostream &o) const =0 |
Writes all checkpoint raw data to an ostream. | |
virtual uint64_t | getTotalMemoryUse () const noexcept=0 |
Returns memory usage by this checkpoint including any framework data structures. | |
virtual uint64_t | getContentMemoryUse () const noexcept=0 |
Returns memory usage by this checkpoint solely for the checkpointed content. | |
Checkpoint Actions | |
virtual void | load (const std::vector< ArchData * > &dats)=0 |
Attempts to restore this checkpoint state to the simulation state (ArchData) objects given to this Checkpoint at construction. | |
tick_t | getTick () const noexcept |
Returns the tick number at which this checkpoint was taken. | |
chkpt_id_t | getID () const noexcept |
Returns the ID of this checkpoint. | |
virtual std::string | getDeletedRepr () const |
Gets the representation of this deleted checkpoint as part of a checkpoint chain (if that checkpointer supports deletion) | |
Checkpoint * | getPrev () const noexcept |
Returns the previous checkpoint. If this checkpoint is a snapshot, it has no previous checkpoint. | |
void | setPrev (Checkpoint *prev) noexcept |
Sets the previous checkpoint of this checkpoint to prev. | |
void | addNext (Checkpoint *next) |
Adds another next checkpoint following *this. | |
void | removeNext (Checkpoint *next) |
Removes a checkpoint following *this because it was deleted. | |
const std::vector< Checkpoint * > & | getNexts () const noexcept |
Returns next checkpoint following *this. May be an empty vector if there are no later checkpoints following this Checkpoint. | |
Static Public Attributes | |
static const chkpt_id_t | MIN_CHECKPOINT = 0 |
Indicates the smallest valid checkpoint id. | |
static const chkpt_id_t | UNIDENTIFIED_CHECKPOINT = ~(chkpt_id_t)0 |
Indicates unidentified checkpoint (could mean 'invalid' or 'any') depending on context. | |
Protected Member Functions | |
void | setID_ (chkpt_id_t id) |
Sets the checkpoint ID. | |
Construction & Initialization | |
Checkpoint ()=delete | |
Not default constructable. | |
Checkpoint (const Checkpoint &)=delete | |
Not copy constructable. | |
const Checkpoint & | operator= (const Checkpoint &)=delete |
Non-assignable. | |
virtual | ~Checkpoint () |
Destructor. | |
Checkpoint (chkpt_id_t id, tick_t tick, Checkpoint *prev) | |
Single checkpoint object interface with a tick number and an ID unique to the owning Checkpointer instance.
A subclass of Checkpointer is expected to hold or refer to some checkpoint data in memory or on disk at construction which can be restored with load()
Definition at line 28 of file Checkpoint.hpp.
typedef uint64_t sparta::serialization::checkpoint::Checkpoint::chkpt_id_t |
tick_t Tick type to which checkpoints will refer
Definition at line 40 of file Checkpoint.hpp.
tick_t Tick type to which checkpoints will refer
Definition at line 37 of file Checkpoint.hpp.
|
inlineprotected |
Definition at line 75 of file Checkpoint.hpp.
|
inlinevirtual |
Destructor.
Removes this checkpoint from the chain and patches chain between prev and each item in the nexts list
Definition at line 92 of file Checkpoint.hpp.
|
inline |
Adds another next checkpoint following *this.
next | Next checkpoint (later in simulator ticks) than *this. Cannot be nullptr. Must contain (at a minimum) all state which changed since *this checkpoint was taken. next->getPrev() must be this checkpoint and next->getTick() must be >= this->getTick() |
CheckpointError | if next argument is nullptr or already in next checkpoints list or if next->getTick() < this->getTick() |
Definition at line 197 of file Checkpoint.hpp.
|
pure virtual |
Writes all checkpoint raw data to an ostream.
o | ostream to which raw data will be written |
Implemented in sparta::serialization::checkpoint::DeltaCheckpoint< StorageT >.
|
pure virtualnoexcept |
Returns memory usage by this checkpoint solely for the checkpointed content.
Implemented in sparta::serialization::checkpoint::DeltaCheckpoint< StorageT >.
|
inlinevirtual |
Gets the representation of this deleted checkpoint as part of a checkpoint chain (if that checkpointer supports deletion)
Reimplemented in sparta::serialization::checkpoint::DeltaCheckpoint< StorageT >.
Definition at line 166 of file Checkpoint.hpp.
|
inlinenoexcept |
Returns the ID of this checkpoint.
Definition at line 160 of file Checkpoint.hpp.
|
inlinenoexcept |
Returns next checkpoint following *this. May be an empty vector if there are no later checkpoints following this Checkpoint.
Returning an empty vector implies that there are no checkpoints descended from this
Definition at line 243 of file Checkpoint.hpp.
|
inlinenoexcept |
Returns the previous checkpoint. If this checkpoint is a snapshot, it has no previous checkpoint.
Definition at line 174 of file Checkpoint.hpp.
|
inlinenoexcept |
Returns the tick number at which this checkpoint was taken.
Definition at line 153 of file Checkpoint.hpp.
|
pure virtualnoexcept |
Returns memory usage by this checkpoint including any framework data structures.
Implemented in sparta::serialization::checkpoint::DeltaCheckpoint< StorageT >.
|
pure virtual |
Attempts to restore this checkpoint state to the simulation state (ArchData) objects given to this Checkpoint at construction.
Implemented in sparta::serialization::checkpoint::DeltaCheckpoint< StorageT >.
|
inline |
Removes a checkpoint following *this because it was deleted.
next | Next checkpoint to remove. Must be found in this object's nexts list. next->getPrev() must be this. Must not be nullptr. |
Definition at line 222 of file Checkpoint.hpp.
|
inlineprotected |
Sets the checkpoint ID.
Definition at line 253 of file Checkpoint.hpp.
|
inlinenoexcept |
Sets the previous checkpoint of this checkpoint to prev.
prev | New previou checkpoint. Overwrites previous This will often be accompanied by a call to addNext on the prev argument |
Definition at line 184 of file Checkpoint.hpp.
|
inlinevirtual |
Returns a string describing this object.
Reimplemented in sparta::serialization::checkpoint::DeltaCheckpoint< StorageT >.
Definition at line 113 of file Checkpoint.hpp.
|
static |
Indicates the smallest valid checkpoint id.
Definition at line 48 of file Checkpoint.hpp.
|
static |
Indicates unidentified checkpoint (could mean 'invalid' or 'any') depending on context.
Definition at line 54 of file Checkpoint.hpp.