You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
В случае если реплики недоступны нужно где-то хранить команды мастера в правильной последовательности, тогда при появлении реплики можно было их применить в правильном порядке. Для этого необходимо написать реализацию класса, у класса два метода:
GetByVersion - достает std::shared_ptr<Common::IStreamCommand> command нужной версии если это возможно или возвращает enum class EError : std::uint8_t { TooOld, TooNew }, в зависимости от ситуации.
TooOld - означает что запрошенная версия уже утеряна (например при подрезании буффера, ведь если его не уменьшать он будет бесконечно расти и поглотит всю память). TooNew - в очереди еще не появилась команда с необходимой версией.
Version - внутрений для класса концепт, каждой команде задается уникальное число начиная с 1. Версия команды не должна повторяться в пределах работы программы.
На внутренюю реализацию никаких ограничений не накладывается.
The text was updated successfully, but these errors were encountered:
В случае если реплики недоступны нужно где-то хранить команды мастера в правильной последовательности, тогда при появлении реплики можно было их применить в правильном порядке. Для этого необходимо написать реализацию класса, у класса два метода:
Push
- сохраняетstd::shared_ptr<Common::IStreamCommand> command
GetByVersion
- достаетstd::shared_ptr<Common::IStreamCommand> command
нужной версии если это возможно или возвращаетenum class EError : std::uint8_t { TooOld, TooNew }
, в зависимости от ситуации.TooOld
- означает что запрошенная версия уже утеряна (например при подрезании буффера, ведь если его не уменьшать он будет бесконечно расти и поглотит всю память).TooNew
- в очереди еще не появилась команда с необходимой версией.Version
- внутрений для класса концепт, каждой команде задается уникальное число начиная с 1. Версия команды не должна повторяться в пределах работы программы.На внутренюю реализацию никаких ограничений не накладывается.
The text was updated successfully, but these errors were encountered: