Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
barry cho
Hikyuu
Commits
59bdac33
Commit
59bdac33
authored
5 years ago
by
fasiondog
Browse files
Options
Download
Email Patches
Plain Diff
内存泄漏检测优化全局变量避免误报(continue)
parent
c76edbf4
master
develop
pybind
simd
1.2.3
1.2.1
1.2.0
1.1.9
1.1.8
1.1.7
1.1.6
1.1.5
No related merge requests found
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
.clang-format
+1
-1
.clang-format
hikyuu_cpp/hikyuu/GlobalInitializer.cpp
+3
-2
hikyuu_cpp/hikyuu/GlobalInitializer.cpp
hikyuu_cpp/hikyuu/data_driver/DataDriverFactory.cpp
+10
-2
hikyuu_cpp/hikyuu/data_driver/DataDriverFactory.cpp
hikyuu_cpp/hikyuu/data_driver/KDataDriver.cpp
+15
-13
hikyuu_cpp/hikyuu/data_driver/KDataDriver.cpp
hikyuu_cpp/hikyuu/data_driver/KDataDriver.h
+7
-8
hikyuu_cpp/hikyuu/data_driver/KDataDriver.h
hikyuu_cpp/hikyuu/data_driver/kdata/hdf5/H5KDataDriver.h
+17
-25
hikyuu_cpp/hikyuu/data_driver/kdata/hdf5/H5KDataDriver.h
hikyuu_cpp/unit_test/xmake.lua
+2
-2
hikyuu_cpp/unit_test/xmake.lua
with
55 additions
and
53 deletions
+55
-53
.clang-format
+
1
-
1
View file @
59bdac33
...
...
@@ -44,7 +44,7 @@ BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: BeforeColon
BreakAfterJavaFieldAnnotations: false
BreakStringLiterals: true
ColumnLimit: 1
2
0
ColumnLimit: 1
0
0
CommentPragmas: '^ IWYU pragma:'
CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: true
...
...
This diff is collapsed.
Click to expand it.
hikyuu_cpp/hikyuu/GlobalInitializer.cpp
+
3
-
2
View file @
59bdac33
...
...
@@ -39,10 +39,11 @@ void GlobalInitializer::init() {
}
void
GlobalInitializer
::
clean
()
{
DataDriverFactory
::
release
();
StockManager
::
quit
();
H5close
();
DataDriverFactory
::
release
();
//H5close();
spdlog
::
drop_all
();
...
...
This diff is collapsed.
Click to expand it.
hikyuu_cpp/hikyuu/data_driver/DataDriverFactory.cpp
+
10
-
2
View file @
59bdac33
...
...
@@ -13,7 +13,6 @@
#include
"kdata/hdf5/H5KDataDriver.h"
#include
"kdata/mysql/MySQLKDataDriver.h"
#include
"kdata/tdx/TdxKDataDriver.h"
#include
"kdata/hdf5/H5KDataDriver.h"
#include
"DataDriverFactory.h"
#include
"KDataDriver.h"
...
...
@@ -131,6 +130,15 @@ void DataDriverFactory::removeKDataDriver(const string& name) {
KDataDriverPtr
DataDriverFactory
::
getKDataDriver
(
const
Parameter
&
params
)
{
KDataDriverPtr
result
;
string
name
=
params
.
get
<
string
>
(
"type"
);
to_upper
(
name
);
auto
iter
=
m_kdataDrivers
->
find
(
name
);
if
(
iter
!=
m_kdataDrivers
->
end
())
{
result
=
iter
->
second
;
result
->
init
(
params
);
}
return
result
;
/*KDataDriverPtr result;
auto param_iter = m_param_kdataDrivers->find(params);
if (param_iter != m_param_kdataDrivers->end()) {
result = param_iter->second;
...
...
@@ -152,7 +160,7 @@ KDataDriverPtr DataDriverFactory::getKDataDriver(const Parameter& params) {
(*m_param_kdataDrivers)[params] = result;
}
return
result
;
return result;
*/
}
}
/* namespace hku */
This diff is collapsed.
Click to expand it.
hikyuu_cpp/hikyuu/data_driver/KDataDriver.cpp
+
15
-
13
View file @
59bdac33
...
...
@@ -25,9 +25,9 @@ HKU_API std::ostream& operator<<(std::ostream& os, const KDataDriverPtr& driver)
return
os
;
}
KDataDriver
::
KDataDriver
()
:
m_name
(
""
)
{}
KDataDriver
::
KDataDriver
()
:
m_name
(
""
)
,
m_inited
(
false
)
{}
KDataDriver
::
KDataDriver
(
const
string
&
name
)
:
m_name
(
name
)
{
KDataDriver
::
KDataDriver
(
const
string
&
name
)
:
m_name
(
name
)
,
m_inited
(
false
)
{
to_upper
(
m_name
);
}
...
...
@@ -52,6 +52,10 @@ bool KDataDriver::checkType() {
}
bool
KDataDriver
::
init
(
const
Parameter
&
params
)
{
if
(
m_inited
)
{
return
m_inited
;
}
if
(
m_params
==
params
)
{
return
true
;
}
...
...
@@ -61,34 +65,32 @@ bool KDataDriver::init(const Parameter& params) {
return
false
;
}
return
_init
();
m_inited
=
_init
();
return
m_inited
;
}
void
KDataDriver
::
loadKData
(
const
string
&
market
,
const
string
&
code
,
KQuery
::
KType
kType
,
size_t
start_ix
,
size_t
end_ix
,
KRecordListPtr
out_buffer
)
{}
void
KDataDriver
::
loadKData
(
const
string
&
market
,
const
string
&
code
,
KQuery
::
KType
kType
,
size_t
start_ix
,
size_t
end_ix
,
KRecordListPtr
out_buffer
)
{}
size_t
KDataDriver
::
getCount
(
const
string
&
market
,
const
string
&
code
,
KQuery
::
KType
kType
)
{
return
0
;
}
bool
KDataDriver
::
getIndexRangeByDate
(
const
string
&
market
,
const
string
&
code
,
const
KQuery
&
query
,
size_t
&
out_start
,
size_t
&
out_end
)
{
bool
KDataDriver
::
getIndexRangeByDate
(
const
string
&
market
,
const
string
&
code
,
const
KQuery
&
query
,
size_t
&
out_start
,
size_t
&
out_end
)
{
return
false
;
}
KRecord
KDataDriver
::
getKRecord
(
const
string
&
market
,
const
string
&
code
,
size_t
pos
,
KQuery
::
KType
kType
)
{
KRecord
KDataDriver
::
getKRecord
(
const
string
&
market
,
const
string
&
code
,
size_t
pos
,
KQuery
::
KType
kType
)
{
return
Null
<
KRecord
>
();
}
TimeLineList
KDataDriver
::
getTimeLineList
(
const
string
&
market
,
const
string
&
code
,
const
KQuery
&
query
)
{
TimeLineList
KDataDriver
::
getTimeLineList
(
const
string
&
market
,
const
string
&
code
,
const
KQuery
&
query
)
{
HKU_INFO
(
"This driver not support time-line!"
);
return
TimeLineList
();
}
TransList
KDataDriver
::
getTransList
(
const
string
&
market
,
const
string
&
code
,
const
KQuery
&
query
)
{
TransList
KDataDriver
::
getTransList
(
const
string
&
market
,
const
string
&
code
,
const
KQuery
&
query
)
{
HKU_INFO
(
"This driver not support transaction record!"
);
return
TransList
();
}
...
...
This diff is collapsed.
Click to expand it.
hikyuu_cpp/hikyuu/data_driver/KDataDriver.h
+
7
-
8
View file @
59bdac33
...
...
@@ -48,8 +48,8 @@ public:
* @param end_ix 欲加载的结束位置,不包含自身
* @param out_buffer [out] 缓存指针
*/
virtual
void
loadKData
(
const
string
&
market
,
const
string
&
code
,
KQuery
::
KType
kType
,
size_t
start_ix
,
size_t
end_ix
,
KRecordListPtr
out_buffer
);
virtual
void
loadKData
(
const
string
&
market
,
const
string
&
code
,
KQuery
::
KType
kType
,
size_t
start_ix
,
size_t
end_ix
,
KRecordListPtr
out_buffer
);
/**
* 获取指定类型的K线数据量
...
...
@@ -69,8 +69,8 @@ public:
* @param out_end [out] 对应的K线记录位置
* @return
*/
virtual
bool
getIndexRangeByDate
(
const
string
&
market
,
const
string
&
code
,
const
KQuery
&
query
,
size_t
&
out_start
,
size_t
&
out_end
);
virtual
bool
getIndexRangeByDate
(
const
string
&
market
,
const
string
&
code
,
const
KQuery
&
query
,
size_t
&
out_start
,
size_t
&
out_end
);
/**
* 获取指定的K线记录
...
...
@@ -80,8 +80,7 @@ public:
* @param kType K线类型
* @return
*/
virtual
KRecord
getKRecord
(
const
string
&
market
,
const
string
&
code
,
size_t
pos
,
KQuery
::
KType
kType
);
virtual
KRecord
getKRecord
(
const
string
&
market
,
const
string
&
code
,
size_t
pos
,
KQuery
::
KType
kType
);
/**
* 获取分时线
...
...
@@ -90,8 +89,7 @@ public:
* @param query 查询条件
* @return
*/
virtual
TimeLineList
getTimeLineList
(
const
string
&
market
,
const
string
&
code
,
const
KQuery
&
query
);
virtual
TimeLineList
getTimeLineList
(
const
string
&
market
,
const
string
&
code
,
const
KQuery
&
query
);
/**
* 获取历史分笔数据
...
...
@@ -107,6 +105,7 @@ private:
private:
string
m_name
;
bool
m_inited
;
//是否已初始化
};
typedef
shared_ptr
<
KDataDriver
>
KDataDriverPtr
;
...
...
This diff is collapsed.
Click to expand it.
hikyuu_cpp/hikyuu/data_driver/kdata/hdf5/H5KDataDriver.h
+
17
-
25
View file @
59bdac33
...
...
@@ -20,17 +20,14 @@ public:
virtual
~
H5KDataDriver
();
virtual
bool
_init
()
override
;
virtual
void
loadKData
(
const
string
&
market
,
const
string
&
code
,
KQuery
::
KType
kType
,
size_t
start_ix
,
size_t
end_ix
,
KRecordListPtr
out_buffer
)
override
;
virtual
void
loadKData
(
const
string
&
market
,
const
string
&
code
,
KQuery
::
KType
kType
,
size_t
start_ix
,
size_t
end_ix
,
KRecordListPtr
out_buffer
)
override
;
virtual
size_t
getCount
(
const
string
&
market
,
const
string
&
code
,
KQuery
::
KType
kType
)
override
;
virtual
bool
getIndexRangeByDate
(
const
string
&
market
,
const
string
&
code
,
const
KQuery
&
query
,
size_t
&
out_start
,
size_t
&
out_end
)
override
;
virtual
KRecord
getKRecord
(
const
string
&
market
,
const
string
&
code
,
size_t
pos
,
KQuery
::
KType
kType
)
override
;
virtual
TimeLineList
getTimeLineList
(
const
string
&
market
,
const
string
&
code
,
const
KQuery
&
query
)
override
;
virtual
TransList
getTransList
(
const
string
&
market
,
const
string
&
code
,
const
KQuery
&
query
)
override
;
virtual
bool
getIndexRangeByDate
(
const
string
&
market
,
const
string
&
code
,
const
KQuery
&
query
,
size_t
&
out_start
,
size_t
&
out_end
)
override
;
virtual
KRecord
getKRecord
(
const
string
&
market
,
const
string
&
code
,
size_t
pos
,
KQuery
::
KType
kType
)
override
;
virtual
TimeLineList
getTimeLineList
(
const
string
&
market
,
const
string
&
code
,
const
KQuery
&
query
)
override
;
virtual
TransList
getTransList
(
const
string
&
market
,
const
string
&
code
,
const
KQuery
&
query
)
override
;
private:
void
H5ReadRecords
(
H5
::
DataSet
&
,
hsize_t
,
hsize_t
,
void
*
);
...
...
@@ -38,36 +35,31 @@ private:
void
H5ReadTimeLineRecords
(
H5
::
DataSet
&
,
hsize_t
,
hsize_t
,
void
*
);
void
H5ReadTransRecords
(
H5
::
DataSet
&
,
hsize_t
,
hsize_t
,
void
*
);
bool
_getH5FileAndGroup
(
const
string
&
market
,
const
string
&
code
,
KQuery
::
KType
kType
,
H5FilePtr
&
out_file
,
H5
::
Group
&
out_group
);
bool
_getH5FileAndGroup
(
const
string
&
market
,
const
string
&
code
,
KQuery
::
KType
kType
,
H5FilePtr
&
out_file
,
H5
::
Group
&
out_group
);
KRecord
_getBaseRecord
(
const
string
&
,
const
string
&
,
size_t
,
KQuery
::
KType
);
KRecord
_getOtherRecord
(
const
string
&
,
const
string
&
,
size_t
,
KQuery
::
KType
);
void
_loadBaseData
(
const
string
&
market
,
const
string
&
code
,
KQuery
::
KType
kType
,
size_t
start_ix
,
size_t
end_ix
,
KRecordListPtr
out_buffer
);
void
_loadIndexData
(
const
string
&
market
,
const
string
&
code
,
KQuery
::
KType
kType
,
size_t
start_ix
,
size_t
end_ix
,
KRecordListPtr
out_buffer
);
void
_loadBaseData
(
const
string
&
market
,
const
string
&
code
,
KQuery
::
KType
kType
,
size_t
start_ix
,
size_t
end_ix
,
KRecordListPtr
out_buffer
);
void
_loadIndexData
(
const
string
&
market
,
const
string
&
code
,
KQuery
::
KType
kType
,
size_t
start_ix
,
size_t
end_ix
,
KRecordListPtr
out_buffer
);
bool
_getBaseIndexRangeByDate
(
const
string
&
,
const
string
&
,
const
KQuery
&
,
size_t
&
out_start
,
size_t
&
out_end
);
bool
_getOtherIndexRangeByDate
(
const
string
&
,
const
string
&
,
const
KQuery
&
,
size_t
&
out_start
,
size_t
&
out_end
);
bool
_getBaseIndexRangeByDate
(
const
string
&
,
const
string
&
,
const
KQuery
&
,
size_t
&
out_start
,
size_t
&
out_end
);
bool
_getOtherIndexRangeByDate
(
const
string
&
,
const
string
&
,
const
KQuery
&
,
size_t
&
out_start
,
size_t
&
out_end
);
TimeLineList
_getTimeLine
(
const
string
&
market
,
const
string
&
code
,
int64
start
,
int64
end
);
TimeLineList
_getTimeLine
(
const
string
&
market
,
const
string
&
code
,
const
Datetime
&
start
,
const
Datetime
&
end
);
TimeLineList
_getTimeLine
(
const
string
&
market
,
const
string
&
code
,
const
Datetime
&
start
,
const
Datetime
&
end
);
TransList
_getTransList
(
const
string
&
market
,
const
string
&
code
,
int64
start
,
int64
end
);
TransList
_getTransList
(
const
string
&
market
,
const
string
&
code
,
const
Datetime
&
start
,
const
Datetime
&
end
);
TransList
_getTransList
(
const
string
&
market
,
const
string
&
code
,
const
Datetime
&
start
,
const
Datetime
&
end
);
private:
H5
::
CompType
m_h5DataType
;
H5
::
CompType
m_h5IndexType
;
H5
::
CompType
m_h5TimeLineType
;
H5
::
CompType
m_h5TransType
;
H5FilePtr
m_h5file
;
map
<
string
,
H5FilePtr
>
m_h5file_map
;
// key: market+code
};
...
...
This diff is collapsed.
Click to expand it.
hikyuu_cpp/unit_test/xmake.lua
+
2
-
2
View file @
59bdac33
...
...
@@ -87,8 +87,8 @@ target("small-test")
end
-- add files
--
add_files("./hikyuu/hikyuu/**.cpp");
add_files
(
"./hikyuu/hikyuu/test_StockManager.cpp"
);
add_files
(
"./hikyuu/hikyuu/**.cpp"
);
--
add_files("./hikyuu/hikyuu/test_StockManager.cpp");
add_files
(
"./hikyuu/test_main.cpp"
)
target_end
()
\ No newline at end of file
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment
Menu
Projects
Groups
Snippets
Help