acme
Foundational cross-platform layer of the ca2 framework
Loading...
Searching...
No Matches
paged_memory Class Reference
Inheritance diagram for paged_memory:
memory_base MEMORY subparticle block quantum range< ::u8 * > memory_quantum quantum_flag

Public Member Functions

 paged_memory (const void *, memsize iCount)
 paged_memory (const memory_base &memory)
 paged_memory (const ::scoped_string &scopedstr)
 paged_memory (memory_container *pcontainer, ::f64 dAllocationRateUp=4096, ::u32 nAllocFlags=0)
 paged_memory (memory_container *pcontainer, const void *pMemory, memsize dwSize)
virtual::u8 * impl_alloc (memsize dwAllocation) override
virtual::u8 * impl_realloc (void *pdata, memsize dwAllocation) override
virtual void impl_free (::u8 *pdata) override
Public Member Functions inherited from memory_base
 memory_base (const memory_base &base)
 memory_base (memory_base &&base)
virtual string as_utf8 () const
virtual bool begins_eat (const BLOCK &block)
virtual bool ends_eat (const BLOCK &block)
virtual memory detach_as_primitive_memory ()
void defer_set_size (memsize sizeLarger)
virtual void set_size (memsize dwNewLength)
virtual void allocate_internal (memsize dwNewLength)
void truncate (memsize sizeSmaller)
virtual::u8 * impl_alloc (memsize dwAllocation)
virtual::u8 * impl_realloc (void *pdata, memsize dwAllocation)
virtual void reserve (memsize dwNewLength)
virtual void erase_offset ()
virtual memsize calc_allocation (memsize size)
virtual void assign_file (::file::file *pfileIn, memsize uiBufferSize=1024 *1024)
virtual void assign_entire_file (::file::file *pfileIn, memsize uiBufferSize=1024 *1024)
virtual void append_file (::file::file *pfileIn, memsize uiBufferSize=1024 *1024)
virtual void append_entire_file (::file::file *pfileIn, memsize uiBufferSize=1024 *1024)
void allocate_add_up (memsize iAddUp)
::subparticle_pointer clone () override
::block & block ()
const ::block & block () const
bool is_set () const
bool is_empty () const
bool has_data () const
inline ::u8 operator[] (::collection::index i) const
inline ::u8 & operator[] (::collection::index i)
 operator const ::u8 * () const
 operator::u8 * ()
 operator const void * () const
 operator void * ()
template<prototype_character CHARACTER>
range< CHARACTER * > get_buffer (character_count len)
memory_base & operator= (const ::memory_base &memory)
memory_base & operator= (const ::block &block)
memory_base & operator+= (const ::memory_base &memory)
memory_base & operator+= (const ::block &block)
void from_string (const ::wide_character *pwsz)
void from_string (const ::scoped_string &scopedstr)
void from_string (const ::string &str)
void from_string (const ::payload &payload)
void append_from_string (const ::wide_character *pwsz)
void append_from_string (const ::scoped_string &scopedstr)
void append_from_string (const ::string &str)
void append_from_string (const ::payload &payload)
void append_byte (::u8 b)
virtual string get_string () const
virtual string get_string (memsize iStart, memsize uiSize=-1) const
void delete_begin (memsize iSize)
void eat_begin (const void *pdata, memsize iSize)
void set_data (const void *pdata, memsize uiSize)
void set_at (::collection::index i, const void *pdata, memsize uiSize)
void copy_from (const memory_base *pstorage)
void copy_from (const void *pdata, memsize s)
void copy_to (void *pdata, memsize s) const
void set (::u8 b, memsize iStart=0, memsize uiSize=-1)
void zero (memsize iStart=0, memsize uiSize=-1)
void assign (const ::block &block)
void assign (const void *pdata, memsize iCount)
void assign (const void *pdata, memsize iStart, memsize iCount)
void assign (memsize iCount, uchar uch)
void append (const ::block &block)
void append (const void *pdata, memsize iCount)
void append (memsize iCount, uchar uch)
void append (const memory_base &memory, memsize iStart=0, memsize iCount=-1)
void append (::u8 b)
void clear ()
void splice (const ::u8 *pbMemory, memsize iCountSrc, memsize iStartDst=0, memsize iCountDst=0)
void splice (const memory_base &memory, memsize iStartDst=0, memsize iCountDst=0, memsize iStartSrc=0, memsize iCountSrc=-1)
::memory slice (memsize start, memsize count)
::memory left (memsize count)
::memory right (memsize count)
void move_and_grow (memsize offset)
void transfer (memsize offset, bool bGrow=false)
void to_hex (string &str, memsize iStart=0, memsize size=-1)
string to_hex (memsize iStart=0, memsize size=-1)
character_count from_hex (const ::block &block)
void to_base64 (string &str, memsize iStart=0, memsize size=-1)
string to_base64 (memsize iStart=0, memsize size=-1)
void from_base64 (const ::scoped_string &scopedstr)
void to_asc (string &str) const
string to_asc () const
void from_asc (const ::scoped_string &scopedstr)
bool operator== (const memory_base &s) const
bool operator== (const struct block &block) const
memory_base & reverse ()
memory_base & prefix_der_uint_content ()
memory_base & prefix_der_length ()
memory_base & prefix_der_type (::i32 iType)
memory_base & prefix_der_uint ()
memory_base & prefix_der_sequence ()
memsize get_length () const
memsize length () const
void set_char_at_grow (character_count iChar, ::i8 ch)
::u8 * find (const ::block &block, ::collection::index iStart=0) const
::collection::index find_index (const ::block &block, ::collection::index iStart=0) const
::collection::index find_index (::i8 ch, ::collection::index iStart=0) const
::u8 * rear_find (const ::block &block, ::collection::index iStart=0) const
::collection::index reverse_find_index (const ::block &block, ::collection::index iStart=0) const
::u8 * reverse_find_byte_not_in_block (const ::block &block, ::collection::index iStart=0) const
::collection::index reverse_find_index_of_byte_not_in_block (const ::block &block, ::collection::index iStart=0) const
::u8 * find_line_prefix (const ::block &blockPrefix, ::collection::index iStart=0)
::collection::index find_line_prefix_index (const ::block &blockPrefix, ::collection::index iStart=0)
void patch_line_suffix (const ::block &blockPrefix, const ::block &blockSuffix, ::collection::index iStart=0)
memory_base & erase (memsize pos=0, memsize len=-1)
Public Member Functions inherited from MEMORY
 MEMORY (const MEMORY &memory)
 MEMORY (MEMORY &&memory)
MEMORY & operator= (const MEMORY &memory)
void _assign (const MEMORY &memory)
void assign (const MEMORY &memory)
::u8 * storage_begin ()
const ::u8 * storage_begin () const
memsize storage_size () const
::u8 * storage_end ()
const ::u8 * storage_end () const
memsize offset () const
memsize max_offset () const
Public Member Functions inherited from block
 block (const block &block)
 block (const range< ::u8 * > &range)
 block (const memory_base &memory)
 block (const memory_base *pmemory)
 block (const atom &atom)
template<const_pointer_to_prototype_character PSZ>
 block (PSZ psz)
template<const_array_of_prototype_character CONSTCHARACTERA>
 block (CONSTCHARACTERA a)
template<array_of_non_prototype_character NONCHARACTERA>
 block (NONCHARACTERA &a)
template<prototype_integral INTEGRAL>
 block (INTEGRAL &i)
template<typename TYPE>
 block (enum_as_little_endian_block, TYPE &t)
template<typename TYPE>
 block (enum_as_block, TYPE &t)
template<typename TYPE>
 block (enum_as_block, const TYPE &t)
 block (const void *begin, const void *end)
template<prototype_integral INTEGRAL>
 block (const void *data, INTEGRAL count)
constexpr bool has_data () const
template<typename TYPE>
const TYPE * as_pointer () const
template<typename TYPE>
TYPE * as_pointer ()
template<typename ITERATOR_TYPE>
::range< ITERATOR_TYPE > as_range ()
template<typename ITERATOR_TYPE>
const ::range< ITERATOR_TYPE > as_range () const
template<typename ITERATOR_TYPE>
::character_range< ITERATOR_TYPE > as_character_range ()
template<typename ITERATOR_TYPE>
const ::character_range< ITERATOR_TYPE > as_character_range () const
template<prototype_aggregate AGGREGATE>
block & operator= (const AGGREGATE &aggregate)
template<character_count c>
block & operator= (const ::u8(&ba)[c])
template<typename T>
block & operator>> (T &t)
template<character_count c>
block & operator>> (::u8(&ba)[c])
block & from_base64 (const ::scoped_string &scopedstr) const
::std::strong_ordering compare (const block &block) const
bool operator== (const block &block) const
bool operator!= (const block &block) const
memsize find (const ::block &blockFind, memsize start=0) const
memsize _find (const ::block &blockFind, memsize start=0) const
void copy (const ::block &block)
bool begins (const ::block &block) const
bool ends (const ::block &block) const
::u8 & first_byte (::collection::index i=0)
::u8 first_byte (::collection::index i=0) const
::u8 & last_byte (::collection::index i=-1)
::u8 last_byte (::collection::index i=-1) const
Public Member Functions inherited from range< ::u8 * >
constexpr range (no_initialize_t)
constexpr range (nullptr_t)
constexpr range (const ITEM(&array)[count], enum_range erange=e_range_none)
constexpr range (const TYPED_RANGE &range)
constexpr range (const range &range)
constexpr range (range &&range)
constexpr range (TYPE *&p)
constexpr range (this_iterator begin, INTEGRAL count, enum_range erange=e_range_none)
constexpr range (this_iterator begin, this_iterator end, enum_range erange=e_range_none)
constexpr range (this_iterator begin, EQUALITY equality)
range & operator= (const range &range)
range & operator= (range &&range)
void add_initializer_list (const ::std::initializer_list< ITEM > &initializer_list)
void set_null ()
constexpr THIS_RAW_RANGE operator() (START start) const
constexpr THIS_RAW_RANGE operator() (START start, COUNT count) const
::collection::count array_get_count () const
void block_concatenate_to (A_ITEM *&p)
constexpr THIS_RAW_RANGE operator() (START start)
THIS_RAW_RANGE operator() (START start, COUNT count)
constexpr auto index_of (const_iterator p) const
this_iterator & begin ()
this_iterator & end ()
const_iterator begin () const
const_iterator end () const
this_iterator & begin (this_iterator begin)
this_iterator & end (this_iterator end)
auto & first ()
auto & first () const
constexpr this_iterator data ()
constexpr const this_iterator data () const
constexpr ::collection::count size () const
constexpr memsize size_in_bytes () const
constexpr bool is_empty () const
constexpr bool is_set () const
bool operator! () const
constexpr bool is_before_begin (const_iterator iterator) const
constexpr bool is_end (const_iterator iterator) const
constexpr bool is_iterator_ok (const_iterator iterator) const
constexpr bool is_this_range (const range &range) const
constexpr THIS_RAW_RANGE _start_range (memsize start) const
constexpr THIS_RAW_RANGE _end_range (const_iterator end) const
constexpr THIS_RAW_RANGE _start_count_range (memsize start, memsize count) const
constexpr bool _equals (const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) const
constexpr bool equals (const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) const
constexpr auto _order (const THIS_RAW_RANGE &rangeBlock, ORDERING ordering) const
constexpr auto order (const THIS_RAW_RANGE &rangeBlock, ORDERING ordering) const
constexpr const_iterator _find (const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) const
constexpr const_iterator find (const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) const
constexpr const_iterator _rear_find (const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) const
constexpr const_iterator rear_find (const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) const
constexpr const_iterator _find_first_character (ITEM item, EQUALITY equality) const
constexpr const_iterator find_first_character (ITEM item, EQUALITY equality) const
constexpr const_iterator _find_first_character_in (const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) const
constexpr const_iterator find_first_character_in (const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) const
constexpr const_iterator _rear_find_first_character_in (const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) const
constexpr const_iterator rear_find_first_character_in (const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) const
constexpr const_iterator _skip (ARG_ITEM item, EQUALITY equality) const
constexpr const_iterator skip (ARG_ITEM item, EQUALITY equality) const
constexpr const_iterator _rear_skip (ARG_ITEM item, EQUALITY equality) const
constexpr const_iterator rear_skip (ARG_ITEM item, EQUALITY equality) const
constexpr const_iterator _rear_find (ARG_ITEM item, EQUALITY equality) const
constexpr const_iterator rear_find (ARG_ITEM item, EQUALITY equality) const
constexpr bool _begins (const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) const
constexpr bool begins (const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) const
constexpr bool _ends (const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) const
constexpr bool ends (const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) const
Public Member Functions inherited from subparticle
 subparticle (const ::subparticle &subparticle)
 subparticle (::subparticle &&subparticle)
virtual void initialize (::particle *pparticle)
bool should_disable_referencing_debugging () const
::platform::system * system () const
virtual bool defer_consume_main_arguments (::i32 argc, char_pointer *argv, ::i32 &iArgument)
 virtual bool should_create_sequence_on_synchronicity();
virtual void call ()
virtual void get_debug_title (char_pointer sz, character_count c) const
virtual::string get_short_debug_text (::i32 i) const
virtual void operator() ()
virtual void run ()
virtual class::time get_run_timeout ()
virtual bool subparticle_step ()
inline ::collection::count reference_count () const
inline ::i64 increment_reference_count ()
inline ::i64 decrement_reference_count ()
inline ::i64 replace_reference ()
inline ::i64 release ()
bool is_referencing_debugging_enabled () const
virtual bool _is_set () const
virtual bool _is_ok () const
virtual enum_type get_payload_type () const
virtual void init_task ()
virtual void term_task ()
virtual void destroy ()
virtual void destroy_impl_data ()
virtual void destroy_os_data ()
template<typename TYPE>
::cast< TYPE > cast ()
template<typename TYPE>
::cast< TYPE > cast () const
virtual::subparticle_pointer clone ()
virtual void delete_this ()
virtual void call_member (enum_id eid)
virtual void write_to_stream (::binary_stream &stream)
virtual void read_from_stream (::binary_stream &stream)
virtual class::time timeout () const
virtual void set_timeout (const class time &time)
virtual hsynchronization get_synchronization_handle ()
virtual::e_status lock ()
virtual::e_status lock (const class time &timeWait)
virtual::e_status wait ()
virtual::e_status wait (const class time &timeWait)
virtual::e_status wait (const ::function< bool() > &functionShouldContinue)
virtual void _lock ()
virtual bool _lock (const class time &timeWait)
virtual void _wait ()
virtual bool _wait (const class time &timeWait)
virtual bool is_locked () const
virtual void unlock ()
virtual void unlock (::i32 lCount, ::i32 *pPrevCount=nullptr)
virtual void init_wait ()
virtual void exit_wait ()
virtual void acquire_ownership ()
virtual void release_ownership ()
virtual character_count sz_len () const
virtual void to_sz (char_pointer sz, character_count len) const
virtual void on_timed_out ()
virtual bool start_notify_lock (::notify_lock *pnotifylock)
virtual void end_notify_lock (::notify_lock *pnotifylock)
Public Member Functions inherited from quantum
 quantum (const ::quantum &quantum)
 quantum (::quantum &&quantum)
bool has_flag (enum_flag eflag) const
void set_flag (enum_flag eflag)
void set_flag (enum_flag eflag, bool bSet)
void clear_flag (enum_flag eflag)
void set_ok_flag ()
void set_nok (enum_flag estatusFailure=e_flag_failure)
void set_modified_flag (bool bModified=true)
bool has_proto_flag () const
void set_fail_flag ()
void set_timed_out_flag ()
void set_persistent_flag (bool bSet=true)
bool has_ok_flag () const
bool nok () const
bool has_timed_out_flag ()
bool has_modified_flag () const
bool has_persistent_flag () const
bool has_shared_flag () const
void set_shared_flag (bool bSet=true)
bool has_finishing_flag () const
void set_finishing_flag ()
void clear_finishing_flag ()
bool has_initialized_flag () const
void set_initialized_flag ()
void clear_initialized_flag ()
bool has_acquired_flag () const
void set_acquired_flag ()
void clear_acquired_flag ()
bool has_own_synchronization_flag () const
void set_own_synchronization_flag (bool bSet=true)
void clear_own_synchronization_flag ()
bool has_already_exists_flag () const
void set_already_exists_flag (bool bSet=true)
void clear_already_exists_flag ()
bool has_running_flag () const
void set_running_flag ()
void clear_running_flag ()
bool has_destroying_flag () const
void set_destroying_flag ()
void clear_destroying_flag ()
bool has_storing_flag () const
bool has_loading_flag () const
void set_storing_flag ()
void set_loading_flag ()
void defer_set_storing_flag ()
void defer_set_loading_flag ()
void set_statically_allocated_flag ()
void set_verbose_flag (bool bVerbose=true)
bool has_verbose_flag () const
bool has_read_only_flag () const
void set_read_only_flag ()
void clear_read_only_flag ()
bool has_owner_flag () const
void set_owner_flag ()
void clear_owner_flag ()
bool is_status_ok () const
bool has_failed_status () const
virtual void call_request (::request *prequest)
 inline void set_realized() { set_flag(e_flag_realized); }
virtual void request (::request *prequest)
virtual void on_request (::request *prequest)
Public Member Functions inherited from memory_quantum
void * operator new (size_t s)
void * operator new[] (size_t s)
void operator delete (void *p)
void operator delete[] (void *p)

Additional Inherited Members

Public Types inherited from memory_base
typedef bstring_manager manager
typedef ::u8 value_type
Public Types inherited from block
using PRIMITIVE_BLOCK_TAG = PRIMITIVE_BLOCK_TAG_TYPE
Public Types inherited from range< ::u8 * >
using this_iterator
using iterator
using const_iterator
using THIS_RAW_RANGE
using RAW_RANGE
using CONST_RAW_RANGE
using THIS_RANGE
using RANGE
using CONST_RANGE
using ITEM_POINTER
using THIS_ITEM
using ITEM
using CONST_ITEM
using ARG_ITEM
Static Public Member Functions inherited from range< ::u8 * >
static constexpr memsize item_size ()
static constexpr bool _initialize_equals (bool &b, const THIS_RAW_RANGE &range, const THIS_RAW_RANGE &rangeBlock)
static constexpr bool _static_equals (THIS_RAW_RANGE range, THIS_RAW_RANGE rangeBlock, EQUALITY equality)
static constexpr bool static_equals (const THIS_RAW_RANGE &range, const THIS_RAW_RANGE &rangeBlock, EQUALITY equality)
static constexpr auto _static_order (THIS_RAW_RANGE range, THIS_RAW_RANGE rangeBlock, ORDERING ordering)
static constexpr auto static_order (const THIS_RAW_RANGE &range, const THIS_RAW_RANGE &rangeBlock, ORDERING ordering)
static bool _initialize_find (const_iterator &p, const THIS_RAW_RANGE &range, const THIS_RAW_RANGE &rangeBlock)
static const_iterator _static_find (THIS_RAW_RANGE range, const THIS_RAW_RANGE &rangeBlock, EQUALITY equality)
static const_iterator static_find (const THIS_RAW_RANGE &range, const THIS_RAW_RANGE &rangeBlock, EQUALITY equality)
static bool _initialize_rear_find (const_iterator &p, const THIS_RAW_RANGE &range, const THIS_RAW_RANGE &rangeBlock)
static const_iterator _static_rear_find (THIS_RAW_RANGE range, const THIS_RAW_RANGE &rangeBlock, EQUALITY equality)
static const_iterator static_rear_find (const THIS_RAW_RANGE &range, const THIS_RAW_RANGE &rangeBlock, EQUALITY equality)
static constexpr bool _initialize_find_first_character (const_iterator &p, const THIS_RAW_RANGE &range, ITEM2 item) noexcept
static constexpr const_iterator _static_find_first_character (THIS_RAW_RANGE range, ITEM item, EQUALITY equality) noexcept
static constexpr const_iterator static_find_first_character (const THIS_RAW_RANGE &range, ITEM item, EQUALITY equality) noexcept
static constexpr bool _initialize_find_first_character_in (const_iterator &p, const THIS_RAW_RANGE &range, const THIS_RAW_RANGE &rangeBlock) noexcept
static constexpr const_iterator _static_find_first_character_in (THIS_RAW_RANGE range, const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) noexcept
static constexpr const_iterator static_find_first_character_in (const THIS_RAW_RANGE &range, const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) noexcept
static constexpr bool _initialize_rear_find_first_character_in (const_iterator &p, const THIS_RAW_RANGE &range, const THIS_RAW_RANGE &rangeBlock) noexcept
static constexpr const_iterator _static_rear_find_first_character_in (THIS_RAW_RANGE range, const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) noexcept
static constexpr const_iterator static_rear_find_first_character_in (THIS_RAW_RANGE range, const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) noexcept
static constexpr bool _initialize_skip (const_iterator &p, const THIS_RAW_RANGE &range) noexcept
static constexpr const_iterator _static_skip (THIS_RAW_RANGE range, ARG_ITEM item, EQUALITY equality) noexcept
static constexpr const_iterator static_skip (const THIS_RAW_RANGE &range, ARG_ITEM item, EQUALITY equality) noexcept
static constexpr bool _initialize_rear_skip (const_iterator &p, const THIS_RAW_RANGE &range) noexcept
static constexpr const_iterator _static_rear_skip (THIS_RAW_RANGE range, ARG_ITEM item, EQUALITY equality) noexcept
static constexpr const_iterator static_rear_skip (const THIS_RAW_RANGE &range, ARG_ITEM item, EQUALITY equality) noexcept
static constexpr bool _initialize_find_item (const_iterator &p, const THIS_RAW_RANGE &range) noexcept
static constexpr bool _initialize_rear_find (const_iterator &p, const THIS_RAW_RANGE &range) noexcept
static constexpr const_iterator _static_rear_find (THIS_RAW_RANGE range, ARG_ITEM item, EQUALITY equality) noexcept
static constexpr const_iterator static_rear_find (THIS_RAW_RANGE range, ARG_ITEM item, EQUALITY equality) noexcept
static constexpr bool _initialize_contains (bool &b, const THIS_RAW_RANGE &range, const THIS_RAW_RANGE &rangeBlock) noexcept
static constexpr bool _static_begins (THIS_RAW_RANGE range, THIS_RAW_RANGE rangeBlock, EQUALITY equality) noexcept
static constexpr bool static_begins (const THIS_RAW_RANGE &range, const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) noexcept
static constexpr bool _static_ends (THIS_RAW_RANGE range, THIS_RAW_RANGE rangeBlock, EQUALITY equality) noexcept
static constexpr bool static_ends (const THIS_RAW_RANGE &range, const THIS_RAW_RANGE &rangeBlock, EQUALITY equality) noexcept
Public Attributes inherited from MEMORY
bool m_bOwner
bool m_bReadOnly
::u8 * m_beginStorage
memsize m_sizeStorage
::f64 m_dAllocationRateUp
::u32 m_dwAllocationAddUp
memory_container * m_pcontainer
enum_memory m_ememory
read_only_memory * m_preadonlymemory
memory * m_pprimitivememory
shared_memory * m_psharedmemory
paged_memory * m_pvirtualmemory
Public Attributes inherited from range< ::u8 * >
this_iterator m_begin
this_iterator m_end
enum_range m_erange
Public Attributes inherited from subparticle
::interlocked_count m_countReference
Public Attributes inherited from quantum
::e_status m_estatus
Public Attributes inherited from quantum_flag
::e_flag m_eflagElement

Member Function Documentation

◆ impl_free()

void paged_memory::impl_free ( ::u8 * pdata)
overridevirtual

Reimplemented from memory_base.


The documentation for this class was generated from the following files:
  • prototype/prototype/paged_memory.h
  • prototype/prototype/paged_memory.cpp