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
d36667c6
Commit
d36667c6
authored
Jan 06, 2015
by
Pavel Vainerman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ГЛОБАЛЬНЫЙ ПЕРЕХОД НА std::shared_ptr в механизме работы
UniSetObject<-->UniSetManager<-->UniSetActivator и в других местах по максимуму.
parent
9e8d9030
Show whitespace changes
Inline
Side-by-side
Showing
56 changed files
with
234 additions
and
205 deletions
+234
-205
main.cc
Utilities/NullController/main.cc
+1
-1
smonitor.cc
Utilities/SMonit/smonitor.cc
+1
-1
main.cc
extensions/DBServer-MySQL/main.cc
+2
-2
main.cc
extensions/DBServer-SQLite/main.cc
+2
-2
IOControl.cc
extensions/IOControl/IOControl.cc
+4
-4
IOControl.h
extensions/IOControl/IOControl.h
+3
-3
iocontrol.cc
extensions/IOControl/iocontrol.cc
+3
-3
PassiveLProcessor.cc
extensions/LogicProcessor/PassiveLProcessor.cc
+1
-1
PassiveLProcessor.h
extensions/LogicProcessor/PassiveLProcessor.h
+1
-1
plogicproc.cc
extensions/LogicProcessor/plogicproc.cc
+2
-2
MBExchange.cc
extensions/ModbusMaster/MBExchange.cc
+1
-1
MBExchange.h
extensions/ModbusMaster/MBExchange.h
+1
-1
MBTCPMaster.cc
extensions/ModbusMaster/MBTCPMaster.cc
+4
-4
MBTCPMaster.h
extensions/ModbusMaster/MBTCPMaster.h
+3
-3
MBTCPMultiMaster.cc
extensions/ModbusMaster/MBTCPMultiMaster.cc
+4
-4
MBTCPMultiMaster.h
extensions/ModbusMaster/MBTCPMultiMaster.h
+3
-3
RTUExchange.cc
extensions/ModbusMaster/RTUExchange.cc
+4
-4
RTUExchange.h
extensions/ModbusMaster/RTUExchange.h
+3
-3
main.cc
extensions/ModbusMaster/main.cc
+3
-3
multi-main.cc
extensions/ModbusMaster/multi-main.cc
+3
-3
rtuexchange.cc
extensions/ModbusMaster/rtuexchange.cc
+3
-3
MBSlave.cc
extensions/ModbusSlave/MBSlave.cc
+4
-4
MBSlave.h
extensions/ModbusSlave/MBSlave.h
+3
-3
MBTCPMultiSlave.cc
extensions/ModbusSlave/MBTCPMultiSlave.cc
+4
-4
MBTCPMultiSlave.h
extensions/ModbusSlave/MBTCPMultiSlave.h
+3
-3
mbslave.cc
extensions/ModbusSlave/mbslave.cc
+3
-3
mbtcp-multislave.cc
extensions/ModbusSlave/mbtcp-multislave.cc
+3
-3
tests_with_sm.cc
extensions/ModbusSlave/tests/tests_with_sm.cc
+5
-5
RRDServer.cc
extensions/RRDServer/RRDServer.cc
+5
-5
RRDServer.h
extensions/RRDServer/RRDServer.h
+4
-4
main.cc
extensions/RRDServer/main.cc
+3
-3
SharedMemory.cc
extensions/SharedMemory/SharedMemory.cc
+2
-3
SharedMemory.h
extensions/SharedMemory/SharedMemory.h
+2
-1
smemory.cc
extensions/SharedMemory/smemory.cc
+2
-2
smemory-plus.cc
extensions/SharedMemoryPlus/smemory-plus.cc
+19
-19
UNetExchange.cc
extensions/UNetUDP/UNetExchange.cc
+8
-9
UNetExchange.h
extensions/UNetUDP/UNetExchange.h
+6
-6
UNetReceiver.cc
extensions/UNetUDP/UNetReceiver.cc
+3
-2
UNetReceiver.h
extensions/UNetUDP/UNetReceiver.h
+2
-2
UNetSender.cc
extensions/UNetUDP/UNetSender.cc
+13
-3
UNetSender.h
extensions/UNetUDP/UNetSender.h
+3
-3
tests_with_sm.cc
extensions/UNetUDP/tests/tests_with_sm.cc
+5
-5
unetexchange.cc
extensions/UNetUDP/unetexchange.cc
+3
-3
UniExchange.cc
extensions/UniNetwork/UniExchange.cc
+4
-4
UniExchange.h
extensions/UniNetwork/UniExchange.h
+3
-3
uninet.cc
extensions/UniNetwork/uninet.cc
+5
-5
SMInterface.h
extensions/include/SMInterface.h
+3
-3
SMInterface.cc
extensions/lib/SMInterface.cc
+1
-1
test_iobase_with_sm.cc
extensions/tests/test_iobase_with_sm.cc
+5
-3
tests_with_sm.cc
extensions/tests/tests_with_sm.cc
+13
-9
tests_with_sm.h
extensions/tests/tests_with_sm.h
+2
-2
UniSetActivator.h
include/UniSetActivator.h
+5
-4
UniSetManager.h
include/UniSetManager.h
+11
-9
UniSetObject.h
include/UniSetObject.h
+5
-1
UniSetActivator.cc
src/ObjectRepository/UniSetActivator.cc
+1
-1
UniSetManager.cc
src/ObjectRepository/UniSetManager.cc
+19
-13
No files found.
Utilities/NullController/main.cc
View file @
d36667c6
...
@@ -72,7 +72,7 @@ int main(int argc, char** argv)
...
@@ -72,7 +72,7 @@ int main(int argc, char** argv)
NullController
nc
(
ID
,
askfile
,
s_field
,
s_fvalue
,
c_field
,
c_fvalue
,
dbDumping
);
NullController
nc
(
ID
,
askfile
,
s_field
,
s_fvalue
,
c_field
,
c_fvalue
,
dbDumping
);
UniSetActivatorPtr
act
=
UniSetActivator
::
Instance
();
UniSetActivatorPtr
act
=
UniSetActivator
::
Instance
();
act
->
addObject
(
static_cast
<
class
UniSetObject
*>
(
&
nc
)
);
act
->
addObject
(
nc
.
get_ptr
()
);
act
->
run
(
false
);
act
->
run
(
false
);
return
0
;
return
0
;
}
}
...
...
Utilities/SMonit/smonitor.cc
View file @
d36667c6
...
@@ -35,7 +35,7 @@ int main( int argc, const char **argv )
...
@@ -35,7 +35,7 @@ int main( int argc, const char **argv )
UniSetActivatorPtr
act
=
UniSetActivator
::
Instance
();
UniSetActivatorPtr
act
=
UniSetActivator
::
Instance
();
SMonitor
tp
(
ID
);
SMonitor
tp
(
ID
);
act
->
addObject
(
&
tp
);
act
->
addObject
(
tp
.
get_ptr
()
);
SystemMessage
sm
(
SystemMessage
::
StartUp
);
SystemMessage
sm
(
SystemMessage
::
StartUp
);
act
->
broadcast
(
sm
.
transport_msg
()
);
act
->
broadcast
(
sm
.
transport_msg
()
);
...
...
extensions/DBServer-MySQL/main.cc
View file @
d36667c6
...
@@ -52,8 +52,8 @@ int main(int argc, char** argv)
...
@@ -52,8 +52,8 @@ int main(int argc, char** argv)
}
}
DBServer_MySQL
dbs
(
ID
);
DBServer_MySQL
dbs
(
ID
);
UniSetActivatorPtr
act
=
UniSetActivator
::
Instance
();
auto
act
=
UniSetActivator
::
Instance
();
act
->
addObject
(
static_cast
<
class
UniSetObject
*>
(
&
dbs
));
act
->
addObject
(
dbs
.
get_ptr
(
));
act
->
run
(
false
);
act
->
run
(
false
);
}
}
catch
(
Exception
&
ex
)
catch
(
Exception
&
ex
)
...
...
extensions/DBServer-SQLite/main.cc
View file @
d36667c6
...
@@ -53,8 +53,8 @@ int main(int argc, char** argv)
...
@@ -53,8 +53,8 @@ int main(int argc, char** argv)
DBServer_SQLite
dbs
(
ID
);
DBServer_SQLite
dbs
(
ID
);
UniSetActivatorPtr
act
=
UniSetActivator
::
Instance
();
auto
act
=
UniSetActivator
::
Instance
();
act
->
addObject
(
static_cast
<
class
UniSetObject
*>
(
&
dbs
));
act
->
addObject
(
dbs
.
get_ptr
(
));
act
->
run
(
false
);
act
->
run
(
false
);
}
}
catch
(
Exception
&
ex
)
catch
(
Exception
&
ex
)
...
...
extensions/IOControl/IOControl.cc
View file @
d36667c6
...
@@ -23,7 +23,7 @@ std::ostream& operator<<( std::ostream& os, IOControl::IOInfo& inf )
...
@@ -23,7 +23,7 @@ std::ostream& operator<<( std::ostream& os, IOControl::IOInfo& inf )
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
IOControl
::
IOControl
(
UniSetTypes
::
ObjectId
id
,
UniSetTypes
::
ObjectId
icID
,
IOControl
::
IOControl
(
UniSetTypes
::
ObjectId
id
,
UniSetTypes
::
ObjectId
icID
,
SharedMemory
*
ic
,
int
numcards
,
const
std
::
string
&
prefix_
)
:
const
std
::
shared_ptr
<
SharedMemory
>
ic
,
int
numcards
,
const
std
::
string
&
prefix_
)
:
UniSetObject
(
id
),
UniSetObject
(
id
),
polltime
(
150
),
polltime
(
150
),
cards
(
11
),
cards
(
11
),
...
@@ -1112,8 +1112,8 @@ void IOControl::check_testlamp()
...
@@ -1112,8 +1112,8 @@ void IOControl::check_testlamp()
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
IOControl
*
IOControl
::
init_iocontrol
(
int
argc
,
const
char
*
const
*
argv
,
std
::
shared_ptr
<
IOControl
>
IOControl
::
init_iocontrol
(
int
argc
,
const
char
*
const
*
argv
,
UniSetTypes
::
ObjectId
icID
,
SharedMemory
*
ic
,
UniSetTypes
::
ObjectId
icID
,
const
std
::
shared_ptr
<
SharedMemory
>
ic
,
const
std
::
string
&
prefix
)
const
std
::
string
&
prefix
)
{
{
auto
conf
=
uniset_conf
();
auto
conf
=
uniset_conf
();
...
@@ -1135,7 +1135,7 @@ IOControl* IOControl::init_iocontrol( int argc, const char* const* argv,
...
@@ -1135,7 +1135,7 @@ IOControl* IOControl::init_iocontrol( int argc, const char* const* argv,
int
numcards
=
conf
->
getArgPInt
(
"--"
+
prefix
+
"-numcards"
,
1
);
int
numcards
=
conf
->
getArgPInt
(
"--"
+
prefix
+
"-numcards"
,
1
);
dinfo
<<
"(iocontrol): name = "
<<
name
<<
"("
<<
ID
<<
")"
<<
endl
;
dinfo
<<
"(iocontrol): name = "
<<
name
<<
"("
<<
ID
<<
")"
<<
endl
;
return
new
IOControl
(
ID
,
icID
,
ic
,
numcards
,
prefix
);
return
make_shared
<
IOControl
>
(
ID
,
icID
,
ic
,
numcards
,
prefix
);
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
void
IOControl
::
help_print
(
int
argc
,
const
char
*
const
*
argv
)
void
IOControl
::
help_print
(
int
argc
,
const
char
*
const
*
argv
)
...
...
extensions/IOControl/IOControl.h
View file @
d36667c6
...
@@ -201,12 +201,12 @@ class IOControl:
...
@@ -201,12 +201,12 @@ class IOControl:
public
UniSetObject
public
UniSetObject
{
{
public
:
public
:
IOControl
(
UniSetTypes
::
ObjectId
id
,
UniSetTypes
::
ObjectId
icID
,
SharedMemory
*
ic
=
0
,
int
numcards
=
2
,
const
std
::
string
&
prefix
=
"io"
);
IOControl
(
UniSetTypes
::
ObjectId
id
,
UniSetTypes
::
ObjectId
icID
,
const
std
::
shared_ptr
<
SharedMemory
>
shm
=
nullptr
,
int
numcards
=
2
,
const
std
::
string
&
prefix
=
"io"
);
virtual
~
IOControl
();
virtual
~
IOControl
();
/*! глобальная функция для инициализации объекта */
/*! глобальная функция для инициализации объекта */
static
IOControl
*
init_iocontrol
(
int
argc
,
const
char
*
const
*
argv
,
static
std
::
shared_ptr
<
IOControl
>
init_iocontrol
(
int
argc
,
const
char
*
const
*
argv
,
UniSetTypes
::
ObjectId
icID
,
SharedMemory
*
ic
=
0
,
UniSetTypes
::
ObjectId
icID
,
const
std
::
shared_ptr
<
SharedMemory
>
ic
=
nullptr
,
const
std
::
string
&
prefix
=
"io"
);
const
std
::
string
&
prefix
=
"io"
);
/*! глобальная функция для вывода help-а */
/*! глобальная функция для вывода help-а */
static
void
help_print
(
int
argc
,
const
char
*
const
*
argv
);
static
void
help_print
(
int
argc
,
const
char
*
const
*
argv
);
...
...
extensions/IOControl/iocontrol.cc
View file @
d36667c6
...
@@ -44,15 +44,15 @@ int main(int argc, const char **argv)
...
@@ -44,15 +44,15 @@ int main(int argc, const char **argv)
}
}
IOControl
*
ic
=
IOControl
::
init_iocontrol
(
argc
,
argv
,
shmID
);
auto
ic
=
IOControl
::
init_iocontrol
(
argc
,
argv
,
shmID
);
if
(
!
ic
)
if
(
!
ic
)
{
{
dcrit
<<
"(iocontrol): init не прошёл..."
<<
endl
;
dcrit
<<
"(iocontrol): init не прошёл..."
<<
endl
;
return
1
;
return
1
;
}
}
UniSetActivatorPtr
act
=
UniSetActivator
::
Instance
();
auto
act
=
UniSetActivator
::
Instance
();
act
->
addObject
(
static_cast
<
class
UniSetObject
*>
(
ic
)
);
act
->
addObject
(
ic
);
SystemMessage
sm
(
SystemMessage
::
StartUp
);
SystemMessage
sm
(
SystemMessage
::
StartUp
);
act
->
broadcast
(
sm
.
transport_msg
()
);
act
->
broadcast
(
sm
.
transport_msg
()
);
...
...
extensions/LogicProcessor/PassiveLProcessor.cc
View file @
d36667c6
...
@@ -7,7 +7,7 @@ using namespace UniSetTypes;
...
@@ -7,7 +7,7 @@ using namespace UniSetTypes;
using
namespace
UniSetExtensions
;
using
namespace
UniSetExtensions
;
// -------------------------------------------------------------------------
// -------------------------------------------------------------------------
PassiveLProcessor
::
PassiveLProcessor
(
std
::
string
lfile
,
UniSetTypes
::
ObjectId
objId
,
PassiveLProcessor
::
PassiveLProcessor
(
std
::
string
lfile
,
UniSetTypes
::
ObjectId
objId
,
UniSetTypes
::
ObjectId
shmID
,
SharedMemory
*
ic
,
const
std
::
string
&
prefix
)
:
UniSetTypes
::
ObjectId
shmID
,
const
std
::
shared_ptr
<
SharedMemory
>
ic
,
const
std
::
string
&
prefix
)
:
UniSetObject_LT
(
objId
),
UniSetObject_LT
(
objId
),
shm
(
0
)
shm
(
0
)
{
{
...
...
extensions/LogicProcessor/PassiveLProcessor.h
View file @
d36667c6
...
@@ -18,7 +18,7 @@ class PassiveLProcessor:
...
@@ -18,7 +18,7 @@ class PassiveLProcessor:
public
:
public
:
PassiveLProcessor
(
std
::
string
schema
,
UniSetTypes
::
ObjectId
objId
,
PassiveLProcessor
(
std
::
string
schema
,
UniSetTypes
::
ObjectId
objId
,
UniSetTypes
::
ObjectId
shmID
,
SharedMemory
*
ic
=
0
,
const
std
::
string
&
prefix
=
"lproc"
);
UniSetTypes
::
ObjectId
shmID
,
const
std
::
shared_ptr
<
SharedMemory
>
ic
=
nullptr
,
const
std
::
string
&
prefix
=
"lproc"
);
virtual
~
PassiveLProcessor
();
virtual
~
PassiveLProcessor
();
enum
Timers
enum
Timers
...
...
extensions/LogicProcessor/plogicproc.cc
View file @
d36667c6
...
@@ -69,8 +69,8 @@ int main(int argc, const char **argv)
...
@@ -69,8 +69,8 @@ int main(int argc, const char **argv)
PassiveLProcessor
plc
(
schema
,
ID
,
shmID
);
PassiveLProcessor
plc
(
schema
,
ID
,
shmID
);
UniSetActivatorPtr
act
=
UniSetActivator
::
Instance
();
auto
act
=
UniSetActivator
::
Instance
();
act
->
addObject
(
static_cast
<
class
UniSetObject
*>
(
&
plc
));
act
->
addObject
(
plc
.
get_ptr
(
));
SystemMessage
sm
(
SystemMessage
::
StartUp
);
SystemMessage
sm
(
SystemMessage
::
StartUp
);
act
->
broadcast
(
sm
.
transport_msg
()
);
act
->
broadcast
(
sm
.
transport_msg
()
);
...
...
extensions/ModbusMaster/MBExchange.cc
View file @
d36667c6
...
@@ -12,7 +12,7 @@ using namespace UniSetTypes;
...
@@ -12,7 +12,7 @@ using namespace UniSetTypes;
using
namespace
UniSetExtensions
;
using
namespace
UniSetExtensions
;
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
MBExchange
::
MBExchange
(
UniSetTypes
::
ObjectId
objId
,
UniSetTypes
::
ObjectId
shmId
,
MBExchange
::
MBExchange
(
UniSetTypes
::
ObjectId
objId
,
UniSetTypes
::
ObjectId
shmId
,
SharedMemory
*
ic
,
const
std
::
string
&
prefix
)
:
const
std
::
shared_ptr
<
SharedMemory
>
ic
,
const
std
::
string
&
prefix
)
:
UniSetObject_LT
(
objId
),
UniSetObject_LT
(
objId
),
allInitOK
(
false
),
allInitOK
(
false
),
shm
(
0
),
shm
(
0
),
...
...
extensions/ModbusMaster/MBExchange.h
View file @
d36667c6
...
@@ -28,7 +28,7 @@ class MBExchange:
...
@@ -28,7 +28,7 @@ class MBExchange:
public
UniSetObject_LT
public
UniSetObject_LT
{
{
public
:
public
:
MBExchange
(
UniSetTypes
::
ObjectId
objId
,
UniSetTypes
::
ObjectId
shmID
,
SharedMemory
*
ic
=
0
,
MBExchange
(
UniSetTypes
::
ObjectId
objId
,
UniSetTypes
::
ObjectId
shmID
,
const
std
::
shared_ptr
<
SharedMemory
>
ic
=
nullptr
,
const
std
::
string
&
prefix
=
"mb"
);
const
std
::
string
&
prefix
=
"mb"
);
virtual
~
MBExchange
();
virtual
~
MBExchange
();
...
...
extensions/ModbusMaster/MBTCPMaster.cc
View file @
d36667c6
...
@@ -11,7 +11,7 @@ using namespace UniSetTypes;
...
@@ -11,7 +11,7 @@ using namespace UniSetTypes;
using
namespace
UniSetExtensions
;
using
namespace
UniSetExtensions
;
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
MBTCPMaster
::
MBTCPMaster
(
UniSetTypes
::
ObjectId
objId
,
UniSetTypes
::
ObjectId
shmId
,
MBTCPMaster
::
MBTCPMaster
(
UniSetTypes
::
ObjectId
objId
,
UniSetTypes
::
ObjectId
shmId
,
SharedMemory
*
ic
,
const
std
::
string
&
prefix
)
:
const
std
::
shared_ptr
<
SharedMemory
>
ic
,
const
std
::
string
&
prefix
)
:
MBExchange
(
objId
,
shmId
,
ic
,
prefix
),
MBExchange
(
objId
,
shmId
,
ic
,
prefix
),
force_disconnect
(
true
),
force_disconnect
(
true
),
mbtcp
(
nullptr
),
mbtcp
(
nullptr
),
...
@@ -217,8 +217,8 @@ void MBTCPMaster::help_print( int argc, const char* const* argv )
...
@@ -217,8 +217,8 @@ void MBTCPMaster::help_print( int argc, const char* const* argv )
cout
<<
"--prefix-persistent-connection 0,1 - Не закрывать соединение на каждом цикле опроса"
<<
endl
;
cout
<<
"--prefix-persistent-connection 0,1 - Не закрывать соединение на каждом цикле опроса"
<<
endl
;
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
MBTCPMaster
*
MBTCPMaster
::
init_mbmaster
(
int
argc
,
const
char
*
const
*
argv
,
std
::
shared_ptr
<
MBTCPMaster
>
MBTCPMaster
::
init_mbmaster
(
int
argc
,
const
char
*
const
*
argv
,
UniSetTypes
::
ObjectId
icID
,
SharedMemory
*
ic
,
UniSetTypes
::
ObjectId
icID
,
const
std
::
shared_ptr
<
SharedMemory
>
ic
,
const
std
::
string
&
prefix
)
const
std
::
string
&
prefix
)
{
{
auto
conf
=
uniset_conf
();
auto
conf
=
uniset_conf
();
...
@@ -239,6 +239,6 @@ MBTCPMaster* MBTCPMaster::init_mbmaster( int argc, const char* const* argv,
...
@@ -239,6 +239,6 @@ MBTCPMaster* MBTCPMaster::init_mbmaster( int argc, const char* const* argv,
}
}
dinfo
<<
"(MBTCPMaster): name = "
<<
name
<<
"("
<<
ID
<<
")"
<<
endl
;
dinfo
<<
"(MBTCPMaster): name = "
<<
name
<<
"("
<<
ID
<<
")"
<<
endl
;
return
new
MBTCPMaster
(
ID
,
icID
,
ic
,
prefix
);
return
make_shared
<
MBTCPMaster
>
(
ID
,
icID
,
ic
,
prefix
);
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
extensions/ModbusMaster/MBTCPMaster.h
View file @
d36667c6
...
@@ -193,13 +193,13 @@ class MBTCPMaster:
...
@@ -193,13 +193,13 @@ class MBTCPMaster:
public
MBExchange
public
MBExchange
{
{
public
:
public
:
MBTCPMaster
(
UniSetTypes
::
ObjectId
objId
,
UniSetTypes
::
ObjectId
shmID
,
SharedMemory
*
ic
=
0
,
MBTCPMaster
(
UniSetTypes
::
ObjectId
objId
,
UniSetTypes
::
ObjectId
shmID
,
const
std
::
shared_ptr
<
SharedMemory
>
ic
=
nullptr
,
const
std
::
string
&
prefix
=
"mbtcp"
);
const
std
::
string
&
prefix
=
"mbtcp"
);
virtual
~
MBTCPMaster
();
virtual
~
MBTCPMaster
();
/*! глобальная функция для инициализации объекта */
/*! глобальная функция для инициализации объекта */
static
MBTCPMaster
*
init_mbmaster
(
int
argc
,
const
char
*
const
*
argv
,
static
std
::
shared_ptr
<
MBTCPMaster
>
init_mbmaster
(
int
argc
,
const
char
*
const
*
argv
,
UniSetTypes
::
ObjectId
shmID
,
SharedMemory
*
ic
=
0
,
UniSetTypes
::
ObjectId
shmID
,
const
std
::
shared_ptr
<
SharedMemory
>
ic
=
nullptr
,
const
std
::
string
&
prefix
=
"mbtcp"
);
const
std
::
string
&
prefix
=
"mbtcp"
);
/*! глобальная функция для вывода help-а */
/*! глобальная функция для вывода help-а */
...
...
extensions/ModbusMaster/MBTCPMultiMaster.cc
View file @
d36667c6
...
@@ -11,7 +11,7 @@ using namespace UniSetTypes;
...
@@ -11,7 +11,7 @@ using namespace UniSetTypes;
using
namespace
UniSetExtensions
;
using
namespace
UniSetExtensions
;
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
MBTCPMultiMaster
::
MBTCPMultiMaster
(
UniSetTypes
::
ObjectId
objId
,
UniSetTypes
::
ObjectId
shmId
,
MBTCPMultiMaster
::
MBTCPMultiMaster
(
UniSetTypes
::
ObjectId
objId
,
UniSetTypes
::
ObjectId
shmId
,
SharedMemory
*
ic
,
const
std
::
string
&
prefix
)
:
const
std
::
shared_ptr
<
SharedMemory
>
ic
,
const
std
::
string
&
prefix
)
:
MBExchange
(
objId
,
shmId
,
ic
,
prefix
),
MBExchange
(
objId
,
shmId
,
ic
,
prefix
),
force_disconnect
(
true
),
force_disconnect
(
true
),
pollThread
(
0
),
pollThread
(
0
),
...
@@ -363,8 +363,8 @@ void MBTCPMultiMaster::help_print( int argc, const char* const* argv )
...
@@ -363,8 +363,8 @@ void MBTCPMultiMaster::help_print( int argc, const char* const* argv )
cout
<<
" Переключение на следующий канал зависит от '--prefix-timeout'"
<<
endl
;
cout
<<
" Переключение на следующий канал зависит от '--prefix-timeout'"
<<
endl
;
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
MBTCPMultiMaster
*
MBTCPMultiMaster
::
init_mbmaster
(
int
argc
,
const
char
*
const
*
argv
,
std
::
shared_ptr
<
MBTCPMultiMaster
>
MBTCPMultiMaster
::
init_mbmaster
(
int
argc
,
const
char
*
const
*
argv
,
UniSetTypes
::
ObjectId
icID
,
SharedMemory
*
ic
,
UniSetTypes
::
ObjectId
icID
,
const
std
::
shared_ptr
<
SharedMemory
>
ic
,
const
std
::
string
&
prefix
)
const
std
::
string
&
prefix
)
{
{
auto
conf
=
uniset_conf
();
auto
conf
=
uniset_conf
();
...
@@ -386,6 +386,6 @@ MBTCPMultiMaster* MBTCPMultiMaster::init_mbmaster( int argc, const char* const*
...
@@ -386,6 +386,6 @@ MBTCPMultiMaster* MBTCPMultiMaster::init_mbmaster( int argc, const char* const*
}
}
dinfo
<<
"(MBTCPMultiMaster): name = "
<<
name
<<
"("
<<
ID
<<
")"
<<
endl
;
dinfo
<<
"(MBTCPMultiMaster): name = "
<<
name
<<
"("
<<
ID
<<
")"
<<
endl
;
return
new
MBTCPMultiMaster
(
ID
,
icID
,
ic
,
prefix
);
return
make_shared
<
MBTCPMultiMaster
>
(
ID
,
icID
,
ic
,
prefix
);
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
extensions/ModbusMaster/MBTCPMultiMaster.h
View file @
d36667c6
...
@@ -214,13 +214,13 @@ class MBTCPMultiMaster:
...
@@ -214,13 +214,13 @@ class MBTCPMultiMaster:
public
MBExchange
public
MBExchange
{
{
public
:
public
:
MBTCPMultiMaster
(
UniSetTypes
::
ObjectId
objId
,
UniSetTypes
::
ObjectId
shmID
,
SharedMemory
*
ic
=
0
,
MBTCPMultiMaster
(
UniSetTypes
::
ObjectId
objId
,
UniSetTypes
::
ObjectId
shmID
,
const
std
::
shared_ptr
<
SharedMemory
>
ic
=
nullptr
,
const
std
::
string
&
prefix
=
"mbtcp"
);
const
std
::
string
&
prefix
=
"mbtcp"
);
virtual
~
MBTCPMultiMaster
();
virtual
~
MBTCPMultiMaster
();
/*! глобальная функция для инициализации объекта */
/*! глобальная функция для инициализации объекта */
static
MBTCPMultiMaster
*
init_mbmaster
(
int
argc
,
const
char
*
const
*
argv
,
static
std
::
shared_ptr
<
MBTCPMultiMaster
>
init_mbmaster
(
int
argc
,
const
char
*
const
*
argv
,
UniSetTypes
::
ObjectId
shmID
,
SharedMemory
*
ic
=
0
,
UniSetTypes
::
ObjectId
shmID
,
const
std
::
shared_ptr
<
SharedMemory
>
ic
=
nullptr
,
const
std
::
string
&
prefix
=
"mbtcp"
);
const
std
::
string
&
prefix
=
"mbtcp"
);
/*! глобальная функция для вывода help-а */
/*! глобальная функция для вывода help-а */
...
...
extensions/ModbusMaster/RTUExchange.cc
View file @
d36667c6
...
@@ -8,7 +8,7 @@ using namespace std;
...
@@ -8,7 +8,7 @@ using namespace std;
using
namespace
UniSetTypes
;
using
namespace
UniSetTypes
;
using
namespace
UniSetExtensions
;
using
namespace
UniSetExtensions
;
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
RTUExchange
::
RTUExchange
(
UniSetTypes
::
ObjectId
objId
,
UniSetTypes
::
ObjectId
shmId
,
SharedMemory
*
ic
,
RTUExchange
::
RTUExchange
(
UniSetTypes
::
ObjectId
objId
,
UniSetTypes
::
ObjectId
shmId
,
const
std
::
shared_ptr
<
SharedMemory
>
ic
,
const
std
::
string
&
prefix_
)
:
const
std
::
string
&
prefix_
)
:
MBExchange
(
objId
,
shmId
,
ic
,
prefix_
),
MBExchange
(
objId
,
shmId
,
ic
,
prefix_
),
mbrtu
(
0
),
mbrtu
(
0
),
...
@@ -316,8 +316,8 @@ void RTUExchange::poll()
...
@@ -316,8 +316,8 @@ void RTUExchange::poll()
// printMap(rmap);
// printMap(rmap);
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
RTUExchange
*
RTUExchange
::
init_rtuexchange
(
int
argc
,
const
char
*
const
*
argv
,
UniSetTypes
::
ObjectId
icID
,
std
::
shared_ptr
<
RTUExchange
>
RTUExchange
::
init_rtuexchange
(
int
argc
,
const
char
*
const
*
argv
,
UniSetTypes
::
ObjectId
icID
,
SharedMemory
*
ic
,
const
std
::
string
&
prefix
)
const
std
::
shared_ptr
<
SharedMemory
>
ic
,
const
std
::
string
&
prefix
)
{
{
auto
conf
=
uniset_conf
();
auto
conf
=
uniset_conf
();
...
@@ -338,7 +338,7 @@ RTUExchange* RTUExchange::init_rtuexchange( int argc, const char* const* argv, U
...
@@ -338,7 +338,7 @@ RTUExchange* RTUExchange::init_rtuexchange( int argc, const char* const* argv, U
}
}
dinfo
<<
"(rtuexchange): name = "
<<
name
<<
"("
<<
ID
<<
")"
<<
endl
;
dinfo
<<
"(rtuexchange): name = "
<<
name
<<
"("
<<
ID
<<
")"
<<
endl
;
return
new
RTUExchange
(
ID
,
icID
,
ic
,
prefix
);
return
make_shared
<
RTUExchange
>
(
ID
,
icID
,
ic
,
prefix
);
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
bool
RTUExchange
::
initDeviceInfo
(
RTUDeviceMap
&
m
,
ModbusRTU
::
ModbusAddr
a
,
UniXML
::
iterator
&
it
)
bool
RTUExchange
::
initDeviceInfo
(
RTUDeviceMap
&
m
,
ModbusRTU
::
ModbusAddr
a
,
UniXML
::
iterator
&
it
)
...
...
extensions/ModbusMaster/RTUExchange.h
View file @
d36667c6
...
@@ -14,12 +14,12 @@ class RTUExchange:
...
@@ -14,12 +14,12 @@ class RTUExchange:
{
{
public
:
public
:
RTUExchange
(
UniSetTypes
::
ObjectId
objId
,
UniSetTypes
::
ObjectId
shmID
,
RTUExchange
(
UniSetTypes
::
ObjectId
objId
,
UniSetTypes
::
ObjectId
shmID
,
SharedMemory
*
ic
=
0
,
const
std
::
string
&
prefix
=
"rs"
);
const
std
::
shared_ptr
<
SharedMemory
>
ic
=
nullptr
,
const
std
::
string
&
prefix
=
"rs"
);
virtual
~
RTUExchange
();
virtual
~
RTUExchange
();
/*! глобальная функция для инициализации объекта */
/*! глобальная функция для инициализации объекта */
static
RTUExchange
*
init_rtuexchange
(
int
argc
,
const
char
*
const
*
argv
,
static
std
::
shared_ptr
<
RTUExchange
>
init_rtuexchange
(
int
argc
,
const
char
*
const
*
argv
,
UniSetTypes
::
ObjectId
shmID
,
SharedMemory
*
ic
=
0
,
UniSetTypes
::
ObjectId
shmID
,
const
std
::
shared_ptr
<
SharedMemory
>
ic
=
nullptr
,
const
std
::
string
&
prefix
=
"rs"
);
const
std
::
string
&
prefix
=
"rs"
);
/*! глобальная функция для вывода help-а */
/*! глобальная функция для вывода help-а */
...
...
extensions/ModbusMaster/main.cc
View file @
d36667c6
...
@@ -50,15 +50,15 @@ int main( int argc, const char** argv )
...
@@ -50,15 +50,15 @@ int main( int argc, const char** argv )
return
1
;
return
1
;
}
}
MBTCPMaster
*
mb
=
MBTCPMaster
::
init_mbmaster
(
argc
,
argv
,
shmID
);
auto
mb
=
MBTCPMaster
::
init_mbmaster
(
argc
,
argv
,
shmID
);
if
(
!
mb
)
if
(
!
mb
)
{
{
dcrit
<<
"(mbmaster): init MBTCPMaster failed."
<<
endl
;
dcrit
<<
"(mbmaster): init MBTCPMaster failed."
<<
endl
;
return
1
;
return
1
;
}
}
UniSetActivatorPtr
act
=
UniSetActivator
::
Instance
();
auto
act
=
UniSetActivator
::
Instance
();
act
->
addObject
(
static_cast
<
class
UniSetObject
*>
(
mb
)
);
act
->
addObject
(
mb
);
SystemMessage
sm
(
SystemMessage
::
StartUp
);
SystemMessage
sm
(
SystemMessage
::
StartUp
);
act
->
broadcast
(
sm
.
transport_msg
()
);
act
->
broadcast
(
sm
.
transport_msg
()
);
...
...
extensions/ModbusMaster/multi-main.cc
View file @
d36667c6
...
@@ -50,15 +50,15 @@ int main( int argc, const char** argv )
...
@@ -50,15 +50,15 @@ int main( int argc, const char** argv )
return
1
;
return
1
;
}
}
MBTCPMultiMaster
*
mb
=
MBTCPMultiMaster
::
init_mbmaster
(
argc
,
argv
,
shmID
);
auto
mb
=
MBTCPMultiMaster
::
init_mbmaster
(
argc
,
argv
,
shmID
);
if
(
!
mb
)
if
(
!
mb
)
{
{
dcrit
<<
"(mbmaster): init MBTCPMaster failed."
<<
endl
;
dcrit
<<
"(mbmaster): init MBTCPMaster failed."
<<
endl
;
return
1
;
return
1
;
}
}
UniSetActivatorPtr
act
=
UniSetActivator
::
Instance
();
auto
act
=
UniSetActivator
::
Instance
();
act
->
addObject
(
static_cast
<
class
UniSetObject
*>
(
mb
)
);
act
->
addObject
(
mb
);
SystemMessage
sm
(
SystemMessage
::
StartUp
);
SystemMessage
sm
(
SystemMessage
::
StartUp
);
act
->
broadcast
(
sm
.
transport_msg
()
);
act
->
broadcast
(
sm
.
transport_msg
()
);
...
...
extensions/ModbusMaster/rtuexchange.cc
View file @
d36667c6
...
@@ -48,15 +48,15 @@ int main( int argc, char** argv )
...
@@ -48,15 +48,15 @@ int main( int argc, char** argv )
return
1
;
return
1
;
}
}
RTUExchange
*
rs
=
RTUExchange
::
init_rtuexchange
(
argc
,
argv
,
shmID
,
0
,
"rs"
);
auto
rs
=
RTUExchange
::
init_rtuexchange
(
argc
,
argv
,
shmID
,
0
,
"rs"
);
if
(
!
rs
)
if
(
!
rs
)
{
{
dcrit
<<
"(rtuexchange): init не прошёл..."
<<
endl
;
dcrit
<<
"(rtuexchange): init не прошёл..."
<<
endl
;
return
1
;
return
1
;
}
}
UniSetActivatorPtr
act
=
UniSetActivator
::
Instance
();
auto
act
=
UniSetActivator
::
Instance
();
act
->
addObject
(
static_cast
<
class
UniSetObject
*>
(
rs
)
);
act
->
addObject
(
rs
);
SystemMessage
sm
(
SystemMessage
::
StartUp
);
SystemMessage
sm
(
SystemMessage
::
StartUp
);
act
->
broadcast
(
sm
.
transport_msg
()
);
act
->
broadcast
(
sm
.
transport_msg
()
);
...
...
extensions/ModbusSlave/MBSlave.cc
View file @
d36667c6
...
@@ -11,7 +11,7 @@ using namespace UniSetTypes;
...
@@ -11,7 +11,7 @@ using namespace UniSetTypes;
using
namespace
UniSetExtensions
;
using
namespace
UniSetExtensions
;
using
namespace
ModbusRTU
;
using
namespace
ModbusRTU
;
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
MBSlave
::
MBSlave
(
UniSetTypes
::
ObjectId
objId
,
UniSetTypes
::
ObjectId
shmId
,
SharedMemory
*
ic
,
const
string
&
prefix
)
:
MBSlave
::
MBSlave
(
UniSetTypes
::
ObjectId
objId
,
UniSetTypes
::
ObjectId
shmId
,
const
std
::
shared_ptr
<
SharedMemory
>
ic
,
const
string
&
prefix
)
:
UniSetObject_LT
(
objId
),
UniSetObject_LT
(
objId
),
mbslot
(
0
),
mbslot
(
0
),
shm
(
0
),
shm
(
0
),
...
@@ -934,8 +934,8 @@ void MBSlave::help_print( int argc, const char* const* argv )
...
@@ -934,8 +934,8 @@ void MBSlave::help_print( int argc, const char* const* argv )
cout
<<
"--prefix-inet-port num - this modbus server port. Default: 502"
<<
endl
;
cout
<<
"--prefix-inet-port num - this modbus server port. Default: 502"
<<
endl
;
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
MBSlave
*
MBSlave
::
init_mbslave
(
int
argc
,
const
char
*
const
*
argv
,
UniSetTypes
::
ObjectId
icID
,
SharedMemory
*
ic
,
std
::
shared_ptr
<
MBSlave
>
MBSlave
::
init_mbslave
(
int
argc
,
const
char
*
const
*
argv
,
UniSetTypes
::
ObjectId
icID
,
const
string
&
prefix
)
const
std
::
shared_ptr
<
SharedMemory
>
ic
,
const
string
&
prefix
)
{
{
auto
conf
=
uniset_conf
();
auto
conf
=
uniset_conf
();
string
name
=
conf
->
getArgParam
(
"--"
+
prefix
+
"-name"
,
"MBSlave1"
);
string
name
=
conf
->
getArgParam
(
"--"
+
prefix
+
"-name"
,
"MBSlave1"
);
...
@@ -955,7 +955,7 @@ MBSlave* MBSlave::init_mbslave( int argc, const char* const* argv, UniSetTypes::
...
@@ -955,7 +955,7 @@ MBSlave* MBSlave::init_mbslave( int argc, const char* const* argv, UniSetTypes::
}
}
dinfo
<<
"(mbslave): name = "
<<
name
<<
"("
<<
ID
<<
")"
<<
endl
;
dinfo
<<
"(mbslave): name = "
<<
name
<<
"("
<<
ID
<<
")"
<<
endl
;
return
new
MBSlave
(
ID
,
icID
,
ic
,
prefix
);
return
make_shared
<
MBSlave
>
(
ID
,
icID
,
ic
,
prefix
);
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
std
::
ostream
&
operator
<<
(
std
::
ostream
&
os
,
MBSlave
::
IOProperty
&
p
)
std
::
ostream
&
operator
<<
(
std
::
ostream
&
os
,
MBSlave
::
IOProperty
&
p
)
...
...
extensions/ModbusSlave/MBSlave.h
View file @
d36667c6
...
@@ -257,12 +257,12 @@ class MBSlave:
...
@@ -257,12 +257,12 @@ class MBSlave:
public
UniSetObject_LT
public
UniSetObject_LT
{
{
public
:
public
:
MBSlave
(
UniSetTypes
::
ObjectId
objId
,
UniSetTypes
::
ObjectId
shmID
,
SharedMemory
*
ic
=
0
,
const
std
::
string
&
prefix
=
"mbs"
);
MBSlave
(
UniSetTypes
::
ObjectId
objId
,
UniSetTypes
::
ObjectId
shmID
,
const
std
::
shared_ptr
<
SharedMemory
>
ic
=
nullptr
,
const
std
::
string
&
prefix
=
"mbs"
);
virtual
~
MBSlave
();
virtual
~
MBSlave
();
/*! глобальная функция для инициализации объекта */
/*! глобальная функция для инициализации объекта */
static
MBSlave
*
init_mbslave
(
int
argc
,
const
char
*
const
*
argv
,
static
std
::
shared_ptr
<
MBSlave
>
init_mbslave
(
int
argc
,
const
char
*
const
*
argv
,
UniSetTypes
::
ObjectId
shmID
,
SharedMemory
*
ic
=
0
,
UniSetTypes
::
ObjectId
shmID
,
const
std
::
shared_ptr
<
SharedMemory
>
ic
=
nullptr
,
const
std
::
string
&
prefix
=
"mbs"
);
const
std
::
string
&
prefix
=
"mbs"
);
/*! глобальная функция для вывода help-а */
/*! глобальная функция для вывода help-а */
...
...
extensions/ModbusSlave/MBTCPMultiSlave.cc
View file @
d36667c6
...
@@ -11,7 +11,7 @@ using namespace UniSetTypes;
...
@@ -11,7 +11,7 @@ using namespace UniSetTypes;
using
namespace
UniSetExtensions
;
using
namespace
UniSetExtensions
;
using
namespace
ModbusRTU
;
using
namespace
ModbusRTU
;
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
MBTCPMultiSlave
::
MBTCPMultiSlave
(
UniSetTypes
::
ObjectId
objId
,
UniSetTypes
::
ObjectId
shmId
,
SharedMemory
*
ic
,
const
string
&
prefix
)
:
MBTCPMultiSlave
::
MBTCPMultiSlave
(
UniSetTypes
::
ObjectId
objId
,
UniSetTypes
::
ObjectId
shmId
,
const
std
::
shared_ptr
<
SharedMemory
>
ic
,
const
string
&
prefix
)
:
MBSlave
(
objId
,
shmId
,
ic
,
prefix
),
MBSlave
(
objId
,
shmId
,
ic
,
prefix
),
sesscount_id
(
DefaultObjectId
)
sesscount_id
(
DefaultObjectId
)
{
{
...
@@ -110,8 +110,8 @@ void MBTCPMultiSlave::help_print( int argc, const char* const* argv )
...
@@ -110,8 +110,8 @@ void MBTCPMultiSlave::help_print( int argc, const char* const* argv )
cout
<<
"--prefix-session-count-id id - Датчик для отслеживания текущего количества соединений."
<<
endl
;
cout
<<
"--prefix-session-count-id id - Датчик для отслеживания текущего количества соединений."
<<
endl
;
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
MBTCPMultiSlave
*
MBTCPMultiSlave
::
init_mbslave
(
int
argc
,
const
char
*
const
*
argv
,
UniSetTypes
::
ObjectId
icID
,
SharedMemory
*
ic
,
std
::
shared_ptr
<
MBTCPMultiSlave
>
MBTCPMultiSlave
::
init_mbslave
(
int
argc
,
const
char
*
const
*
argv
,
UniSetTypes
::
ObjectId
icID
,
const
string
&
prefix
)
const
std
::
shared_ptr
<
SharedMemory
>
ic
,
const
string
&
prefix
)
{
{
auto
conf
=
uniset_conf
();
auto
conf
=
uniset_conf
();
string
name
=
conf
->
getArgParam
(
"--"
+
prefix
+
"-name"
,
"MBSlave1"
);
string
name
=
conf
->
getArgParam
(
"--"
+
prefix
+
"-name"
,
"MBSlave1"
);
...
@@ -131,7 +131,7 @@ MBTCPMultiSlave* MBTCPMultiSlave::init_mbslave( int argc, const char* const* arg
...
@@ -131,7 +131,7 @@ MBTCPMultiSlave* MBTCPMultiSlave::init_mbslave( int argc, const char* const* arg
}
}
dinfo
<<
"(mbslave): name = "
<<
name
<<
"("
<<
ID
<<
")"
<<
endl
;
dinfo
<<
"(mbslave): name = "
<<
name
<<
"("
<<
ID
<<
")"
<<
endl
;
return
new
MBTCPMultiSlave
(
ID
,
icID
,
ic
,
prefix
);
return
make_shared
<
MBTCPMultiSlave
>
(
ID
,
icID
,
ic
,
prefix
);
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
void
MBTCPMultiSlave
::
execute_tcp
()
void
MBTCPMultiSlave
::
execute_tcp
()
...
...
extensions/ModbusSlave/MBTCPMultiSlave.h
View file @
d36667c6
...
@@ -21,12 +21,12 @@ class MBTCPMultiSlave:
...
@@ -21,12 +21,12 @@ class MBTCPMultiSlave:
public
MBSlave
public
MBSlave
{
{
public
:
public
:
MBTCPMultiSlave
(
UniSetTypes
::
ObjectId
objId
,
UniSetTypes
::
ObjectId
shmID
,
SharedMemory
*
ic
=
0
,
const
std
::
string
&
prefix
=
"mbs"
);
MBTCPMultiSlave
(
UniSetTypes
::
ObjectId
objId
,
UniSetTypes
::
ObjectId
shmID
,
const
std
::
shared_ptr
<
SharedMemory
>
ic
=
nullptr
,
const
std
::
string
&
prefix
=
"mbs"
);
virtual
~
MBTCPMultiSlave
();
virtual
~
MBTCPMultiSlave
();
/*! глобальная функция для инициализации объекта */
/*! глобальная функция для инициализации объекта */
static
MBTCPMultiSlave
*
init_mbslave
(
int
argc
,
const
char
*
const
*
argv
,
static
std
::
shared_ptr
<
MBTCPMultiSlave
>
init_mbslave
(
int
argc
,
const
char
*
const
*
argv
,
UniSetTypes
::
ObjectId
shmID
,
SharedMemory
*
ic
=
0
,
UniSetTypes
::
ObjectId
shmID
,
const
std
::
shared_ptr
<
SharedMemory
>
ic
=
nullptr
,
const
std
::
string
&
prefix
=
"mbs"
);
const
std
::
string
&
prefix
=
"mbs"
);
/*! глобальная функция для вывода help-а */
/*! глобальная функция для вывода help-а */
...
...
extensions/ModbusSlave/mbslave.cc
View file @
d36667c6
...
@@ -55,15 +55,15 @@ int main(int argc, const char **argv)
...
@@ -55,15 +55,15 @@ int main(int argc, const char **argv)
return
1
;
return
1
;
}
}
MBSlave
*
s
=
MBSlave
::
init_mbslave
(
argc
,
argv
,
shmID
);
auto
s
=
MBSlave
::
init_mbslave
(
argc
,
argv
,
shmID
);
if
(
!
s
)
if
(
!
s
)
{
{
dcrit
<<
"(mbslave): init не прошёл..."
<<
endl
;
dcrit
<<
"(mbslave): init не прошёл..."
<<
endl
;
return
1
;
return
1
;
}
}
UniSetActivatorPtr
act
=
UniSetActivator
::
Instance
();
auto
act
=
UniSetActivator
::
Instance
();
act
->
addObject
(
s
tatic_cast
<
class
UniSetObject
*>
(
s
)
);
act
->
addObject
(
s
);
SystemMessage
sm
(
SystemMessage
::
StartUp
);
SystemMessage
sm
(
SystemMessage
::
StartUp
);
act
->
broadcast
(
sm
.
transport_msg
()
);
act
->
broadcast
(
sm
.
transport_msg
()
);
...
...
extensions/ModbusSlave/mbtcp-multislave.cc
View file @
d36667c6
...
@@ -55,15 +55,15 @@ int main(int argc, const char **argv)
...
@@ -55,15 +55,15 @@ int main(int argc, const char **argv)
return
1
;
return
1
;
}
}
MBTCPMultiSlave
*
s
=
MBTCPMultiSlave
::
init_mbslave
(
argc
,
argv
,
shmID
);
auto
s
=
MBTCPMultiSlave
::
init_mbslave
(
argc
,
argv
,
shmID
);
if
(
!
s
)
if
(
!
s
)
{
{
dcrit
<<
"(mbslave): init не прошёл..."
<<
endl
;
dcrit
<<
"(mbslave): init не прошёл..."
<<
endl
;
return
1
;
return
1
;
}
}
UniSetActivatorPtr
act
=
UniSetActivator
::
Instance
();
auto
act
=
UniSetActivator
::
Instance
();
act
->
addObject
(
s
tatic_cast
<
class
UniSetObject
*>
(
s
)
);
act
->
addObject
(
s
);
SystemMessage
sm
(
SystemMessage
::
StartUp
);
SystemMessage
sm
(
SystemMessage
::
StartUp
);
act
->
broadcast
(
sm
.
transport_msg
()
);
act
->
broadcast
(
sm
.
transport_msg
()
);
...
...
extensions/ModbusSlave/tests/tests_with_sm.cc
View file @
d36667c6
...
@@ -36,18 +36,18 @@ int main(int argc, char* argv[] )
...
@@ -36,18 +36,18 @@ int main(int argc, char* argv[] )
bool
apart
=
findArgParam
(
"--apart"
,
argc
,
argv
)
!=
-
1
;
bool
apart
=
findArgParam
(
"--apart"
,
argc
,
argv
)
!=
-
1
;
SharedMemory
*
shm
=
SharedMemory
::
init_smemory
(
argc
,
argv
);
auto
shm
=
SharedMemory
::
init_smemory
(
argc
,
argv
);
if
(
!
shm
)
if
(
!
shm
)
return
1
;
return
1
;
MBSlave
*
mbs
=
MBSlave
::
init_mbslave
(
argc
,
argv
,
shm
->
getId
(),
(
apart
?
nullptr
:
shm
));
auto
mbs
=
MBSlave
::
init_mbslave
(
argc
,
argv
,
shm
->
getId
(),
(
apart
?
nullptr
:
shm
));
if
(
!
mbs
)
if
(
!
mbs
)
return
1
;
return
1
;
UniSetActivatorPtr
act
=
UniSetActivator
::
Instance
();
auto
act
=
UniSetActivator
::
Instance
();
act
->
addObject
(
s
tatic_cast
<
class
UniSetObject
*>
(
shm
)
);
act
->
addObject
(
s
hm
);
act
->
addObject
(
static_cast
<
class
UniSetObject
*>
(
mbs
)
);
act
->
addObject
(
mbs
);
SystemMessage
sm
(
SystemMessage
::
StartUp
);
SystemMessage
sm
(
SystemMessage
::
StartUp
);
act
->
broadcast
(
sm
.
transport_msg
()
);
act
->
broadcast
(
sm
.
transport_msg
()
);
...
...
extensions/RRDServer/RRDServer.cc
View file @
d36667c6
...
@@ -11,12 +11,12 @@ using namespace std;
...
@@ -11,12 +11,12 @@ using namespace std;
using
namespace
UniSetTypes
;
using
namespace
UniSetTypes
;
using
namespace
UniSetExtensions
;
using
namespace
UniSetExtensions
;
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
RRDServer
::
RRDServer
(
UniSetTypes
::
ObjectId
objId
,
xmlNode
*
cnode
,
UniSetTypes
::
ObjectId
shmId
,
SharedMemory
*
ic
,
RRDServer
::
RRDServer
(
UniSetTypes
::
ObjectId
objId
,
xmlNode
*
cnode
,
UniSetTypes
::
ObjectId
shmId
,
const
std
::
shared_ptr
<
SharedMemory
>
ic
,
const
string
&
prefix
,
DebugStream
&
log
)
:
const
string
&
prefix
,
DebugStream
&
log
)
:
UObject_SK
(
objId
,
cnode
),
UObject_SK
(
objId
,
cnode
),
shm
(
new
SMInterface
(
shmId
,
&
ui
,
objId
,
ic
)
),
prefix
(
prefix
)
prefix
(
prefix
)
{
{
shm
=
make_shared
<
SMInterface
>
(
shmId
,
&
ui
,
objId
,
ic
);
mylog
=
log
;
mylog
=
log
;
UniXML
::
iterator
it
(
cnode
);
UniXML
::
iterator
it
(
cnode
);
...
@@ -222,8 +222,8 @@ void RRDServer::help_print( int argc, const char* const* argv )
...
@@ -222,8 +222,8 @@ void RRDServer::help_print( int argc, const char* const* argv )
cout
<<
"--prefix-heartbeat-max val - max value for heartbeat sensor."
<<
endl
;
cout
<<
"--prefix-heartbeat-max val - max value for heartbeat sensor."
<<
endl
;
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
RRDServer
*
RRDServer
::
init_rrdstorage
(
int
argc
,
const
char
*
const
*
argv
,
std
::
shared_ptr
<
RRDServer
>
RRDServer
::
init_rrdstorage
(
int
argc
,
const
char
*
const
*
argv
,
UniSetTypes
::
ObjectId
icID
,
SharedMemory
*
ic
,
UniSetTypes
::
ObjectId
icID
,
const
std
::
shared_ptr
<
SharedMemory
>
ic
,
const
std
::
string
&
prefix
)
const
std
::
string
&
prefix
)
{
{
auto
conf
=
uniset_conf
();
auto
conf
=
uniset_conf
();
...
@@ -252,7 +252,7 @@ RRDServer* RRDServer::init_rrdstorage( int argc, const char* const* argv,
...
@@ -252,7 +252,7 @@ RRDServer* RRDServer::init_rrdstorage( int argc, const char* const* argv,
}
}
dinfo
<<
"(RRDServer): name = "
<<
name
<<
"("
<<
ID
<<
")"
<<
endl
;
dinfo
<<
"(RRDServer): name = "
<<
name
<<
"("
<<
ID
<<
")"
<<
endl
;
return
new
RRDServer
(
ID
,
cnode
,
icID
,
ic
,
prefix
);
return
make_shared
<
RRDServer
>
(
ID
,
cnode
,
icID
,
ic
,
prefix
);
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
void
RRDServer
::
askSensors
(
UniversalIO
::
UIOCommand
cmd
)
void
RRDServer
::
askSensors
(
UniversalIO
::
UIOCommand
cmd
)
...
...
extensions/RRDServer/RRDServer.h
View file @
d36667c6
...
@@ -58,13 +58,13 @@ class RRDServer:
...
@@ -58,13 +58,13 @@ class RRDServer:
public
UObject_SK
public
UObject_SK
{
{
public
:
public
:
RRDServer
(
UniSetTypes
::
ObjectId
objId
,
xmlNode
*
cnode
,
UniSetTypes
::
ObjectId
shmID
,
SharedMemory
*
ic
=
0
,
RRDServer
(
UniSetTypes
::
ObjectId
objId
,
xmlNode
*
cnode
,
UniSetTypes
::
ObjectId
shmID
,
const
std
::
shared_ptr
<
SharedMemory
>
ic
=
nullptr
,
const
std
::
string
&
prefix
=
"rrd"
,
DebugStream
&
log
=
UniSetExtensions
::
dlog
);
const
std
::
string
&
prefix
=
"rrd"
,
DebugStream
&
log
=
UniSetExtensions
::
dlog
);
virtual
~
RRDServer
();
virtual
~
RRDServer
();
/*! глобальная функция для инициализации объекта */
/*! глобальная функция для инициализации объекта */
static
RRDServer
*
init_rrdstorage
(
int
argc
,
const
char
*
const
*
argv
,
static
std
::
shared_ptr
<
RRDServer
>
init_rrdstorage
(
int
argc
,
const
char
*
const
*
argv
,
UniSetTypes
::
ObjectId
shmID
,
SharedMemory
*
ic
=
0
,
UniSetTypes
::
ObjectId
shmID
,
const
std
::
shared_ptr
<
SharedMemory
>
ic
=
nullptr
,
const
std
::
string
&
prefix
=
"rrd"
);
const
std
::
string
&
prefix
=
"rrd"
);
/*! глобальная функция для вывода help-а */
/*! глобальная функция для вывода help-а */
...
@@ -81,7 +81,7 @@ class RRDServer:
...
@@ -81,7 +81,7 @@ class RRDServer:
void
initRRD
(
xmlNode
*
cnode
,
int
tmID
);
void
initRRD
(
xmlNode
*
cnode
,
int
tmID
);
virtual
void
step
()
override
;
virtual
void
step
()
override
;
SMInterface
*
shm
;
std
::
shared_ptr
<
SMInterface
>
shm
;
struct
DSInfo
struct
DSInfo
{
{
...
...
extensions/RRDServer/main.cc
View file @
d36667c6
...
@@ -50,15 +50,15 @@ int main( int argc, const char** argv )
...
@@ -50,15 +50,15 @@ int main( int argc, const char** argv )
return
1
;
return
1
;
}
}
RRDServer
*
db
=
RRDServer
::
init_rrdstorage
(
argc
,
argv
,
shmID
);
auto
db
=
RRDServer
::
init_rrdstorage
(
argc
,
argv
,
shmID
);
if
(
!
db
)
if
(
!
db
)
{
{
dcrit
<<
"(rrdstorage): init не прошёл..."
<<
endl
;
dcrit
<<
"(rrdstorage): init не прошёл..."
<<
endl
;
return
1
;
return
1
;
}
}
UniSetActivatorPtr
act
=
UniSetActivator
::
Instance
();
auto
act
=
UniSetActivator
::
Instance
();
act
->
addObject
(
static_cast
<
class
UniSetObject
*>
(
db
)
);
act
->
addObject
(
db
);
SystemMessage
sm
(
SystemMessage
::
StartUp
);
SystemMessage
sm
(
SystemMessage
::
StartUp
);
act
->
broadcast
(
sm
.
transport_msg
()
);
act
->
broadcast
(
sm
.
transport_msg
()
);
...
...
extensions/SharedMemory/SharedMemory.cc
View file @
d36667c6
...
@@ -410,7 +410,7 @@ bool SharedMemory::readItem( const std::shared_ptr<UniXML>& xml, UniXML::iterato
...
@@ -410,7 +410,7 @@ bool SharedMemory::readItem( const std::shared_ptr<UniXML>& xml, UniXML::iterato
return
true
;
return
true
;
}
}
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
SharedMemory
*
SharedMemory
::
init_smemory
(
int
argc
,
const
char
*
const
*
argv
)
shared_ptr
<
SharedMemory
>
SharedMemory
::
init_smemory
(
int
argc
,
const
char
*
const
*
argv
)
{
{
auto
conf
=
uniset_conf
();
auto
conf
=
uniset_conf
();
string
dfile
=
conf
->
getArgParam
(
"--datfile"
,
conf
->
getConfFileName
());
string
dfile
=
conf
->
getArgParam
(
"--datfile"
,
conf
->
getConfFileName
());
...
@@ -429,8 +429,7 @@ SharedMemory* SharedMemory::init_smemory( int argc, const char* const* argv )
...
@@ -429,8 +429,7 @@ SharedMemory* SharedMemory::init_smemory( int argc, const char* const* argv )
}
}
string
cname
=
conf
->
getArgParam
(
"--smemory--confnode"
,
ORepHelpers
::
getShortName
(
conf
->
oind
->
getMapName
(
ID
))
);
string
cname
=
conf
->
getArgParam
(
"--smemory--confnode"
,
ORepHelpers
::
getShortName
(
conf
->
oind
->
getMapName
(
ID
))
);
return
make_shared
<
SharedMemory
>
(
ID
,
dfile
,
cname
);
return
new
SharedMemory
(
ID
,
dfile
,
cname
);
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
void
SharedMemory
::
buildEventList
(
xmlNode
*
cnode
)
void
SharedMemory
::
buildEventList
(
xmlNode
*
cnode
)
...
...
extensions/SharedMemory/SharedMemory.h
View file @
d36667c6
...
@@ -3,6 +3,7 @@
...
@@ -3,6 +3,7 @@
#define SharedMemory_H_
#define SharedMemory_H_
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
#include <string>
#include <string>
#include <memory>
#include <deque>
#include <deque>
#include "IONotifyController_LT.h"
#include "IONotifyController_LT.h"
#include "Mutex.h"
#include "Mutex.h"
...
@@ -260,7 +261,7 @@ class SharedMemory:
...
@@ -260,7 +261,7 @@ class SharedMemory:
virtual
~
SharedMemory
();
virtual
~
SharedMemory
();
/*! глобальная функция для инициализации объекта */
/*! глобальная функция для инициализации объекта */
static
SharedMemory
*
init_smemory
(
int
argc
,
const
char
*
const
*
argv
);
static
std
::
shared_ptr
<
SharedMemory
>
init_smemory
(
int
argc
,
const
char
*
const
*
argv
);
/*! глобальная функция для вывода help-а */
/*! глобальная функция для вывода help-а */
static
void
help_print
(
int
argc
,
const
char
*
const
*
argv
);
static
void
help_print
(
int
argc
,
const
char
*
const
*
argv
);
...
...
extensions/SharedMemory/smemory.cc
View file @
d36667c6
...
@@ -27,13 +27,13 @@ int main(int argc, const char **argv)
...
@@ -27,13 +27,13 @@ int main(int argc, const char **argv)
ulog
.
logFile
(
logname
);
ulog
.
logFile
(
logname
);
dlog
.
logFile
(
logname
);
dlog
.
logFile
(
logname
);
SharedMemory
*
shm
=
SharedMemory
::
init_smemory
(
argc
,
argv
);
auto
shm
=
SharedMemory
::
init_smemory
(
argc
,
argv
);
if
(
!
shm
)
if
(
!
shm
)
return
1
;
return
1
;
UniSetActivatorPtr
act
=
UniSetActivator
::
Instance
();
UniSetActivatorPtr
act
=
UniSetActivator
::
Instance
();
act
->
addObject
(
static_cast
<
class
UniSetObject
*>
(
shm
)
);
act
->
addObject
(
shm
);
// ->get_ptr()
);
SystemMessage
sm
(
SystemMessage
::
StartUp
);
SystemMessage
sm
(
SystemMessage
::
StartUp
);
act
->
broadcast
(
sm
.
transport_msg
()
);
act
->
broadcast
(
sm
.
transport_msg
()
);
act
->
run
(
false
);
act
->
run
(
false
);
...
...
extensions/SharedMemoryPlus/smemory-plus.cc
View file @
d36667c6
...
@@ -75,14 +75,14 @@ int main( int argc, const char **argv )
...
@@ -75,14 +75,14 @@ int main( int argc, const char **argv )
ulog
.
logFile
(
logname
);
ulog
.
logFile
(
logname
);
conf
->
initDebug
(
UniSetExtensions
::
dlog
,
"dlog"
);
conf
->
initDebug
(
UniSetExtensions
::
dlog
,
"dlog"
);
UniSetActivatorPtr
act
=
UniSetActivator
::
Instance
();
auto
act
=
UniSetActivator
::
Instance
();
act
->
signal_terminate_event
().
connect
(
&
activator_terminate
);
act
->
signal_terminate_event
().
connect
(
&
activator_terminate
);
// ------------ SharedMemory ----------------
// ------------ SharedMemory ----------------
SharedMemory
*
shm
=
SharedMemory
::
init_smemory
(
argc
,
argv
);
auto
shm
=
SharedMemory
::
init_smemory
(
argc
,
argv
);
if
(
shm
==
NULL
)
if
(
!
shm
)
return
1
;
return
1
;
act
->
addManager
(
s
tatic_cast
<
class
UniSetManager
*>
(
shm
)
);
act
->
addManager
(
s
hm
);
#ifdef UNISET_ENABLE_IO
#ifdef UNISET_ENABLE_IO
// ------------ IOControl ----------------
// ------------ IOControl ----------------
...
@@ -104,15 +104,15 @@ int main( int argc, const char **argv )
...
@@ -104,15 +104,15 @@ int main( int argc, const char **argv )
if
(
dlog
.
is_info
()
)
if
(
dlog
.
is_info
()
)
dlog
.
info
()
<<
"(smemory-plus): add IOControl("
<<
p
.
str
()
<<
")"
<<
endl
;
dlog
.
info
()
<<
"(smemory-plus): add IOControl("
<<
p
.
str
()
<<
")"
<<
endl
;
IOControl
*
ic
=
IOControl
::
init_iocontrol
(
argc
,
argv
,
shm
->
getId
(),
shm
,
p
.
str
());
auto
ic
=
IOControl
::
init_iocontrol
(
argc
,
argv
,
shm
->
getId
(),
shm
,
p
.
str
());
if
(
ic
==
NULL
)
if
(
!
ic
)
return
1
;
return
1
;
ThreadCreator
<
IOControl
>*
io_thr
=
new
ThreadCreator
<
IOControl
>
(
ic
,
&
IOControl
::
execute
);
ThreadCreator
<
IOControl
>*
io_thr
=
new
ThreadCreator
<
IOControl
>
(
ic
.
get
()
,
&
IOControl
::
execute
);
if
(
io_thr
==
NULL
)
if
(
io_thr
==
NULL
)
return
1
;
return
1
;
act
->
addObject
(
static_cast
<
class
UniSetObject
*>
(
ic
)
);
act
->
addObject
(
ic
);
lst_iothr
.
push_back
(
io_thr
);
lst_iothr
.
push_back
(
io_thr
);
}
}
}
}
...
@@ -134,11 +134,11 @@ int main( int argc, const char **argv )
...
@@ -134,11 +134,11 @@ int main( int argc, const char **argv )
if
(
dlog
.
is_info
()
)
if
(
dlog
.
is_info
()
)
dlog
.
info
()
<<
"(smemory-plus): add RTUExchange("
<<
p
.
str
()
<<
")"
<<
endl
;
dlog
.
info
()
<<
"(smemory-plus): add RTUExchange("
<<
p
.
str
()
<<
")"
<<
endl
;
RTUExchange
*
rtu
=
RTUExchange
::
init_rtuexchange
(
argc
,
argv
,
shm
->
getId
(),
shm
,
p
.
str
());
auto
rtu
=
RTUExchange
::
init_rtuexchange
(
argc
,
argv
,
shm
->
getId
(),
shm
,
p
.
str
());
if
(
rtu
==
NULL
)
if
(
!
rtu
)
return
1
;
return
1
;
act
->
addObject
(
static_cast
<
class
UniSetObject
*>
(
rtu
)
);
act
->
addObject
(
rtu
);
}
}
}
}
// ------------- MBSlave --------------
// ------------- MBSlave --------------
...
@@ -158,11 +158,11 @@ int main( int argc, const char **argv )
...
@@ -158,11 +158,11 @@ int main( int argc, const char **argv )
if
(
dlog
.
is_info
()
)
if
(
dlog
.
is_info
()
)
dlog
.
info
()
<<
"(smemory-plus): add MBSlave("
<<
p
.
str
()
<<
")"
<<
endl
;
dlog
.
info
()
<<
"(smemory-plus): add MBSlave("
<<
p
.
str
()
<<
")"
<<
endl
;
MBSlave
*
mbs
=
MBSlave
::
init_mbslave
(
argc
,
argv
,
shm
->
getId
(),
shm
,
p
.
str
());
auto
mbs
=
MBSlave
::
init_mbslave
(
argc
,
argv
,
shm
->
getId
(),
shm
,
p
.
str
());
if
(
mbs
==
NULL
)
if
(
!
mbs
)
return
1
;
return
1
;
act
->
addObject
(
static_cast
<
class
UniSetObject
*>
(
mbs
)
);
act
->
addObject
(
mbs
);
}
}
}
}
...
@@ -184,25 +184,25 @@ int main( int argc, const char **argv )
...
@@ -184,25 +184,25 @@ int main( int argc, const char **argv )
if
(
dlog
.
is_info
()
)
if
(
dlog
.
is_info
()
)
dlog
.
info
()
<<
"(smemory-plus): add MBTCPMaster("
<<
p
.
str
()
<<
")"
<<
endl
;
dlog
.
info
()
<<
"(smemory-plus): add MBTCPMaster("
<<
p
.
str
()
<<
")"
<<
endl
;
MBTCPMaster
*
mbm1
=
MBTCPMaster
::
init_mbmaster
(
argc
,
argv
,
shm
->
getId
(),
shm
,
p
.
str
());
auto
mbm1
=
MBTCPMaster
::
init_mbmaster
(
argc
,
argv
,
shm
->
getId
(),
shm
,
p
.
str
());
if
(
mbm1
==
NULL
)
if
(
!
mbm1
)
return
1
;
return
1
;
act
->
addObject
(
static_cast
<
class
UniSetObject
*>
(
mbm1
)
);
act
->
addObject
(
mbm1
);
}
}
}
}
// ------------- UNetUDP --------------
// ------------- UNetUDP --------------
bool
add_unet
=
findArgParam
(
"--add-unet"
,
argc
,
argv
)
!=
-
1
;
bool
add_unet
=
findArgParam
(
"--add-unet"
,
argc
,
argv
)
!=
-
1
;
if
(
add_unet
)
if
(
add_unet
)
{
{
UNetExchange
*
unet
=
UNetExchange
::
init_unetexchange
(
argc
,
argv
,
shm
->
getId
(),
shm
);
auto
unet
=
UNetExchange
::
init_unetexchange
(
argc
,
argv
,
shm
->
getId
(),
shm
);
if
(
unet
==
NULL
)
if
(
unet
==
NULL
)
return
1
;
return
1
;
if
(
dlog
.
is_info
()
)
if
(
dlog
.
is_info
()
)
dlog
.
info
()
<<
"(smemory-plus): add UNetExchnage.."
<<
endl
;
dlog
.
info
()
<<
"(smemory-plus): add UNetExchnage.."
<<
endl
;
act
->
addObject
(
static_cast
<
class
UniSetObject
*>
(
unet
)
);
act
->
addObject
(
unet
);
}
}
// ---------------------------------------
// ---------------------------------------
// попытка решить вопрос с "зомби" процессами
// попытка решить вопрос с "зомби" процессами
...
...
extensions/UNetUDP/UNetExchange.cc
View file @
d36667c6
...
@@ -7,7 +7,7 @@ using namespace std;
...
@@ -7,7 +7,7 @@ using namespace std;
using
namespace
UniSetTypes
;
using
namespace
UniSetTypes
;
using
namespace
UniSetExtensions
;
using
namespace
UniSetExtensions
;
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
UNetExchange
::
UNetExchange
(
UniSetTypes
::
ObjectId
objId
,
UniSetTypes
::
ObjectId
shmId
,
SharedMemory
*
ic
,
const
std
::
string
&
prefix
)
:
UNetExchange
::
UNetExchange
(
UniSetTypes
::
ObjectId
objId
,
UniSetTypes
::
ObjectId
shmId
,
const
std
::
shared_ptr
<
SharedMemory
>
ic
,
const
std
::
string
&
prefix
)
:
UniSetObject_LT
(
objId
),
UniSetObject_LT
(
objId
),
shm
(
0
),
shm
(
0
),
initPause
(
0
),
initPause
(
0
),
...
@@ -25,7 +25,7 @@ sender2(0)
...
@@ -25,7 +25,7 @@ sender2(0)
if
(
cnode
==
NULL
)
if
(
cnode
==
NULL
)
throw
UniSetTypes
::
SystemError
(
"(UNetExchange): Not found conf-node for "
+
myname
);
throw
UniSetTypes
::
SystemError
(
"(UNetExchange): Not found conf-node for "
+
myname
);
shm
=
new
SMInterface
(
shmId
,
&
ui
,
objId
,
ic
);
shm
=
make_shared
<
SMInterface
>
(
shmId
,
&
ui
,
objId
,
ic
);
UniXML
::
iterator
it
(
cnode
);
UniXML
::
iterator
it
(
cnode
);
...
@@ -122,7 +122,7 @@ sender2(0)
...
@@ -122,7 +122,7 @@ sender2(0)
}
}
dinfo
<<
myname
<<
"(init): init sender.. my node "
<<
n_it
.
getProp
(
"name"
)
<<
endl
;
dinfo
<<
myname
<<
"(init): init sender.. my node "
<<
n_it
.
getProp
(
"name"
)
<<
endl
;
sender
=
new
UNetSender
(
h
,
p
,
shm
,
s_field
,
s_fvalue
,
ic
);
sender
=
new
UNetSender
(
h
,
p
,
shm
,
s_field
,
s_fvalue
);
sender
->
setSendPause
(
sendpause
);
sender
->
setSendPause
(
sendpause
);
try
try
...
@@ -131,7 +131,7 @@ sender2(0)
...
@@ -131,7 +131,7 @@ sender2(0)
if
(
!
h2
.
empty
()
)
if
(
!
h2
.
empty
()
)
{
{
dinfo
<<
myname
<<
"(init): init sender2.. my node "
<<
n_it
.
getProp
(
"name"
)
<<
endl
;
dinfo
<<
myname
<<
"(init): init sender2.. my node "
<<
n_it
.
getProp
(
"name"
)
<<
endl
;
sender2
=
new
UNetSender
(
h2
,
p2
,
shm
,
s_field
,
s_fvalue
,
ic
);
sender2
=
new
UNetSender
(
h2
,
p2
,
shm
,
s_field
,
s_fvalue
);
sender2
->
setSendPause
(
sendpause
);
sender2
->
setSendPause
(
sendpause
);
}
}
}
}
...
@@ -349,7 +349,6 @@ UNetExchange::~UNetExchange()
...
@@ -349,7 +349,6 @@ UNetExchange::~UNetExchange()
delete
sender
;
delete
sender
;
delete
sender2
;
delete
sender2
;
delete
shm
;
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
bool
UNetExchange
::
checkExistUNetHost
(
const
std
::
string
&
addr
,
ost
::
tpport_t
port
)
bool
UNetExchange
::
checkExistUNetHost
(
const
std
::
string
&
addr
,
ost
::
tpport_t
port
)
...
@@ -425,7 +424,7 @@ void UNetExchange::step()
...
@@ -425,7 +424,7 @@ void UNetExchange::step()
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
void
UNetExchange
::
ReceiverInfo
::
step
(
SMInterface
*
shm
,
const
std
::
string
&
myname
)
void
UNetExchange
::
ReceiverInfo
::
step
(
const
std
::
shared_ptr
<
SMInterface
>
shm
,
const
std
::
string
&
myname
)
{
{
try
try
{
{
...
@@ -656,8 +655,8 @@ void UNetExchange::help_print( int argc, const char* argv[] )
...
@@ -656,8 +655,8 @@ void UNetExchange::help_print( int argc, const char* argv[] )
cout
<<
"--prefix-filter-value name - Значение фильтрующего поля при формировании списка датчиков посылаемых данным узлом"
<<
endl
;
cout
<<
"--prefix-filter-value name - Значение фильтрующего поля при формировании списка датчиков посылаемых данным узлом"
<<
endl
;
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
UNetExchange
*
UNetExchange
::
init_unetexchange
(
int
argc
,
const
char
*
const
argv
[],
UniSetTypes
::
ObjectId
icID
,
std
::
shared_ptr
<
UNetExchange
>
UNetExchange
::
init_unetexchange
(
int
argc
,
const
char
*
const
argv
[],
UniSetTypes
::
ObjectId
icID
,
SharedMemory
*
ic
,
const
std
::
string
&
prefix
)
const
std
::
shared_ptr
<
SharedMemory
>
ic
,
const
std
::
string
&
prefix
)
{
{
auto
conf
=
uniset_conf
();
auto
conf
=
uniset_conf
();
...
@@ -678,7 +677,7 @@ UNetExchange* UNetExchange::init_unetexchange( int argc, const char* const argv[
...
@@ -678,7 +677,7 @@ UNetExchange* UNetExchange::init_unetexchange( int argc, const char* const argv[
}
}
dinfo
<<
"(unetexchange): name = "
<<
name
<<
"("
<<
ID
<<
")"
<<
endl
;
dinfo
<<
"(unetexchange): name = "
<<
name
<<
"("
<<
ID
<<
")"
<<
endl
;
return
new
UNetExchange
(
ID
,
icID
,
ic
,
prefix
);
return
make_shared
<
UNetExchange
>
(
ID
,
icID
,
ic
,
prefix
);
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
void
UNetExchange
::
receiverEvent
(
UNetReceiver
*
r
,
UNetReceiver
::
Event
ev
)
void
UNetExchange
::
receiverEvent
(
UNetReceiver
*
r
,
UNetReceiver
::
Event
ev
)
...
...
extensions/UNetUDP/UNetExchange.h
View file @
d36667c6
...
@@ -80,12 +80,12 @@ class UNetExchange:
...
@@ -80,12 +80,12 @@ class UNetExchange:
public
UniSetObject_LT
public
UniSetObject_LT
{
{
public
:
public
:
UNetExchange
(
UniSetTypes
::
ObjectId
objId
,
UniSetTypes
::
ObjectId
shmID
,
SharedMemory
*
ic
=
0
,
const
std
::
string
&
prefix
=
"unet"
);
UNetExchange
(
UniSetTypes
::
ObjectId
objId
,
UniSetTypes
::
ObjectId
shmID
,
const
std
::
shared_ptr
<
SharedMemory
>
ic
=
nullptr
,
const
std
::
string
&
prefix
=
"unet"
);
virtual
~
UNetExchange
();
virtual
~
UNetExchange
();
/*! глобальная функция для инициализации объекта */
/*! глобальная функция для инициализации объекта */
static
UNetExchange
*
init_unetexchange
(
int
argc
,
const
char
*
const
argv
[],
static
std
::
shared_ptr
<
UNetExchange
>
init_unetexchange
(
int
argc
,
const
char
*
const
argv
[],
UniSetTypes
::
ObjectId
shmID
,
SharedMemory
*
ic
=
0
,
const
std
::
string
&
prefix
=
"unet"
);
UniSetTypes
::
ObjectId
shmID
,
const
std
::
shared_ptr
<
SharedMemory
>
ic
=
0
,
const
std
::
string
&
prefix
=
"unet"
);
/*! глобальная функция для вывода help-а */
/*! глобальная функция для вывода help-а */
static
void
help_print
(
int
argc
,
const
char
*
argv
[]
);
static
void
help_print
(
int
argc
,
const
char
*
argv
[]
);
...
@@ -98,7 +98,7 @@ class UNetExchange:
...
@@ -98,7 +98,7 @@ class UNetExchange:
std
::
string
s_field
;
std
::
string
s_field
;
std
::
string
s_fvalue
;
std
::
string
s_fvalue
;
SMInterface
*
shm
;
std
::
shared_ptr
<
SMInterface
>
shm
;
void
step
();
void
step
();
void
sysCommand
(
const
UniSetTypes
::
SystemMessage
*
msg
)
override
;
void
sysCommand
(
const
UniSetTypes
::
SystemMessage
*
msg
)
override
;
...
@@ -155,7 +155,7 @@ class UNetExchange:
...
@@ -155,7 +155,7 @@ class UNetExchange:
UNetReceiver
*
r1
;
/*!< приём по первому каналу */
UNetReceiver
*
r1
;
/*!< приём по первому каналу */
UNetReceiver
*
r2
;
/*!< приём по второму каналу */
UNetReceiver
*
r2
;
/*!< приём по второму каналу */
void
step
(
SMInterface
*
shm
,
const
std
::
string
&
myname
);
void
step
(
const
std
::
shared_ptr
<
SMInterface
>
shm
,
const
std
::
string
&
myname
);
inline
void
setRespondID
(
UniSetTypes
::
ObjectId
id
,
bool
invert
=
false
)
inline
void
setRespondID
(
UniSetTypes
::
ObjectId
id
,
bool
invert
=
false
)
{
{
...
@@ -163,7 +163,7 @@ class UNetExchange:
...
@@ -163,7 +163,7 @@ class UNetExchange:
respondInvert
=
invert
;
respondInvert
=
invert
;
}
}
inline
void
setLostPacketsID
(
UniSetTypes
::
ObjectId
id
){
sidLostPackets
=
id
;
}
inline
void
setLostPacketsID
(
UniSetTypes
::
ObjectId
id
){
sidLostPackets
=
id
;
}
inline
void
initIterators
(
SMInterface
*
shm
)
inline
void
initIterators
(
const
std
::
shared_ptr
<
SMInterface
>
shm
)
{
{
shm
->
initIterator
(
itLostPackets
);
shm
->
initIterator
(
itLostPackets
);
shm
->
initIterator
(
itRespond
);
shm
->
initIterator
(
itRespond
);
...
...
extensions/UNetUDP/UNetReceiver.cc
View file @
d36667c6
...
@@ -19,7 +19,7 @@ bool UNetReceiver::PacketCompare::operator()(const UniSetUDP::UDPMessage& lhs,
...
@@ -19,7 +19,7 @@ bool UNetReceiver::PacketCompare::operator()(const UniSetUDP::UDPMessage& lhs,
}
}
*/
*/
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
UNetReceiver
::
UNetReceiver
(
const
std
::
string
&
s_host
,
const
ost
::
tpport_t
port
,
SMInterface
*
smi
)
:
UNetReceiver
::
UNetReceiver
(
const
std
::
string
&
s_host
,
const
ost
::
tpport_t
port
,
const
std
::
shared_ptr
<
SMInterface
>
smi
)
:
shm
(
smi
),
shm
(
smi
),
recvpause
(
10
),
recvpause
(
10
),
updatepause
(
100
),
updatepause
(
100
),
...
@@ -388,11 +388,12 @@ void UNetReceiver::receive()
...
@@ -388,11 +388,12 @@ void UNetReceiver::receive()
{
{
dwarn
<<
myname
<<
"(receive): "
<<
e
.
what
()
<<
std
::
endl
;
dwarn
<<
myname
<<
"(receive): "
<<
e
.
what
()
<<
std
::
endl
;
}
}
/*
catch(...)
catch(...)
{
{
dwarn << myname << "(receive): catch ..." << std::endl;
dwarn << myname << "(receive): catch ..." << std::endl;
}
}
*/
// делаем через промежуточную переменную
// делаем через промежуточную переменную
// чтобы поскорее освободить mutex
// чтобы поскорее освободить mutex
{
{
...
...
extensions/UNetUDP/UNetReceiver.h
View file @
d36667c6
...
@@ -52,7 +52,7 @@
...
@@ -52,7 +52,7 @@
class
UNetReceiver
class
UNetReceiver
{
{
public
:
public
:
UNetReceiver
(
const
std
::
string
&
host
,
const
ost
::
tpport_t
port
,
SMInterface
*
smi
);
UNetReceiver
(
const
std
::
string
&
host
,
const
ost
::
tpport_t
port
,
const
std
::
shared_ptr
<
SMInterface
>
smi
);
~
UNetReceiver
();
~
UNetReceiver
();
void
start
();
void
start
();
...
@@ -100,7 +100,7 @@ class UNetReceiver
...
@@ -100,7 +100,7 @@ class UNetReceiver
protected
:
protected
:
SMInterface
*
shm
;
const
std
::
shared_ptr
<
SMInterface
>
shm
;
bool
recv
();
bool
recv
();
void
step
();
void
step
();
...
...
extensions/UNetUDP/UNetSender.cc
View file @
d36667c6
...
@@ -8,8 +8,8 @@ using namespace std;
...
@@ -8,8 +8,8 @@ using namespace std;
using
namespace
UniSetTypes
;
using
namespace
UniSetTypes
;
using
namespace
UniSetExtensions
;
using
namespace
UniSetExtensions
;
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
UNetSender
::
UNetSender
(
const
std
::
string
&
s_host
,
const
ost
::
tpport_t
port
,
SMInterface
*
smi
,
UNetSender
::
UNetSender
(
const
std
::
string
&
s_host
,
const
ost
::
tpport_t
port
,
const
std
::
shared_ptr
<
SMInterface
>
smi
,
const
std
::
string
&
s_f
,
const
std
::
string
&
s_val
,
SharedMemory
*
ic
)
:
const
std
::
string
&
s_f
,
const
std
::
string
&
s_val
)
:
s_field
(
s_f
),
s_field
(
s_f
),
s_fvalue
(
s_val
),
s_fvalue
(
s_val
),
shm
(
smi
),
shm
(
smi
),
...
@@ -68,7 +68,18 @@ s_thr(0)
...
@@ -68,7 +68,18 @@ s_thr(0)
dinfo
<<
myname
<<
"(init): dlist size = "
<<
dlist
.
size
()
<<
endl
;
dinfo
<<
myname
<<
"(init): dlist size = "
<<
dlist
.
size
()
<<
endl
;
}
}
else
else
{
auto
ic
=
std
::
dynamic_pointer_cast
<
SharedMemory
>
(
shm
->
SM
());
if
(
ic
)
ic
->
addReadItem
(
sigc
::
mem_fun
(
this
,
&
UNetSender
::
readItem
)
);
ic
->
addReadItem
(
sigc
::
mem_fun
(
this
,
&
UNetSender
::
readItem
)
);
else
{
dwarn
<<
myname
<<
"(init): Failed to convert the pointer 'IONotifyController' -> 'SharedMemory'"
<<
endl
;
readConfiguration
();
dlist
.
resize
(
maxItem
);
dinfo
<<
myname
<<
"(init): dlist size = "
<<
dlist
.
size
()
<<
endl
;
}
}
// выставляем поля, которые не меняются
// выставляем поля, которые не меняются
...
@@ -80,7 +91,6 @@ UNetSender::~UNetSender()
...
@@ -80,7 +91,6 @@ UNetSender::~UNetSender()
{
{
delete
s_thr
;
delete
s_thr
;
delete
udp
;
delete
udp
;
delete
shm
;
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
void
UNetSender
::
updateFromSM
()
void
UNetSender
::
updateFromSM
()
...
...
extensions/UNetUDP/UNetSender.h
View file @
d36667c6
...
@@ -21,8 +21,8 @@
...
@@ -21,8 +21,8 @@
class
UNetSender
class
UNetSender
{
{
public
:
public
:
UNetSender
(
const
std
::
string
&
host
,
const
ost
::
tpport_t
port
,
SMInterface
*
smi
,
UNetSender
(
const
std
::
string
&
host
,
const
ost
::
tpport_t
port
,
const
std
::
shared_ptr
<
SMInterface
>
smi
,
const
std
::
string
&
s_field
=
""
,
const
std
::
string
&
s_fvalue
=
""
,
SharedMemory
*
ic
=
0
);
const
std
::
string
&
s_field
=
""
,
const
std
::
string
&
s_fvalue
=
""
);
~
UNetSender
();
~
UNetSender
();
...
@@ -71,7 +71,7 @@ class UNetSender
...
@@ -71,7 +71,7 @@ class UNetSender
std
::
string
s_field
;
std
::
string
s_field
;
std
::
string
s_fvalue
;
std
::
string
s_fvalue
;
SMInterface
*
shm
;
const
std
::
shared_ptr
<
SMInterface
>
shm
;
bool
initItem
(
UniXML
::
iterator
&
it
);
bool
initItem
(
UniXML
::
iterator
&
it
);
bool
readItem
(
const
std
::
shared_ptr
<
UniXML
>&
xml
,
UniXML
::
iterator
&
it
,
xmlNode
*
sec
);
bool
readItem
(
const
std
::
shared_ptr
<
UniXML
>&
xml
,
UniXML
::
iterator
&
it
,
xmlNode
*
sec
);
...
...
extensions/UNetUDP/tests/tests_with_sm.cc
View file @
d36667c6
...
@@ -36,18 +36,18 @@ int main(int argc, char* argv[] )
...
@@ -36,18 +36,18 @@ int main(int argc, char* argv[] )
bool
apart
=
findArgParam
(
"--apart"
,
argc
,
argv
)
!=
-
1
;
bool
apart
=
findArgParam
(
"--apart"
,
argc
,
argv
)
!=
-
1
;
SharedMemory
*
shm
=
SharedMemory
::
init_smemory
(
argc
,
argv
);
auto
shm
=
SharedMemory
::
init_smemory
(
argc
,
argv
);
if
(
!
shm
)
if
(
!
shm
)
return
1
;
return
1
;
UNetExchange
*
unet
=
UNetExchange
::
init_unetexchange
(
argc
,
argv
,
shm
->
getId
(),
(
apart
?
nullptr
:
shm
));
auto
unet
=
UNetExchange
::
init_unetexchange
(
argc
,
argv
,
shm
->
getId
(),
(
apart
?
nullptr
:
shm
));
if
(
!
unet
)
if
(
!
unet
)
return
1
;
return
1
;
UniSetActivatorPtr
act
=
UniSetActivator
::
Instance
();
auto
act
=
UniSetActivator
::
Instance
();
act
->
addObject
(
s
tatic_cast
<
class
UniSetObject
*>
(
shm
)
);
act
->
addObject
(
s
hm
);
act
->
addObject
(
static_cast
<
class
UniSetObject
*>
(
unet
)
);
act
->
addObject
(
unet
);
SystemMessage
sm
(
SystemMessage
::
StartUp
);
SystemMessage
sm
(
SystemMessage
::
StartUp
);
act
->
broadcast
(
sm
.
transport_msg
()
);
act
->
broadcast
(
sm
.
transport_msg
()
);
...
...
extensions/UNetUDP/unetexchange.cc
View file @
d36667c6
...
@@ -48,15 +48,15 @@ int main( int argc, const char** argv )
...
@@ -48,15 +48,15 @@ int main( int argc, const char** argv )
return
1
;
return
1
;
}
}
UNetExchange
*
unet
=
UNetExchange
::
init_unetexchange
(
argc
,
argv
,
shmID
);
auto
unet
=
UNetExchange
::
init_unetexchange
(
argc
,
argv
,
shmID
);
if
(
!
unet
)
if
(
!
unet
)
{
{
dcrit
<<
"(unetexchange): init failed.."
<<
endl
;
dcrit
<<
"(unetexchange): init failed.."
<<
endl
;
return
1
;
return
1
;
}
}
UniSetActivatorPtr
act
=
UniSetActivator
::
Instance
();
auto
act
=
UniSetActivator
::
Instance
();
act
->
addObject
(
static_cast
<
class
UniSetObject
*>
(
unet
)
);
act
->
addObject
(
unet
);
SystemMessage
sm
(
SystemMessage
::
StartUp
);
SystemMessage
sm
(
SystemMessage
::
StartUp
);
act
->
broadcast
(
sm
.
transport_msg
()
);
act
->
broadcast
(
sm
.
transport_msg
()
);
...
...
extensions/UniNetwork/UniExchange.cc
View file @
d36667c6
...
@@ -18,7 +18,7 @@ UniExchange::NetNodeInfo::NetNodeInfo():
...
@@ -18,7 +18,7 @@ UniExchange::NetNodeInfo::NetNodeInfo():
}
}
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
UniExchange
::
UniExchange
(
UniSetTypes
::
ObjectId
id
,
UniSetTypes
::
ObjectId
shmID
,
UniExchange
::
UniExchange
(
UniSetTypes
::
ObjectId
id
,
UniSetTypes
::
ObjectId
shmID
,
SharedMemory
*
ic
,
const
std
::
string
&
prefix
)
:
const
std
::
shared_ptr
<
SharedMemory
>
ic
,
const
std
::
string
&
prefix
)
:
IOController
(
id
),
IOController
(
id
),
shm
(
0
),
shm
(
0
),
polltime
(
200
),
polltime
(
200
),
...
@@ -327,8 +327,8 @@ void UniExchange::sigterm( int signo )
...
@@ -327,8 +327,8 @@ void UniExchange::sigterm( int signo )
{
{
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
UniExchange
*
UniExchange
::
init_exchange
(
int
argc
,
const
char
*
const
*
argv
,
std
::
shared_ptr
<
UniExchange
>
UniExchange
::
init_exchange
(
int
argc
,
const
char
*
const
*
argv
,
UniSetTypes
::
ObjectId
icID
,
SharedMemory
*
ic
,
UniSetTypes
::
ObjectId
icID
,
const
std
::
shared_ptr
<
SharedMemory
>
ic
,
const
std
::
string
&
prefix
)
const
std
::
string
&
prefix
)
{
{
auto
conf
=
uniset_conf
();
auto
conf
=
uniset_conf
();
...
@@ -343,7 +343,7 @@ UniExchange* UniExchange::init_exchange( int argc, const char* const* argv,
...
@@ -343,7 +343,7 @@ UniExchange* UniExchange::init_exchange( int argc, const char* const* argv,
<<
" in section "
<<
conf
->
getControllersSection
()
<<
endl
;
<<
" in section "
<<
conf
->
getControllersSection
()
<<
endl
;
return
0
;
return
0
;
}
}
return
new
UniExchange
(
ID
,
icID
,
ic
,
prefix
);
return
make_shared
<
UniExchange
>
(
ID
,
icID
,
ic
,
prefix
);
}
}
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
void
UniExchange
::
readConfiguration
()
void
UniExchange
::
readConfiguration
()
...
...
extensions/UniNetwork/UniExchange.h
View file @
d36667c6
...
@@ -37,13 +37,13 @@ class UniExchange:
...
@@ -37,13 +37,13 @@ class UniExchange:
{
{
public
:
public
:
UniExchange
(
UniSetTypes
::
ObjectId
id
,
UniSetTypes
::
ObjectId
shmID
,
UniExchange
(
UniSetTypes
::
ObjectId
id
,
UniSetTypes
::
ObjectId
shmID
,
SharedMemory
*
ic
=
0
,
const
std
::
string
&
prefix
=
"unet"
);
const
std
::
shared_ptr
<
SharedMemory
>
ic
=
nullptr
,
const
std
::
string
&
prefix
=
"unet"
);
virtual
~
UniExchange
();
virtual
~
UniExchange
();
void
execute
();
void
execute
();
static
UniExchange
*
init_exchange
(
int
argc
,
const
char
*
const
*
argv
,
static
std
::
shared_ptr
<
UniExchange
>
init_exchange
(
int
argc
,
const
char
*
const
*
argv
,
UniSetTypes
::
ObjectId
shmID
,
SharedMemory
*
ic
=
0
,
UniSetTypes
::
ObjectId
shmID
,
const
std
::
shared_ptr
<
SharedMemory
>
ic
=
nullptr
,
const
std
::
string
&
prefix
=
"unet"
);
const
std
::
string
&
prefix
=
"unet"
);
/*! глобальная функция для вывода help-а */
/*! глобальная функция для вывода help-а */
...
...
extensions/UniNetwork/uninet.cc
View file @
d36667c6
...
@@ -40,17 +40,17 @@ int main(int argc, const char **argv)
...
@@ -40,17 +40,17 @@ int main(int argc, const char **argv)
return
1
;
return
1
;
}
}
UniExchange
*
shm
=
UniExchange
::
init_exchange
(
argc
,
argv
,
shmID
);
auto
uex
=
UniExchange
::
init_exchange
(
argc
,
argv
,
shmID
);
if
(
!
shm
)
if
(
!
uex
)
return
1
;
return
1
;
UniSetActivatorPtr
act
=
UniSetActivator
::
Instance
();
auto
act
=
UniSetActivator
::
Instance
();
act
->
addObject
(
static_cast
<
class
UniSetObject
*>
(
shm
)
);
act
->
addObject
(
uex
);
SystemMessage
sm
(
SystemMessage
::
StartUp
);
SystemMessage
sm
(
SystemMessage
::
StartUp
);
act
->
broadcast
(
sm
.
transport_msg
()
);
act
->
broadcast
(
sm
.
transport_msg
()
);
act
->
run
(
true
);
act
->
run
(
true
);
shm
->
execute
();
uex
->
execute
();
on_sigchild
(
SIGTERM
);
on_sigchild
(
SIGTERM
);
return
0
;
return
0
;
}
}
...
...
extensions/include/SMInterface.h
View file @
d36667c6
...
@@ -11,7 +11,7 @@ class SMInterface
...
@@ -11,7 +11,7 @@ class SMInterface
public
:
public
:
SMInterface
(
UniSetTypes
::
ObjectId
_shmID
,
UInterface
*
ui
,
SMInterface
(
UniSetTypes
::
ObjectId
_shmID
,
UInterface
*
ui
,
UniSetTypes
::
ObjectId
myid
,
IONotifyController
*
ic
=
0
);
UniSetTypes
::
ObjectId
myid
,
const
std
::
shared_ptr
<
IONotifyController
>
ic
=
nullptr
);
~
SMInterface
();
~
SMInterface
();
void
setValue
(
UniSetTypes
::
ObjectId
,
long
value
);
void
setValue
(
UniSetTypes
::
ObjectId
,
long
value
);
...
@@ -49,11 +49,11 @@ class SMInterface
...
@@ -49,11 +49,11 @@ class SMInterface
inline
bool
isLocalwork
(){
return
(
ic
==
NULL
);
}
inline
bool
isLocalwork
(){
return
(
ic
==
NULL
);
}
inline
UniSetTypes
::
ObjectId
ID
(){
return
myid
;
}
inline
UniSetTypes
::
ObjectId
ID
(){
return
myid
;
}
inline
IONotifyController
*
SM
(){
return
ic
;
}
inline
const
std
::
shared_ptr
<
IONotifyController
>
SM
(){
return
ic
;
}
inline
UniSetTypes
::
ObjectId
getSMID
(){
return
shmID
;
}
inline
UniSetTypes
::
ObjectId
getSMID
(){
return
shmID
;
}
protected
:
protected
:
IONotifyController
*
ic
;
const
std
::
shared_ptr
<
IONotifyController
>
ic
;
UInterface
*
ui
;
UInterface
*
ui
;
CORBA
::
Object_var
oref
;
CORBA
::
Object_var
oref
;
UniSetTypes
::
ObjectId
shmID
;
UniSetTypes
::
ObjectId
shmID
;
...
...
extensions/lib/SMInterface.cc
View file @
d36667c6
...
@@ -85,7 +85,7 @@ using namespace UniSetTypes;
...
@@ -85,7 +85,7 @@ using namespace UniSetTypes;
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
SMInterface
::
SMInterface
(
UniSetTypes
::
ObjectId
_shmID
,
UInterface
*
_ui
,
SMInterface
::
SMInterface
(
UniSetTypes
::
ObjectId
_shmID
,
UInterface
*
_ui
,
UniSetTypes
::
ObjectId
_myid
,
IONotifyController
*
ic
)
:
UniSetTypes
::
ObjectId
_myid
,
const
std
::
shared_ptr
<
IONotifyController
>
ic
)
:
ic
(
ic
),
ic
(
ic
),
ui
(
_ui
),
ui
(
_ui
),
oref
(
CORBA
::
Object
::
_nil
()
),
oref
(
CORBA
::
Object
::
_nil
()
),
...
...
extensions/tests/test_iobase_with_sm.cc
View file @
d36667c6
...
@@ -10,11 +10,13 @@ using namespace std;
...
@@ -10,11 +10,13 @@ using namespace std;
using
namespace
UniSetTypes
;
using
namespace
UniSetTypes
;
using
namespace
UniSetExtensions
;
using
namespace
UniSetExtensions
;
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
static
SMInterface
*
shm
=
nullptr
;
static
std
::
shared_ptr
<
SMInterface
>
shared_shm
;
static
SMInterface
*
shm
;
static
void
init_test
()
static
void
init_test
()
{
{
shm
=
smiInstance
();
shared_shm
=
smiInstance
();
CHECK
(
shm
!=
nullptr
);
CHECK
(
shared_shm
!=
nullptr
);
shm
=
shared_shm
.
get
();
}
}
static
bool
init_iobase
(
IOBase
*
ib
,
const
std
::
string
&
sensor
)
static
bool
init_iobase
(
IOBase
*
ib
,
const
std
::
string
&
sensor
)
...
...
extensions/tests/tests_with_sm.cc
View file @
d36667c6
#define CATCH_CONFIG_RUNNER
#define CATCH_CONFIG_RUNNER
#include <catch.hpp>
#include <catch.hpp>
#include <memory>
#include <string>
#include <string>
#include "Debug.h"
#include "Debug.h"
#include "UniSetActivator.h"
#include "UniSetActivator.h"
...
@@ -13,20 +14,20 @@ using namespace std;
...
@@ -13,20 +14,20 @@ using namespace std;
using
namespace
UniSetTypes
;
using
namespace
UniSetTypes
;
using
namespace
UniSetExtensions
;
using
namespace
UniSetExtensions
;
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
static
SMInterface
*
smi
=
nullptr
;
static
shared_ptr
<
SMInterface
>
smi
;
static
SharedMemory
*
shm
=
nullptr
;
static
shared_ptr
<
SharedMemory
>
shm
;
static
UInterface
*
ui
=
nullptr
;
static
UInterface
*
ui
=
nullptr
;
static
ObjectId
myID
=
6000
;
static
ObjectId
myID
=
6000
;
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
SharedMemory
*
shmInstance
()
shared_ptr
<
SharedMemory
>
shmInstance
()
{
{
if
(
shm
==
nullptr
)
if
(
!
shm
)
throw
SystemError
(
"SharedMemory don`t initialize.."
);
throw
SystemError
(
"SharedMemory don`t initialize.."
);
return
shm
;
return
shm
;
}
}
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
SMInterface
*
smiInstance
()
shared_ptr
<
SMInterface
>
smiInstance
()
{
{
if
(
smi
==
nullptr
)
if
(
smi
==
nullptr
)
{
{
...
@@ -36,7 +37,7 @@ SMInterface* smiInstance()
...
@@ -36,7 +37,7 @@ SMInterface* smiInstance()
if
(
ui
==
nullptr
)
if
(
ui
==
nullptr
)
ui
=
new
UInterface
();
ui
=
new
UInterface
();
smi
=
new
SMInterface
(
shm
->
getId
(),
ui
,
myID
,
shm
);
smi
=
make_shared
<
SMInterface
>
(
shm
->
getId
(),
ui
,
myID
,
shm
);
}
}
return
smi
;
return
smi
;
...
@@ -60,7 +61,7 @@ int main(int argc, char* argv[] )
...
@@ -60,7 +61,7 @@ int main(int argc, char* argv[] )
try
try
{
{
uniset_init
(
argc
,
argv
);
auto
conf
=
uniset_init
(
argc
,
argv
);
/*
/*
conf->initDebug(dlog,"dlog");
conf->initDebug(dlog,"dlog");
string logfilename = conf->getArgParam("--logfile", "smemory.log");
string logfilename = conf->getArgParam("--logfile", "smemory.log");
...
@@ -72,9 +73,10 @@ int main(int argc, char* argv[] )
...
@@ -72,9 +73,10 @@ int main(int argc, char* argv[] )
if
(
!
shm
)
if
(
!
shm
)
return
1
;
return
1
;
UniSetActivatorPtr
act
=
UniSetActivator
::
Instance
();
auto
act
=
UniSetActivator
::
Instance
();
act
->
addObject
(
s
tatic_cast
<
class
UniSetObject
*>
(
shm
)
);
act
->
addObject
(
s
hm
);
SystemMessage
sm
(
SystemMessage
::
StartUp
);
SystemMessage
sm
(
SystemMessage
::
StartUp
);
act
->
broadcast
(
sm
.
transport_msg
()
);
act
->
broadcast
(
sm
.
transport_msg
()
);
act
->
run
(
true
);
act
->
run
(
true
);
...
@@ -93,6 +95,8 @@ int main(int argc, char* argv[] )
...
@@ -93,6 +95,8 @@ int main(int argc, char* argv[] )
int
ret
=
session
.
run
();
int
ret
=
session
.
run
();
act
->
oaDestroy
();
act
->
oaDestroy
();
act
.
reset
();
conf
.
reset
();
return
ret
;
return
ret
;
}
}
catch
(
SystemError
&
err
)
catch
(
SystemError
&
err
)
...
...
extensions/tests/tests_with_sm.h
View file @
d36667c6
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
// Для некоторых тестов необходим SMInterface инициализированный для работы с SharedMemory
// Для некоторых тестов необходим SMInterface инициализированный для работы с SharedMemory
// поэтому сделана такая специальная функция
// поэтому сделана такая специальная функция
// реализацию смотри в tests_with_sm.cc
// реализацию смотри в tests_with_sm.cc
SMInterface
*
smiInstance
();
std
::
shared_ptr
<
SMInterface
>
smiInstance
();
SharedMemory
*
shmInstance
();
std
::
shared_ptr
<
SharedMemory
>
shmInstance
();
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
#endif // tests_with_sm_H_
#endif // tests_with_sm_H_
include/UniSetActivator.h
View file @
d36667c6
...
@@ -60,6 +60,7 @@ class UniSetActivator:
...
@@ -60,6 +60,7 @@ class UniSetActivator:
static
UniSetActivatorPtr
Instance
(
const
UniSetTypes
::
ObjectId
id
=
UniSetTypes
::
DefaultObjectId
);
static
UniSetActivatorPtr
Instance
(
const
UniSetTypes
::
ObjectId
id
=
UniSetTypes
::
DefaultObjectId
);
void
Destroy
();
void
Destroy
();
std
::
shared_ptr
<
UniSetActivator
>
get_aptr
(){
return
std
::
dynamic_pointer_cast
<
UniSetActivator
>
(
get_ptr
());
}
// ------------------------------------
// ------------------------------------
virtual
~
UniSetActivator
();
virtual
~
UniSetActivator
();
...
@@ -142,15 +143,15 @@ class UniSetActivator:
...
@@ -142,15 +143,15 @@ class UniSetActivator:
struct
OInfo
:
struct
OInfo
:
public
Info
public
Info
{
{
OInfo
(
UniSetObject
*
o
,
pid_t
p
)
:
Info
(
p
),
obj
(
o
){}
OInfo
(
std
::
shared_ptr
<
UniSetObject
>
o
,
pid_t
p
)
:
Info
(
p
),
obj
(
o
){}
UniSetObject
*
obj
;
std
::
shared_ptr
<
UniSetObject
>
obj
;
};
};
struct
MInfo
:
struct
MInfo
:
public
Info
public
Info
{
{
MInfo
(
UniSetManager
*
m
,
pid_t
p
)
:
Info
(
p
),
mnr
(
m
){}
MInfo
(
std
::
shared_ptr
<
UniSetManager
>
m
,
pid_t
p
)
:
Info
(
p
),
mnr
(
m
){}
UniSetManager
*
mnr
;
std
::
shared_ptr
<
UniSetManager
>
mnr
;
};
};
std
::
deque
<
OInfo
>
lstOInfo
;
std
::
deque
<
OInfo
>
lstOInfo
;
...
...
include/UniSetManager.h
View file @
d36667c6
...
@@ -26,6 +26,7 @@
...
@@ -26,6 +26,7 @@
#define UniSetManager_H_
#define UniSetManager_H_
// --------------------------------------------------------------------------
// --------------------------------------------------------------------------
#include <omniORB4/CORBA.h>
#include <omniORB4/CORBA.h>
#include <memory>
#include "UniSetTypes.h"
#include "UniSetTypes.h"
#include "UniSetObject.h"
#include "UniSetObject.h"
#include "UniSetManager_i.hh"
#include "UniSetManager_i.hh"
...
@@ -33,7 +34,7 @@
...
@@ -33,7 +34,7 @@
class
UniSetActivator
;
class
UniSetActivator
;
class
UniSetManager
;
class
UniSetManager
;
typedef
std
::
list
<
UniSetManager
*>
UniSetManagerList
;
typedef
std
::
list
<
std
::
shared_ptr
<
UniSetManager
>
>
UniSetManagerList
;
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
/*! \class UniSetManager
/*! \class UniSetManager
* \par
* \par
...
@@ -62,6 +63,8 @@ class UniSetManager:
...
@@ -62,6 +63,8 @@ class UniSetManager:
UniSetManager
(
const
std
::
string
&
name
,
const
std
::
string
&
section
);
UniSetManager
(
const
std
::
string
&
name
,
const
std
::
string
&
section
);
virtual
~
UniSetManager
();
virtual
~
UniSetManager
();
std
::
shared_ptr
<
UniSetManager
>
get_mptr
()
{
return
std
::
dynamic_pointer_cast
<
UniSetManager
>
(
get_ptr
());
}
virtual
UniSetTypes
::
ObjectType
getType
()
override
{
return
UniSetTypes
::
ObjectType
(
"UniSetManager"
);
}
virtual
UniSetTypes
::
ObjectType
getType
()
override
{
return
UniSetTypes
::
ObjectType
(
"UniSetManager"
);
}
// ------ функции объявленные в интерфейсе(IDL) ------
// ------ функции объявленные в интерфейсе(IDL) ------
...
@@ -71,23 +74,22 @@ class UniSetManager:
...
@@ -71,23 +74,22 @@ class UniSetManager:
// --------------------------
// --------------------------
void
initPOA
(
UniSetManager
*
rmngr
);
void
initPOA
(
UniSetManager
*
rmngr
);
virtual
bool
addObject
(
UniSetObject
*
obj
);
virtual
bool
addObject
(
std
::
shared_ptr
<
UniSetObject
>
obj
);
virtual
bool
removeObject
(
UniSetObject
*
obj
);
virtual
bool
removeObject
(
std
::
shared_ptr
<
UniSetObject
>
obj
);
virtual
bool
addManager
(
UniSetManager
*
mngr
);
virtual
bool
removeManager
(
UniSetManager
*
mngr
);
virtual
bool
addManager
(
std
::
shared_ptr
<
UniSetManager
>
mngr
);
virtual
bool
removeManager
(
std
::
shared_ptr
<
UniSetManager
>
mngr
);
/*! Получение доступа к подчиненному менеджеру по идентификатору
/*! Получение доступа к подчиненному менеджеру по идентификатору
* \return объект ненайден будет возвращен 0.
* \return объект ненайден будет возвращен 0.
*/
*/
const
UniSetManager
*
itemM
(
const
UniSetTypes
::
ObjectId
id
);
const
std
::
shared_ptr
<
UniSetManager
>
itemM
(
const
UniSetTypes
::
ObjectId
id
);
/*! Получение доступа к подчиненному объекту по идентификатору
/*! Получение доступа к подчиненному объекту по идентификатору
* \return объект ненайден будет возвращен 0.
* \return объект ненайден будет возвращен 0.
*/
*/
const
UniSetObject
*
itemO
(
const
UniSetTypes
::
ObjectId
id
);
const
std
::
shared_ptr
<
UniSetObject
>
itemO
(
const
UniSetTypes
::
ObjectId
id
);
// Функции для аботы со списками подчиненных объектов
// Функции для аботы со списками подчиненных объектов
...
@@ -137,7 +139,7 @@ class UniSetManager:
...
@@ -137,7 +139,7 @@ class UniSetManager:
typedef
UniSetManagerList
::
iterator
MListIterator
;
typedef
UniSetManagerList
::
iterator
MListIterator
;
int
getObjectsInfo
(
UniSetManager
*
mngr
,
UniSetTypes
::
SimpleInfoSeq
*
seq
,
int
getObjectsInfo
(
const
std
::
shared_ptr
<
UniSetManager
>&
mngr
,
UniSetTypes
::
SimpleInfoSeq
*
seq
,
int
begin
,
const
long
uplimit
);
int
begin
,
const
long
uplimit
);
PortableServer
::
POA_var
poa
;
PortableServer
::
POA_var
poa
;
...
...
include/UniSetObject.h
View file @
d36667c6
...
@@ -30,6 +30,7 @@
...
@@ -30,6 +30,7 @@
#include <sys/time.h>
#include <sys/time.h>
#include <queue>
#include <queue>
#include <ostream>
#include <ostream>
#include <memory>
#include <string>
#include <string>
#include <list>
#include <list>
...
@@ -49,7 +50,7 @@ class UniSetManager;
...
@@ -49,7 +50,7 @@ class UniSetManager;
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
class
UniSetObject
;
class
UniSetObject
;
typedef
std
::
list
<
UniSetObject
*
>
ObjectsList
;
/*!< Список подчиненных объектов */
typedef
std
::
list
<
std
::
shared_ptr
<
UniSetObject
>
>
ObjectsList
;
/*!< Список подчиненных объектов */
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
/*! \class UniSetObject
/*! \class UniSetObject
* Класс задает такие свойства объекта как: получение сообщений, помещение сообщения в очередь и т.п.
* Класс задает такие свойства объекта как: получение сообщений, помещение сообщения в очередь и т.п.
...
@@ -62,6 +63,7 @@ typedef std::list<UniSetObject *> ObjectsList; /*!< Список подчи
...
@@ -62,6 +63,7 @@ typedef std::list<UniSetObject *> ObjectsList; /*!< Список подчи
* на разработчика.
* на разработчика.
*/
*/
class
UniSetObject
:
class
UniSetObject
:
public
std
::
enable_shared_from_this
<
UniSetObject
>
,
public
POA_UniSetObject_i
public
POA_UniSetObject_i
{
{
public
:
public
:
...
@@ -70,6 +72,8 @@ class UniSetObject:
...
@@ -70,6 +72,8 @@ class UniSetObject:
UniSetObject
();
UniSetObject
();
virtual
~
UniSetObject
();
virtual
~
UniSetObject
();
std
::
shared_ptr
<
UniSetObject
>
get_ptr
(){
return
shared_from_this
();
}
// Функции объявленные в IDL
// Функции объявленные в IDL
virtual
CORBA
::
Boolean
exist
()
override
;
virtual
CORBA
::
Boolean
exist
()
override
;
...
...
src/ObjectRepository/UniSetActivator.cc
View file @
d36667c6
...
@@ -81,7 +81,7 @@ UniSetActivatorPtr UniSetActivator::Instance( const UniSetTypes::ObjectId id )
...
@@ -81,7 +81,7 @@ UniSetActivatorPtr UniSetActivator::Instance( const UniSetTypes::ObjectId id )
{
{
if
(
inst
==
nullptr
)
if
(
inst
==
nullptr
)
{
{
inst
=
shared_ptr
<
UniSetActivator
>
(
new
UniSetActivator
(
id
)
);
inst
=
std
::
shared_ptr
<
UniSetActivator
>
(
new
UniSetActivator
(
id
)
);
gActivator
=
inst
;
gActivator
=
inst
;
}
}
...
...
src/ObjectRepository/UniSetManager.cc
View file @
d36667c6
...
@@ -39,11 +39,11 @@ using namespace UniSetTypes;
...
@@ -39,11 +39,11 @@ using namespace UniSetTypes;
using
namespace
std
;
using
namespace
std
;
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
// объект-функция для посылки сообщения менеджеру
// объект-функция для посылки сообщения менеджеру
class
MPush
:
public
unary_function
<
UniSetManager
*
,
bool
>
class
MPush
:
public
unary_function
<
const
std
::
shared_ptr
<
UniSetManager
>&
,
bool
>
{
{
public
:
public
:
MPush
(
const
UniSetTypes
::
TransportMessage
&
msg
)
:
msg
(
msg
){}
MPush
(
const
UniSetTypes
::
TransportMessage
&
msg
)
:
msg
(
msg
){}
bool
operator
()(
UniSetManager
*
m
)
const
bool
operator
()(
const
std
::
shared_ptr
<
UniSetManager
>&
m
)
const
{
{
try
try
{
{
...
@@ -60,11 +60,11 @@ class MPush: public unary_function<UniSetManager*, bool>
...
@@ -60,11 +60,11 @@ class MPush: public unary_function<UniSetManager*, bool>
};
};
// объект-функция для посылки сообщения объекту
// объект-функция для посылки сообщения объекту
class
OPush
:
public
unary_function
<
UniSetObject
*
,
bool
>
class
OPush
:
public
unary_function
<
const
std
::
shared_ptr
<
UniSetObject
>&
,
bool
>
{
{
public
:
public
:
OPush
(
const
UniSetTypes
::
TransportMessage
&
msg
)
:
msg
(
msg
){}
OPush
(
const
UniSetTypes
::
TransportMessage
&
msg
)
:
msg
(
msg
){}
bool
operator
()(
UniSetObject
*
o
)
const
bool
operator
()(
const
std
::
shared_ptr
<
UniSetObject
>&
o
)
const
{
{
try
try
{
{
...
@@ -169,7 +169,7 @@ void UniSetManager::initPOA( UniSetManager* rmngr )
...
@@ -169,7 +169,7 @@ void UniSetManager::initPOA( UniSetManager* rmngr )
managers
(
initial
);
managers
(
initial
);
}
}
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
bool
UniSetManager
::
addObject
(
UniSetObject
*
obj
)
bool
UniSetManager
::
addObject
(
std
::
shared_ptr
<
UniSetObject
>
obj
)
{
{
{
//lock
{
//lock
uniset_rwmutex_wrlock
lock
(
olistMutex
);
uniset_rwmutex_wrlock
lock
(
olistMutex
);
...
@@ -184,7 +184,7 @@ bool UniSetManager::addObject( UniSetObject *obj )
...
@@ -184,7 +184,7 @@ bool UniSetManager::addObject( UniSetObject *obj )
}
}
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
bool
UniSetManager
::
removeObject
(
UniSetObject
*
obj
)
bool
UniSetManager
::
removeObject
(
std
::
shared_ptr
<
UniSetObject
>
obj
)
{
{
{
//lock
{
//lock
uniset_rwmutex_wrlock
lock
(
olistMutex
);
uniset_rwmutex_wrlock
lock
(
olistMutex
);
...
@@ -194,6 +194,7 @@ bool UniSetManager::removeObject( UniSetObject* obj )
...
@@ -194,6 +194,7 @@ bool UniSetManager::removeObject( UniSetObject* obj )
uinfo
<<
myname
<<
"(activator): удаляем объект "
<<
obj
->
getName
()
<<
endl
;
uinfo
<<
myname
<<
"(activator): удаляем объект "
<<
obj
->
getName
()
<<
endl
;
try
try
{
{
if
(
obj
)
obj
->
deactivate
();
obj
->
deactivate
();
}
}
catch
(
Exception
&
ex
)
catch
(
Exception
&
ex
)
...
@@ -235,6 +236,8 @@ void UniSetManager::managers( OManagerCommand cmd )
...
@@ -235,6 +236,8 @@ void UniSetManager::managers( OManagerCommand cmd )
uniset_rwmutex_rlock
lock
(
mlistMutex
);
uniset_rwmutex_rlock
lock
(
mlistMutex
);
for
(
auto
&
li
:
mlist
)
for
(
auto
&
li
:
mlist
)
{
{
if
(
!
li
)
continue
;
try
try
{
{
switch
(
cmd
)
switch
(
cmd
)
...
@@ -295,6 +298,8 @@ void UniSetManager::objects(OManagerCommand cmd)
...
@@ -295,6 +298,8 @@ void UniSetManager::objects(OManagerCommand cmd)
for
(
auto
&
li
:
olist
)
for
(
auto
&
li
:
olist
)
{
{
if
(
!
li
)
continue
;
try
try
{
{
switch
(
cmd
)
switch
(
cmd
)
...
@@ -409,7 +414,7 @@ void UniSetManager::broadcast(const TransportMessage& msg)
...
@@ -409,7 +414,7 @@ void UniSetManager::broadcast(const TransportMessage& msg)
}
}
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
bool
UniSetManager
::
addManager
(
UniSetManager
*
child
)
bool
UniSetManager
::
addManager
(
std
::
shared_ptr
<
UniSetManager
>
child
)
{
{
{
//lock
{
//lock
uniset_rwmutex_wrlock
lock
(
mlistMutex
);
uniset_rwmutex_wrlock
lock
(
mlistMutex
);
...
@@ -429,7 +434,7 @@ bool UniSetManager::addManager( UniSetManager *child )
...
@@ -429,7 +434,7 @@ bool UniSetManager::addManager( UniSetManager *child )
}
}
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
bool
UniSetManager
::
removeManager
(
UniSetManager
*
child
)
bool
UniSetManager
::
removeManager
(
std
::
shared_ptr
<
UniSetManager
>
child
)
{
{
{
//lock
{
//lock
uniset_rwmutex_wrlock
lock
(
mlistMutex
);
uniset_rwmutex_wrlock
lock
(
mlistMutex
);
...
@@ -441,7 +446,7 @@ bool UniSetManager::removeManager( UniSetManager* child )
...
@@ -441,7 +446,7 @@ bool UniSetManager::removeManager( UniSetManager* child )
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
const
UniSetManager
*
UniSetManager
::
itemM
(
const
ObjectId
id
)
const
std
::
shared_ptr
<
UniSetManager
>
UniSetManager
::
itemM
(
const
ObjectId
id
)
{
{
{
//lock
{
//lock
...
@@ -458,7 +463,7 @@ const UniSetManager* UniSetManager::itemM(const ObjectId id)
...
@@ -458,7 +463,7 @@ const UniSetManager* UniSetManager::itemM(const ObjectId id)
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
const
UniSetObject
*
UniSetManager
::
itemO
(
const
ObjectId
id
)
const
std
::
shared_ptr
<
UniSetObject
>
UniSetManager
::
itemO
(
const
ObjectId
id
)
{
{
{
//lock
{
//lock
uniset_rwmutex_rlock
lock
(
olistMutex
);
uniset_rwmutex_rlock
lock
(
olistMutex
);
...
@@ -469,7 +474,7 @@ const UniSetObject* UniSetManager::itemO(const ObjectId id)
...
@@ -469,7 +474,7 @@ const UniSetObject* UniSetManager::itemO(const ObjectId id)
}
}
}
// unlock
}
// unlock
return
0
;
return
std
::
shared_ptr
<
UniSetObject
>
()
;
}
}
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
...
@@ -488,7 +493,7 @@ int UniSetManager::objectsCount()
...
@@ -488,7 +493,7 @@ int UniSetManager::objectsCount()
}
}
// ------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------
int
UniSetManager
::
getObjectsInfo
(
UniSetManager
*
mngr
,
SimpleInfoSeq
*
seq
,
int
UniSetManager
::
getObjectsInfo
(
const
std
::
shared_ptr
<
UniSetManager
>&
mngr
,
SimpleInfoSeq
*
seq
,
int
begin
,
const
long
uplimit
)
int
begin
,
const
long
uplimit
)
{
{
auto
ind
=
begin
;
auto
ind
=
begin
;
...
@@ -550,7 +555,8 @@ SimpleInfoSeq* UniSetManager::getObjectsInfo( CORBA::Long maxlength )
...
@@ -550,7 +555,8 @@ SimpleInfoSeq* UniSetManager::getObjectsInfo( CORBA::Long maxlength )
// используем рекурсивную функцию
// используем рекурсивную функцию
int
ind
=
0
;
int
ind
=
0
;
const
int
limit
=
length
;
const
int
limit
=
length
;
ind
=
getObjectsInfo
(
this
,
res
,
ind
,
limit
);
ind
=
getObjectsInfo
(
get_mptr
(),
res
,
ind
,
limit
);
return
res
;
return
res
;
}
}
...
...
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