Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
U
uniset2
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
UniSet project repositories
uniset2
Commits
fbe21930
Commit
fbe21930
authored
Oct 11, 2016
by
Pavel Vainerman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
(Refactoring): подправил инициализацию vector-ов, подправил типы.
parent
2d26f84d
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
87 additions
and
39 deletions
+87
-39
DBServer_PostgreSQL.h
extensions/DBServer-PostgreSQL/DBServer_PostgreSQL.h
+1
-1
UNetSender.cc
extensions/UNetUDP/UNetSender.cc
+1
-1
DigitalFilter.cc
extensions/lib/DigitalFilter.cc
+0
-1
ThreadCreator.h
include/ThreadCreator.h
+1
-1
TCPCheck.cc
src/Communications/TCP/TCPCheck.cc
+30
-5
LogServer.cc
src/Log/LogServer.cc
+19
-9
ObjectIndex_XML.cc
src/ObjectRepository/ObjectIndex_XML.cc
+7
-5
test_logserver.cc
tests/test_logserver.cc
+28
-16
No files found.
extensions/DBServer-PostgreSQL/DBServer_PostgreSQL.h
View file @
fbe21930
...
@@ -110,7 +110,7 @@ class DBServer_PostgreSQL:
...
@@ -110,7 +110,7 @@ class DBServer_PostgreSQL:
typedef
std
::
queue
<
std
::
string
>
QueryBuffer
;
typedef
std
::
queue
<
std
::
string
>
QueryBuffer
;
QueryBuffer
qbuf
;
QueryBuffer
qbuf
;
unsigned
in
t
qbufSize
;
// размер буфера сообщений.
size_
t
qbufSize
;
// размер буфера сообщений.
bool
lastRemove
=
{
false
};
bool
lastRemove
=
{
false
};
void
flushBuffer
();
void
flushBuffer
();
...
...
extensions/UNetUDP/UNetSender.cc
View file @
fbe21930
...
@@ -39,12 +39,12 @@ UNetSender::UNetSender(const std::string& _host, const int _port, const std::sha
...
@@ -39,12 +39,12 @@ UNetSender::UNetSender(const std::string& _host, const int _port, const std::sha
sendpause
(
150
),
sendpause
(
150
),
packsendpause
(
5
),
packsendpause
(
5
),
activated
(
false
),
activated
(
false
),
items
(
100
),
packetnum
(
1
),
packetnum
(
1
),
lastcrc
(
0
),
lastcrc
(
0
),
maxAData
(
maxACount
),
maxAData
(
maxACount
),
maxDData
(
maxDCount
)
maxDData
(
maxDCount
)
{
{
items
.
reserve
(
100
);
{
{
ostringstream
s
;
ostringstream
s
;
...
...
extensions/lib/DigitalFilter.cc
View file @
fbe21930
...
@@ -33,7 +33,6 @@ DigitalFilter::DigitalFilter( unsigned int bufsize, double T, double lsq,
...
@@ -33,7 +33,6 @@ DigitalFilter::DigitalFilter( unsigned int bufsize, double T, double lsq,
S
(
0
),
S
(
0
),
tmr
(
UniSetTimer
::
WaitUpTime
),
tmr
(
UniSetTimer
::
WaitUpTime
),
maxsize
(
bufsize
),
maxsize
(
bufsize
),
mvec
(
bufsize
),
mvec_sorted
(
false
),
mvec_sorted
(
false
),
w
(
bufsize
),
w
(
bufsize
),
lsparam
(
lsq
),
lsparam
(
lsq
),
...
...
include/ThreadCreator.h
View file @
fbe21930
...
@@ -93,7 +93,7 @@ class ThreadCreator:
...
@@ -93,7 +93,7 @@ class ThreadCreator:
typedef
void
(
ThreadMaster
::*
Action
)(
void
);
typedef
void
(
ThreadMaster
::*
Action
)(
void
);
ThreadCreator
(
ThreadMaster
*
m
,
Action
a
);
ThreadCreator
(
ThreadMaster
*
m
,
Action
a
);
~
ThreadCreator
();
virtual
~
ThreadCreator
();
inline
Poco
::
Thread
::
TID
getTID
()
const
inline
Poco
::
Thread
::
TID
getTID
()
const
{
{
...
...
src/Communications/TCP/TCPCheck.cc
View file @
fbe21930
...
@@ -14,10 +14,12 @@
...
@@ -14,10 +14,12 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
*/
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
#include <functional>
#include <sstream>
#include <sstream>
#include <cstdlib>
#include <cstdlib>
#include "UniSetTypes.h"
#include "UniSetTypes.h"
#include "PassiveTimer.h"
#include "PassiveTimer.h"
#include "ThreadCreator.h"
#include "TCPCheck.h"
#include "TCPCheck.h"
#include "UTCPStream.h"
#include "UTCPStream.h"
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
...
@@ -81,6 +83,33 @@ void TCPCheck::check_thread()
...
@@ -81,6 +83,33 @@ void TCPCheck::check_thread()
catch
(
...
)
{}
catch
(
...
)
{}
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
template
<
typename
T
>
class
TGuard
{
public
:
TGuard
(
T
*
m
,
typename
ThreadCreator
<
T
>::
Action
a
)
:
t
(
m
,
a
)
{
t
.
start
();
}
~
TGuard
()
{
if
(
t
.
isRunning
()
)
t
.
stop
();
}
inline
bool
isRunning
()
{
return
t
.
isRunning
();
}
protected
:
ThreadCreator
<
T
>
t
;
};
// -----------------------------------------------------------------------------
bool
TCPCheck
::
ping
(
const
std
::
string
&
_ip
,
timeout_t
tout
,
timeout_t
sleep_msec
,
const
std
::
string
&
_ping_args
)
bool
TCPCheck
::
ping
(
const
std
::
string
&
_ip
,
timeout_t
tout
,
timeout_t
sleep_msec
,
const
std
::
string
&
_ping_args
)
{
{
ip
=
_ip
;
ip
=
_ip
;
...
@@ -89,17 +118,13 @@ bool TCPCheck::ping( const std::string& _ip, timeout_t tout, timeout_t sleep_mse
...
@@ -89,17 +118,13 @@ bool TCPCheck::ping( const std::string& _ip, timeout_t tout, timeout_t sleep_mse
setResult
(
false
);
setResult
(
false
);
ThreadCreator
<
TCPCheck
>
t
(
this
,
&
TCPCheck
::
ping_thread
);
TGuard
<
TCPCheck
>
t
(
this
,
&
TCPCheck
::
ping_thread
);
t
.
start
();
PassiveTimer
pt
(
tout
);
PassiveTimer
pt
(
tout
);
while
(
!
pt
.
checkTime
()
&&
t
.
isRunning
()
)
while
(
!
pt
.
checkTime
()
&&
t
.
isRunning
()
)
msleep
(
sleep_msec
);
msleep
(
sleep_msec
);
if
(
t
.
isRunning
()
)
// !getResult() )
t
.
stop
();
return
result
;
return
result
;
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
...
...
src/Log/LogServer.cc
View file @
fbe21930
...
@@ -42,28 +42,38 @@ LogServer::~LogServer() noexcept
...
@@ -42,28 +42,38 @@ LogServer::~LogServer() noexcept
LogServer
::
LogServer
(
std
::
shared_ptr
<
LogAgregator
>
log
)
:
LogServer
::
LogServer
(
std
::
shared_ptr
<
LogAgregator
>
log
)
:
LogServer
()
LogServer
()
{
{
elog
=
static_pointer_cast
<
DebugStream
>
(
log
);
elog
=
dynamic_pointer_cast
<
DebugStream
>
(
log
);
if
(
!
elog
)
{
ostringstream
err
;
err
<<
myname
<<
"(LogServer): dynamic_pointer_cast FAILED! "
;
if
(
mylog
.
is_info
()
)
mylog
.
info
()
<<
myname
<<
"(evfinish): terminate..."
<<
endl
;
if
(
mylog
.
is_crit
()
)
mylog
.
crit
()
<<
err
.
str
()
<<
endl
;
cerr
<<
err
.
str
()
<<
endl
;
throw
SystemError
(
err
.
str
());
}
}
}
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
LogServer
::
LogServer
(
std
::
shared_ptr
<
DebugStream
>
log
)
:
LogServer
::
LogServer
(
std
::
shared_ptr
<
DebugStream
>
log
)
:
timeout
(
UniSetTimer
::
WaitUpTime
),
LogServer
()
cmdTimeout
(
2000
),
sessLogLevel
(
Debug
::
NONE
),
slist
(
sessMaxCount
),
sock
(
0
),
elog
(
log
)
{
{
elog
=
log
;
}
}
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
LogServer
::
LogServer
()
:
LogServer
::
LogServer
()
:
timeout
(
UniSetTimer
::
WaitUpTime
),
timeout
(
UniSetTimer
::
WaitUpTime
),
cmdTimeout
(
2000
),
cmdTimeout
(
2000
),
sessLogLevel
(
Debug
::
NONE
),
sessLogLevel
(
Debug
::
NONE
),
slist
(
sessMaxCount
),
sock
(
0
),
sock
(
0
),
elog
(
nullptr
)
elog
(
nullptr
)
{
{
slist
.
reserve
(
sessMaxCount
);
}
}
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
void
LogServer
::
evfinish
(
const
ev
::
loop_ref
&
loop
)
void
LogServer
::
evfinish
(
const
ev
::
loop_ref
&
loop
)
...
...
src/ObjectRepository/ObjectIndex_XML.cc
View file @
fbe21930
...
@@ -24,9 +24,10 @@
...
@@ -24,9 +24,10 @@
using
namespace
UniSetTypes
;
using
namespace
UniSetTypes
;
using
namespace
std
;
using
namespace
std
;
// -----------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------
ObjectIndex_XML
::
ObjectIndex_XML
(
const
string
&
xmlfile
,
size_t
minSize
)
:
ObjectIndex_XML
::
ObjectIndex_XML
(
const
string
&
xmlfile
,
size_t
minSize
)
omap
(
minSize
)
{
{
omap
.
reserve
(
minSize
);
shared_ptr
<
UniXML
>
xml
=
make_shared
<
UniXML
>
();
shared_ptr
<
UniXML
>
xml
=
make_shared
<
UniXML
>
();
// try
// try
// {
// {
...
@@ -36,9 +37,9 @@ ObjectIndex_XML::ObjectIndex_XML(const string& xmlfile, size_t minSize ):
...
@@ -36,9 +37,9 @@ ObjectIndex_XML::ObjectIndex_XML(const string& xmlfile, size_t minSize ):
// catch(...){}
// catch(...){}
}
}
// -----------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------
ObjectIndex_XML
::
ObjectIndex_XML
(
const
std
::
shared_ptr
<
UniXML
>&
xml
,
size_t
minSize
)
:
ObjectIndex_XML
::
ObjectIndex_XML
(
const
std
::
shared_ptr
<
UniXML
>&
xml
,
size_t
minSize
)
omap
(
minSize
)
{
{
omap
.
reserve
(
minSize
);
build
(
xml
);
build
(
xml
);
}
}
// -----------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------
...
@@ -111,6 +112,7 @@ void ObjectIndex_XML::build( const std::shared_ptr<UniXML>& xml )
...
@@ -111,6 +112,7 @@ void ObjectIndex_XML::build( const std::shared_ptr<UniXML>& xml )
//
//
omap
.
resize
(
ind
);
omap
.
resize
(
ind
);
omap
.
shrink_to_fit
();
// omap[ind].repName=NULL;
// omap[ind].repName=NULL;
// omap[ind].textName=NULL;
// omap[ind].textName=NULL;
// omap[ind].id = ind;
// omap[ind].id = ind;
...
@@ -199,7 +201,7 @@ size_t ObjectIndex_XML::read_section( const std::shared_ptr<UniXML>& xml, const
...
@@ -199,7 +201,7 @@ size_t ObjectIndex_XML::read_section( const std::shared_ptr<UniXML>& xml, const
// cout << "read: " << "(" << ind << ") " << omap[ind].repName << "\t" << omap[ind].textName << endl;
// cout << "read: " << "(" << ind << ") " << omap[ind].repName << "\t" << omap[ind].textName << endl;
ind
++
;
ind
++
;
if
(
(
unsigned
)
ind
>=
omap
.
size
()
)
if
(
ind
>=
omap
.
size
()
)
{
{
uinfo
<<
"(ObjectIndex_XML::build): не хватило размера массива maxSize="
<<
omap
.
size
()
uinfo
<<
"(ObjectIndex_XML::build): не хватило размера массива maxSize="
<<
omap
.
size
()
<<
"... Делаем resize + 100"
<<
endl
;
<<
"... Делаем resize + 100"
<<
endl
;
...
...
tests/test_logserver.cc
View file @
fbe21930
...
@@ -3,6 +3,7 @@
...
@@ -3,6 +3,7 @@
#include <memory>
#include <memory>
#include <sstream>
#include <sstream>
#include <thread>
#include <thread>
#include <future>
#include "Mutex.h"
#include "Mutex.h"
#include "UniSetTypes.h"
#include "UniSetTypes.h"
...
@@ -47,8 +48,10 @@ void la_logOnEvent( const std::string& s )
...
@@ -47,8 +48,10 @@ void la_logOnEvent( const std::string& s )
la_msg
<<
s
;
la_msg
<<
s
;
}
}
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
void
readlog_thread1
()
bool
readlog_thread1
()
{
{
try
{
LogReader
lr
;
LogReader
lr
;
lr
.
setinTimeout
(
readTimeout
);
lr
.
setinTimeout
(
readTimeout
);
lr
.
signal_stream_event
().
connect
(
sigc
::
ptr_fun
(
rlog1OnEvent
)
);
lr
.
signal_stream_event
().
connect
(
sigc
::
ptr_fun
(
rlog1OnEvent
)
);
...
@@ -57,10 +60,20 @@ void readlog_thread1()
...
@@ -57,10 +60,20 @@ void readlog_thread1()
while
(
!
g_read_cancel
)
while
(
!
g_read_cancel
)
lr
.
readlogs
(
ip
,
port
);
// ,LogServerTypes::cmdNOP,0,"",true);
lr
.
readlogs
(
ip
,
port
);
// ,LogServerTypes::cmdNOP,0,"",true);
return
true
;
}
catch
(
std
::
exception
&
ex
)
{
}
return
false
;
}
}
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
void
readlog_thread2
()
bool
readlog_thread2
()
{
{
try
{
LogReader
lr
;
LogReader
lr
;
lr
.
setinTimeout
(
readTimeout
);
lr
.
setinTimeout
(
readTimeout
);
lr
.
signal_stream_event
().
connect
(
sigc
::
ptr_fun
(
rlog2OnEvent
)
);
lr
.
signal_stream_event
().
connect
(
sigc
::
ptr_fun
(
rlog2OnEvent
)
);
...
@@ -69,6 +82,13 @@ void readlog_thread2()
...
@@ -69,6 +82,13 @@ void readlog_thread2()
while
(
!
g_read_cancel
)
while
(
!
g_read_cancel
)
lr
.
readlogs
(
ip
,
port
);
// ,LogServerTypes::cmdNOP,0,"",true);
lr
.
readlogs
(
ip
,
port
);
// ,LogServerTypes::cmdNOP,0,"",true);
return
true
;
}
catch
(
std
::
exception
&
ex
)
{
}
return
false
;
}
}
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
TEST_CASE
(
"LogAgregator"
,
"[LogServer][LogAgregator]"
)
TEST_CASE
(
"LogAgregator"
,
"[LogServer][LogAgregator]"
)
...
@@ -133,7 +153,7 @@ TEST_CASE("LogServer", "[LogServer]" )
...
@@ -133,7 +153,7 @@ TEST_CASE("LogServer", "[LogServer]" )
REQUIRE
(
ls
.
isRunning
()
);
REQUIRE
(
ls
.
isRunning
()
);
msg
.
str
(
""
);
msg
.
str
(
""
);
auto
r
_thr
=
make_shared
<
std
::
thread
>
(
readlog_thread1
);
auto
r
et
=
std
::
async
(
std
::
launch
::
async
,
readlog_thread1
);
//
make_shared<std::thread>(readlog_thread1);
msleep
(
100
);
// небольшая пауза на создание потока и т.п.
msleep
(
100
);
// небольшая пауза на создание потока и т.п.
...
@@ -168,10 +188,7 @@ TEST_CASE("LogServer", "[LogServer]" )
...
@@ -168,10 +188,7 @@ TEST_CASE("LogServer", "[LogServer]" )
}
}
g_read_cancel
=
true
;
g_read_cancel
=
true
;
msleep
(
readTimeout
);
ret
.
get
();
if
(
r_thr
->
joinable
()
)
r_thr
->
join
();
}
}
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
TEST_CASE
(
"MaxSessions"
,
"[LogServer]"
)
TEST_CASE
(
"MaxSessions"
,
"[LogServer]"
)
...
@@ -205,11 +222,11 @@ TEST_CASE("MaxSessions", "[LogServer]" )
...
@@ -205,11 +222,11 @@ TEST_CASE("MaxSessions", "[LogServer]" )
msg
.
str
(
""
);
msg
.
str
(
""
);
msg2
.
str
(
""
);
msg2
.
str
(
""
);
auto
r
1_thr
=
make_shared
<
std
::
thread
>
(
readlog_thread1
);
auto
r
et1
=
std
::
async
(
std
::
launch
::
async
,
readlog_thread1
);
//
make_shared<std::thread>(readlog_thread1);
msleep
(
500
);
// пауза чтобы первый заведомо успел подключиться раньше второго..
msleep
(
500
);
// пауза чтобы первый заведомо успел подключиться раньше второго..
auto
r
2_thr
=
make_shared
<
std
::
thread
>
(
readlog_thread2
);
auto
r
et2
=
std
::
async
(
std
::
launch
::
async
,
readlog_thread1
);
//
make_shared<std::thread>(readlog_thread2);
msleep
(
100
);
// небольшая пауза на создание потока и т.п.
msleep
(
100
);
// небольшая пауза на создание потока и т.п.
...
@@ -240,13 +257,8 @@ TEST_CASE("MaxSessions", "[LogServer]" )
...
@@ -240,13 +257,8 @@ TEST_CASE("MaxSessions", "[LogServer]" )
}
}
g_read_cancel
=
true
;
g_read_cancel
=
true
;
msleep
(
readTimeout
);
ret1
.
get
();
ret2
.
get
();
if
(
r1_thr
->
joinable
()
)
r1_thr
->
join
();
if
(
r2_thr
->
joinable
()
)
r2_thr
->
join
();
}
}
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
TEST_CASE
(
"LogAgregator regexp"
,
"[LogAgregator]"
)
TEST_CASE
(
"LogAgregator regexp"
,
"[LogAgregator]"
)
...
...
Write
Preview
Markdown
is supported
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