Libftpp
A modern C++ library
Memento Class Referenceabstract

Memento Design Pattern. More...

#include <memento.hpp>

Classes

class  Snapshot
 

Public Member Functions

Snapshot save ()
 
void load (const Memento::Snapshot &state)
 

Detailed Description

Memento Design Pattern.

Warning
You must implement _saveToSnapshot and _loadFromSnapshot
class MyClass : public Memento
{
private:
int _value;
std::string _name;
void _saveToSnapshot(Memento::Snapshot& snapshot) const override
{
snapshot << _value << _name;
}
void _loadFromSnapshot(Memento::Snapshot& snapshot) override
{
snapshot >> _value >> _name;
}
public:
MyClass(int value, const std::string& name) : _value(value),
_name(name) {}
};
Memento Design Pattern.
Definition: memento.hpp:49
Note
Basic Usage
MyClass obj(42, "Initial");
Memento::Snapshot snapshot = obj.save();
// Modify object state
obj = MyClass(100, "Modified");
// Restore previous state
obj.load(snapshot);
// Now obj has _value = 42 and _name = "Initial"

Definition at line 48 of file memento.hpp.

Member Function Documentation

◆ load()

void Memento::load ( const Memento::Snapshot state)

Definition at line 15 of file memento.cpp.

References Memento::Snapshot::reset().

◆ save()

Memento::Snapshot Memento::save ( )

Definition at line 3 of file memento.cpp.