2014-12-30 14:14:41 +01:00
|
|
|
|
|
|
|
|
#include "systemstate.h"
|
2018-01-29 21:55:48 +01:00
|
|
|
|
2014-12-30 14:14:41 +01:00
|
|
|
#include "../clib/stlutil.h"
|
2024-11-03 14:37:38 +01:00
|
|
|
#include "objtype.h"
|
2014-12-30 14:14:41 +01:00
|
|
|
#include "pkg.h"
|
2018-12-21 20:27:05 +01:00
|
|
|
#include "tiles.h"
|
2014-12-30 14:14:41 +01:00
|
|
|
|
2026-01-17 10:30:21 +01:00
|
|
|
|
|
|
|
|
namespace Pol::Plib
|
2016-02-19 19:26:35 +01:00
|
|
|
{
|
|
|
|
|
SystemState systemstate;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SystemState::SystemState()
|
|
|
|
|
: packages(),
|
|
|
|
|
packages_byname(),
|
|
|
|
|
accounts_txt_dirty( false ),
|
|
|
|
|
accounts_txt_stat(),
|
|
|
|
|
config(),
|
2022-12-22 21:53:54 +01:00
|
|
|
tile(),
|
2023-11-23 01:15:52 +01:00
|
|
|
max_graphic( 0 )
|
2016-02-19 19:26:35 +01:00
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SystemState::deinitialize()
|
|
|
|
|
{
|
|
|
|
|
Clib::delete_all( packages );
|
|
|
|
|
packages_byname.clear();
|
2022-12-22 21:53:54 +01:00
|
|
|
tile.clear();
|
2016-02-19 19:26:35 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
size_t SystemState::estimatedSize() const
|
|
|
|
|
{
|
|
|
|
|
size_t size = sizeof( SystemState );
|
2022-12-22 21:53:54 +01:00
|
|
|
|
2024-07-28 10:42:47 +02:00
|
|
|
size += Clib::memsize( tile ) + Clib::memsize( packages ) + Clib::memsize( packages_byname );
|
2016-02-19 19:26:35 +01:00
|
|
|
|
|
|
|
|
for ( const auto& pkg : packages )
|
|
|
|
|
if ( pkg != nullptr )
|
|
|
|
|
size += pkg->estimateSize();
|
|
|
|
|
|
|
|
|
|
for ( const auto& pkg_pair : packages_byname )
|
2024-07-28 10:42:47 +02:00
|
|
|
size += pkg_pair.first.capacity();
|
2016-02-19 19:26:35 +01:00
|
|
|
return size;
|
|
|
|
|
}
|
2026-01-17 10:30:21 +01:00
|
|
|
} // namespace Pol::Plib
|