20#ifndef ORES_SHELL_APP_PAGINATION_CONTEXT_HPP
21#define ORES_SHELL_APP_PAGINATION_CONTEXT_HPP
26#include <unordered_map>
102 std::uint32_t page_size_ = 20;
103 std::string last_entity_;
104 std::unordered_map<std::string, entity_page_state> entity_states_;
105 std::unordered_map<std::string, list_callback> list_callbacks_;
Application hosting for the interactive shell.
Definition application.hpp:28
std::function< void(std::ostream &)> list_callback
Callback type for re-invoking list commands during navigation.
Definition pagination_context.hpp:43
State for a single entity's pagination.
Definition pagination_context.hpp:33
std::uint32_t total_count
Total count of available records (from last response)
Definition pagination_context.hpp:37
std::uint32_t current_offset
Current offset in the result set.
Definition pagination_context.hpp:35
Manages pagination state across shell commands.
Definition pagination_context.hpp:51
void register_list_callback(const std::string &entity_name, list_callback callback)
Register a callback for listing an entity.
Definition pagination_context.cpp:48
void set_page_size(std::uint32_t size)
Set the page size.
Definition pagination_context.cpp:28
entity_page_state & state_for(const std::string &entity_name)
Get or create pagination state for an entity.
Definition pagination_context.cpp:36
const std::string & last_entity() const
Get the last entity that was listed.
Definition pagination_context.cpp:40
const list_callback * get_list_callback(const std::string &entity_name) const
Get the list callback for an entity.
Definition pagination_context.cpp:54
std::uint32_t page_size() const
Get the current page size.
Definition pagination_context.cpp:24
void set_last_entity(const std::string &name)
Set the last entity that was listed.
Definition pagination_context.cpp:44