hce-node application
1.4.3
HCE Hierarchical Cluster Engine node application
Main Page
Namespaces
Classes
Files
File List
File Members
hce-node application
HCE project node model
Namespaces
Classes
Files
File List
sources
src
utils
algorithms
applicationFramework
src
exceptions
AdminClient.cpp
AdminClient.h
ApplicationDefine.hpp
ApplicationPattern.cpp
ApplicationPattern.h
AStorageHandler.cpp
AStorageHandler.h
AVLTree.h
BaseHandler.h
Config.cpp
Config.h
CRC.h
CRC16.cpp
CRC16.h
CRC32.cpp
CRC32.h
CRC64.cpp
CRC64.h
DBSession.cpp
DBSession.hpp
ExternConfigurationObject.hpp
ExternDataBaseSessionObject.hpp
FileWriter.cpp
FileWriter.h
Funcs.cpp
Funcs.h
HttpParser.cpp
HttpParser.h
LGrammar.cpp
LGrammar.h
Logger.cpp
Logger.hpp
LogHandler.h
makro.h
MultiMediaCounters.h
MysqlLite.cpp
MysqlLite.h
NameValueMass.cpp
NameValueMass.h
Person.h
ProcFileSystem.cpp
ProcFileSystem.h
ReaderWriterGuards.h
Restart.cpp
Restart.h
revision.h
ServerApplication.cpp
ServerApplication.hpp
Signals.cpp
Signals.h
StatusHandler.h
String.cpp
String.h
Thread.cpp
Thread.hpp
Timer.h
TResStatHandler.h
UpdateExtendedTypes.cpp
UpdateExtendedTypes.h
tests
asmXMLParser
base64
coreDumpChecker
DRCE
exec
HCECSM
jsonObjExtractor
kvdb
messageStream
reduceAdditionCore
reduceCore
reduceDRCE
reduceHandler
reduceSphinx
refine
serializable
sphinx
types
xmlCleaner
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
AStorageHandler.h
Go to the documentation of this file.
1
#ifndef ASTORAGEHANDLER_H
2
#define ASTORAGEHANDLER_H
3
#include <stdio.h>
4
#include <sys/types.h>
5
#include <sys/stat.h>
6
#include <fcntl.h>
7
#include <stdarg.h>
8
#include <
string.h
>
9
#include <math.h>
10
#include <new>
11
#include <
BaseHandler.h
>
12
#include <THash.h>
13
#include <
CRC32.h
>
14
#include <
String.h
>
15
#include <Thread_t.h>
16
#include <
FileWriter.h
>
17
18
class
StorageData
19
{
20
public
:
21
StorageData
():
data
(NULL),
type
(NULL),
count
(0){}
22
StorageData
(
const
StorageData
&storageData)
23
{
24
count
= storageData.
count
;
25
data
= (
_Data
*)malloc(
sizeof
(
_Data
) *
count
);
26
type
= (
DataType
*)malloc(
sizeof
(
DataType
) *
count
);
27
memcpy(
data
, storageData.
data
,
sizeof
(
_Data
) *
count
);
28
memcpy(
type
, storageData.
type
,
sizeof
(
DataType
) * count);
29
}
30
~StorageData
()
31
{
32
if
(
data
)
free
(
data
);
33
if
(
type
)
free
(
type
);
34
}
35
void
init
(
int
count
)
36
{
37
this->count =
count
;
38
data
= (
_Data
*)malloc(
sizeof
(
_Data
) *
count
);
39
type
= (
DataType
*)malloc(
sizeof
(
DataType
) *
count
);
40
for
(
int
i = 0; i <
count
; i++)
type
[i] =
EMPTY
;
41
}
42
void
resize
(
int
count
)
43
{
44
data
= (
_Data
*)realloc(
data
,
sizeof
(
_Data
) *
count
);
45
type
= (
DataType
*)realloc(
type
,
sizeof
(
DataType
) *
count
);
46
for
(
int
i = this->count; i <
count
; i++)
type
[i] =
EMPTY
;
47
this->count =
count
;
48
}
49
StorageData
&
operator=
(
StorageData
&storageData)
50
{
51
if
(this->
data
)
free
(this->
data
);
52
if
(this->
type
)
free
(this->
type
);
53
init
(storageData.
count
);
54
memcpy(
data
, storageData.
data
,
sizeof
(
_Data
) *
count
);
55
memcpy(
type
, storageData.
type
,
sizeof
(
DataType
) * count);
56
return
*
this
;
57
}
58
enum
DataType
59
{
60
EMPTY
= 0,
INTEGER
,
REAL
,
STRING
61
};
62
union
_Data
63
{
64
long
long
integer
;
65
double
real
;
66
char
*
string
;
67
}*
data
;
68
DataType
*
type
;
69
int
count
;
70
};
71
72
class
StorageHash
:
public
THash<StorageData, String>
73
{
74
public
:
75
StorageHash
(
unsigned
long
count):THash<
StorageData
,
String
>(count){}
76
int
dump
(
const
char
* filename);
77
bool
load
(
const
char
* filename);
78
79
private
:
80
unsigned
long
hashFunc(
String
name
){
return
crc.
calc
((
char
*)name.
c_str
(), name.
length
());}
81
void
destroyFunc(
String
name,
StorageData
data
)
82
{
83
for
(
int
i = 0; i < data.
count
; i++)
84
{
85
if
(data.
type
[i] ==
StorageData::STRING
)
free
(data.
data
[i].
string
);
86
}
87
}
88
CRC32
crc;
89
};
90
91
class
AStorageHandler
:
public
BaseHandler
92
{
93
public
:
94
AStorageHandler
():
BaseHandler
(102), hash(113){}
95
~AStorageHandler
(){hash.destroy();}
96
virtual
void
*
handle
(
char
code, ...);
97
void
setValue
(
const
char
*name,
long
long
value,
int
slot = 0);
98
void
setValue
(
const
char
*name,
double
value,
int
slot = 0);
99
void
setValue
(
const
char
*name,
const
char
*value,
int
slot = 0);
100
bool
addToValue
(
const
char
*name,
long
long
delta,
int
slot = 0);
101
bool
addToValue
(
const
char
*name,
double
delta,
int
slot = 0);
102
long
long
getInteger
(
const
char
*name,
int
slot = 0);
103
double
getFloat
(
const
char
*name,
int
slot = 0);
104
char
*
getString
(
const
char
*name,
int
slot = 0);
105
int
dump
(
const
char
* filename){
return
hash.
dump
(filename);}
106
bool
load
(
const
char
* filename)
107
{
108
long
long
oldStartDate =
getInteger
(
"StartDate"
);
109
bool
ok = hash.
load
(filename);
110
if
(oldStartDate)
111
{
112
setValue
(
"StartDate"
, oldStartDate);
113
}
114
return
ok;
115
}
116
117
protected
:
118
void
*
handle
(
char
code, va_list &list);
119
120
private
:
121
StorageHash
hash;
122
Mutex mutex;
123
};
124
#endif
sources
utils
applicationFramework
src
AStorageHandler.h
Generated on Tue Jun 30 2015 19:42:10 for hce-node application by
1.8.1.2