|
OpenTTD Source
14.0-beta3
|
Go to the documentation of this file.
10 #ifndef SAVELOAD_FILTER_H
11 #define SAVELOAD_FILTER_H
16 std::shared_ptr<LoadFilter>
chain;
37 virtual size_t Read(
byte *buf,
size_t len) = 0;
53 template <
typename T> std::shared_ptr<LoadFilter>
CreateLoadFilter(std::shared_ptr<LoadFilter> chain)
55 return std::make_shared<T>(chain);
61 std::shared_ptr<SaveFilter>
chain;
81 virtual void Write(
byte *buf,
size_t len) = 0;
88 if (this->chain !=
nullptr) this->chain->Finish();
98 template <
typename T> std::shared_ptr<SaveFilter>
CreateSaveFilter(std::shared_ptr<SaveFilter> chain,
byte compression_level)
100 return std::make_shared<T>(chain, compression_level);
std::shared_ptr< SaveFilter > chain
Chained to the (savegame) filters.
virtual void Reset()
Reset this filter to read from the beginning of the file.
SaveFilter(std::shared_ptr< SaveFilter > chain)
Initialise this filter.
virtual size_t Read(byte *buf, size_t len)=0
Read a given number of bytes from the savegame.
LoadFilter(std::shared_ptr< LoadFilter > chain)
Initialise this filter.
virtual void Finish()
Prepare everything to finish writing the savegame.
virtual void Write(byte *buf, size_t len)=0
Write a given number of bytes into the savegame.
std::shared_ptr< LoadFilter > CreateLoadFilter(std::shared_ptr< LoadFilter > chain)
Instantiator for a load filter.
std::shared_ptr< LoadFilter > chain
Chained to the (savegame) filters.
virtual ~SaveFilter()
Make sure the writers are properly closed.
Interface for filtering a savegame till it is written.
Interface for filtering a savegame till it is loaded.
std::shared_ptr< SaveFilter > CreateSaveFilter(std::shared_ptr< SaveFilter > chain, byte compression_level)
Instantiator for a save filter.
virtual ~LoadFilter()
Make sure the writers are properly closed.