Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Cameo
cameo
Commits
895e4d18
Commit
895e4d18
authored
Oct 20, 2020
by
legoc
Browse files
(split) Defined the Com class for Communication operations manager
parent
186976ca
Changes
2
Hide whitespace changes
Inline
Side-by-side
include/Application.h
View file @
895e4d18
...
...
@@ -101,6 +101,25 @@ class This : private Services, private EventListener {
typedef
std
::
function
<
void
()
>
StopFunctionType
;
public:
/**
* Class defining the Communication Operations Manager (COM).
*/
class
Com
{
friend
class
This
;
public:
void
storeKeyValue
(
const
std
::
string
&
key
,
const
std
::
string
&
value
)
const
;
std
::
string
getKeyValue
(
const
std
::
string
&
key
)
const
;
void
removeKey
(
const
std
::
string
&
key
)
const
;
private:
Com
(
Server
*
server
,
int
applicationId
);
Server
*
m_server
;
int
m_applicationId
;
};
This
();
~
This
();
...
...
@@ -117,6 +136,7 @@ public:
static
int
getTimeout
();
static
const
std
::
string
&
getEndpoint
();
static
Server
&
getServer
();
static
const
Com
&
getCom
();
/**
* throws StarterServerException.
...
...
@@ -146,10 +166,6 @@ public:
*/
static
std
::
unique_ptr
<
Instance
>
connectToStarter
();
static
void
storeKeyValue
(
const
std
::
string
&
key
,
const
std
::
string
&
value
);
static
std
::
string
getKeyValue
(
const
std
::
string
&
key
);
static
void
removeKey
(
const
std
::
string
&
key
);
private:
void
initApplication
(
int
argc
,
char
*
argv
[]);
...
...
@@ -177,6 +193,7 @@ private:
std
::
unique_ptr
<
Server
>
m_server
;
std
::
unique_ptr
<
Server
>
m_starterServer
;
std
::
unique_ptr
<
Com
>
m_com
;
std
::
unique_ptr
<
WaitingImplSet
>
m_waitingSet
;
std
::
unique_ptr
<
HandlerImpl
>
m_stopHandler
;
...
...
@@ -195,6 +212,20 @@ class Instance : private EventListener {
public:
typedef
std
::
function
<
void
(
State
)
>
StateHandlerType
;
class
Com
{
friend
class
Instance
;
public:
std
::
string
getKeyValue
(
const
std
::
string
&
key
)
const
;
private:
Com
(
Server
*
server
);
Server
*
m_server
;
int
m_applicationId
;
};
~
Instance
();
const
std
::
string
&
getName
()
const
;
...
...
@@ -202,6 +233,8 @@ public:
const
std
::
string
&
getUrl
()
const
;
const
std
::
string
&
getEndpoint
()
const
;
std
::
string
getNameId
()
const
;
const
Com
&
getCom
()
const
;
bool
hasResult
()
const
;
bool
exists
()
const
;
const
std
::
string
&
getErrorMessage
()
const
;
...
...
@@ -246,8 +279,6 @@ public:
std
::
shared_ptr
<
OutputStreamSocket
>
getOutputStreamSocket
();
std
::
string
getKeyValue
(
const
std
::
string
&
key
);
private:
Instance
(
Server
*
server
);
...
...
@@ -262,6 +293,8 @@ private:
std
::
shared_ptr
<
OutputStreamSocket
>
m_outputStreamSocket
;
int
m_id
;
std
::
string
m_errorMessage
;
Com
m_com
;
int
m_pastStates
;
State
m_initialState
;
State
m_lastState
;
...
...
src/Application.cpp
View file @
895e4d18
...
...
@@ -53,6 +53,22 @@ namespace application {
This
This
::
m_instance
;
const
std
::
string
This
::
RUNNING_STATE
=
"RUNNING"
;
This
::
Com
::
Com
(
Server
*
server
,
int
applicationId
)
:
m_server
(
server
),
m_applicationId
(
applicationId
)
{
}
void
This
::
Com
::
storeKeyValue
(
const
std
::
string
&
key
,
const
std
::
string
&
value
)
const
{
m_server
->
storeKeyValue
(
m_applicationId
,
key
,
value
);
}
std
::
string
This
::
Com
::
getKeyValue
(
const
std
::
string
&
key
)
const
{
return
m_server
->
getKeyValue
(
m_applicationId
,
key
);
}
void
This
::
Com
::
removeKey
(
const
std
::
string
&
key
)
const
{
m_server
->
removeKey
(
m_applicationId
,
key
);
}
State
This
::
parseState
(
const
std
::
string
&
value
)
{
if
(
value
==
"UNKNOWN"
)
{
...
...
@@ -207,6 +223,10 @@ void This::initApplication(int argc, char *argv[]) {
// Init listener.
setName
(
m_name
);
m_server
->
registerEventListener
(
this
);
// Init com.
m_com
=
unique_ptr
<
Com
>
(
new
Com
(
m_server
.
get
(),
m_id
));
}
This
::~
This
()
{
...
...
@@ -246,6 +266,10 @@ Server& This::getServer() {
return
*
m_instance
.
m_server
;
}
const
This
::
Com
&
This
::
getCom
()
{
return
*
m_instance
.
m_com
;
}
Server
&
This
::
getStarterServer
()
{
if
(
m_instance
.
m_starterServer
.
get
()
==
nullptr
)
{
...
...
@@ -405,18 +429,6 @@ std::unique_ptr<Instance> This::connectToStarter() {
return
unique_ptr
<
Instance
>
(
nullptr
);
}
void
This
::
storeKeyValue
(
const
std
::
string
&
key
,
const
std
::
string
&
value
)
{
m_instance
.
m_server
->
storeKeyValue
(
m_instance
.
m_id
,
key
,
value
);
}
std
::
string
This
::
getKeyValue
(
const
std
::
string
&
key
)
{
return
m_instance
.
m_server
->
getKeyValue
(
m_instance
.
m_id
,
key
);
}
void
This
::
removeKey
(
const
std
::
string
&
key
)
{
m_instance
.
m_server
->
removeKey
(
m_instance
.
m_id
,
key
);
}
void
This
::
stoppingFunction
(
StopFunctionType
stop
)
{
application
::
State
state
=
waitForStop
();
...
...
@@ -434,9 +446,20 @@ void This::handleStopImpl(StopFunctionType function) {
///////////////////////////////////////////////////////////////////////////////
// Instance
Instance
::
Com
::
Com
(
Server
*
server
)
:
m_server
(
server
),
m_applicationId
(
-
1
)
{
}
std
::
string
Instance
::
Com
::
getKeyValue
(
const
std
::
string
&
key
)
const
{
// TODO catch exceptions and rethrow an exception: TerminatedException?
return
m_server
->
getKeyValue
(
m_applicationId
,
key
);
}
Instance
::
Instance
(
Server
*
server
)
:
m_server
(
server
),
m_id
(
-
1
),
m_com
(
server
),
m_pastStates
(
0
),
m_initialState
(
UNKNOWN
),
m_lastState
(
UNKNOWN
),
...
...
@@ -455,6 +478,7 @@ Instance::~Instance() {
void
Instance
::
setId
(
int
id
)
{
m_id
=
id
;
m_com
.
m_applicationId
=
id
;
}
const
std
::
string
&
Instance
::
getName
()
const
{
...
...
@@ -502,6 +526,10 @@ std::string Instance::getNameId() const {
return
os
.
str
();
}
const
Instance
::
Com
&
Instance
::
getCom
()
const
{
return
m_com
;
}
bool
Instance
::
hasResult
()
const
{
return
m_hasResult
;
}
...
...
@@ -706,11 +734,6 @@ std::shared_ptr<OutputStreamSocket> Instance::getOutputStreamSocket() {
return
m_outputStreamSocket
;
}
std
::
string
Instance
::
getKeyValue
(
const
std
::
string
&
key
)
{
// TODO catch exceptions and rethrow an exception: TerminatedException?
return
m_server
->
getKeyValue
(
m_id
,
key
);
}
///////////////////////////////////////////////////////////////////////////
// InstanceArray
...
...
Shervin Nourbakhsh
@nourbakhsh
mentioned in commit
46e44691
·
Apr 23, 2021
mentioned in commit
46e44691
mentioned in commit 46e44691a03808a23a464818487b0dd014a9c57e
Toggle commit list
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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