Pol
Revision:cb584c9
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
ucfg.cpp
Go to the documentation of this file.
1
2
#include "
ucfg.h
"
3
4
#include <string.h>
5
6
#include "../cfgrepos.h"
7
#include "../module/datastoreimp.h"
8
9
namespace
Pol
10
{
11
namespace
Core
12
{
13
ConfigurationBuffer
configurationbuffer
;
14
15
ConfigurationBuffer::ConfigurationBuffer
()
16
: cfgfiles(), oldcfgfiles(), datastore(), file_access_rules()
17
{
18
}
19
20
ConfigurationBuffer::~ConfigurationBuffer
() {}
21
22
void
ConfigurationBuffer::deinitialize
()
23
{
24
// ToDo: we have to think over... it's a problem with script-inside references
25
oldcfgfiles
.clear();
26
cfgfiles
.clear();
27
28
for
( Core::DataStore::iterator itr =
datastore
.begin(); itr !=
datastore
.end(); ++itr )
29
{
30
Module::DataStoreFile
* dsf = ( *itr ).second;
31
delete
dsf;
32
}
33
datastore
.clear();
34
file_access_rules
.clear();
35
}
36
37
ConfigurationBuffer::Memory
ConfigurationBuffer::estimateSize
()
const
38
{
39
Memory
usage;
40
memset( &usage, 0,
sizeof
( usage ) );
41
42
usage.
misc
= 3 *
sizeof
( std::string* );
43
for
(
const
auto
& oldcfg :
oldcfgfiles
)
44
usage.
misc
+= oldcfg.capacity();
45
usage.
misc
+= 3 *
sizeof
(
Module::FileAccess
* );
46
for
(
const
auto
& rule :
file_access_rules
)
47
usage.
misc
+= rule.estimateSize();
48
49
50
usage.
cfg_count
=
cfgfiles
.size();
51
for
(
const
auto
& pair :
cfgfiles
)
52
{
53
size_t
cfgsize = 0;
54
if
( pair.second.get() != nullptr )
55
cfgsize += pair.second->estimateSize();
56
usage.
cfg_size
+= ( pair.first.capacity() + cfgsize ) + (
sizeof
(
void
* ) * 3 + 1 ) / 2;
57
}
58
59
usage.
datastore_count
=
datastore
.size();
60
for
(
const
auto
&
data
:
datastore
)
61
{
62
usage.
datastore_size
+= (
data
.first.capacity() +
sizeof
(
Module::DataStoreFile
* ) +
63
(
sizeof
(
void
* ) * 3 + 1 ) / 2 );
64
if
(
data
.second !=
nullptr
)
65
usage.
datastore_size
+=
data
.second->estimateSize();
66
}
67
return
usage;
68
}
69
}
70
}
Pol::Core::ConfigurationBuffer::Memory::cfg_size
size_t cfg_size
Definition:
ucfg.h:57
Pol::Core::ConfigurationBuffer::Memory::datastore_count
size_t datastore_count
Definition:
ucfg.h:58
Pol::Core::ConfigurationBuffer::oldcfgfiles
OldCfgFiles oldcfgfiles
Definition:
ucfg.h:50
Pol::Core::ConfigurationBuffer::file_access_rules
std::vector< Module::FileAccess > file_access_rules
Definition:
ucfg.h:52
Pol::Core::ConfigurationBuffer::deinitialize
void deinitialize()
Definition:
ucfg.cpp:22
Pol::Core::ConfigurationBuffer::estimateSize
Memory estimateSize() const
Definition:
ucfg.cpp:37
Pol::Module::DataStoreFile
Definition:
datastoreimp.h:125
Pol::Core::ConfigurationBuffer::~ConfigurationBuffer
~ConfigurationBuffer()
Definition:
ucfg.cpp:20
ucfg.h
Pol::Core::ConfigurationBuffer::Memory
Definition:
ucfg.h:54
Pol::Core::configurationbuffer
ConfigurationBuffer configurationbuffer
Definition:
ucfg.cpp:13
Pol::Core::ConfigurationBuffer::ConfigurationBuffer
ConfigurationBuffer()
Definition:
ucfg.cpp:15
Pol::Core::ConfigurationBuffer::Memory::datastore_size
size_t datastore_size
Definition:
ucfg.h:59
data
std::unordered_map< u64, ScriptDiffData > data
Definition:
osmod.cpp:966
Pol::Core::ConfigurationBuffer::Memory::cfg_count
size_t cfg_count
Definition:
ucfg.h:56
Pol::Core::ConfigurationBuffer
Definition:
ucfg.h:38
Pol::Core::ConfigurationBuffer::datastore
DataStore datastore
Definition:
ucfg.h:51
Pol::Core::ConfigurationBuffer::Memory::misc
size_t misc
Definition:
ucfg.h:60
Pol::Module::FileAccess
Definition:
fileaccess.h:29
Pol
Definition:
berror.cpp:12
Pol::Core::ConfigurationBuffer::cfgfiles
CfgFiles cfgfiles
Definition:
ucfg.h:49
pol
globals
ucfg.cpp
Generated on Wed Oct 10 2018 02:41:59 for Pol by
1.8.11