Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
A
Actor Framework
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
cpp-libs
Actor Framework
Commits
41cd6259
Commit
41cd6259
authored
Nov 21, 2020
by
Hauke Goldhammer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Integrate review feedback
parent
c4e5c987
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
15 additions
and
16 deletions
+15
-16
examples/qtsupport/chatwidget.cpp
examples/qtsupport/chatwidget.cpp
+7
-8
examples/qtsupport/chatwidget.hpp
examples/qtsupport/chatwidget.hpp
+4
-4
examples/qtsupport/qt_group_chat.cpp
examples/qtsupport/qt_group_chat.cpp
+4
-4
No files found.
examples/qtsupport/chatwidget.cpp
View file @
41cd6259
...
...
@@ -29,7 +29,7 @@ void ChatWidget::init(actor_system& system) {
return
{
[
=
](
join_atom
,
const
group
&
what
)
{
auto
groups
=
self
->
joined_groups
();
for
(
auto
&
&
grp
:
groups
)
{
for
(
const
auto
&
grp
:
groups
)
{
print
((
"*** leave "
+
to_string
(
grp
)).
c_str
());
self
->
send
(
grp
,
name_
+
" has left the chatroom"
);
self
->
leave
(
grp
);
...
...
@@ -56,7 +56,7 @@ void ChatWidget::init(actor_system& system) {
},
[
=
](
leave_atom
)
{
auto
groups
=
self
->
joined_groups
();
for
(
auto
&
&
grp
:
groups
)
{
for
(
const
auto
&
grp
:
groups
)
{
std
::
cout
<<
"*** leave "
<<
to_string
(
grp
)
<<
std
::
endl
;
self
->
send
(
grp
,
name_
+
" has left the chatroom"
);
self
->
leave
(
grp
);
...
...
@@ -75,14 +75,13 @@ void ChatWidget::sendChatMessage() {
vector
<
string
>
words
;
split
(
words
,
line
.
midRef
(
1
).
toUtf8
().
constData
(),
is_any_of
(
" "
));
if
(
words
.
size
()
>
1
)
{
if
(
words
.
front
()
==
"join"
&&
words
.
size
()
==
3
)
{
auto
x
=
system
().
groups
().
get
(
words
[
1
],
words
[
2
]);
if
(
!
x
)
if
(
words
[
0
]
==
"join"
&&
words
.
size
()
==
3
)
{
if
(
auto
x
=
system
().
groups
().
get
(
words
[
1
],
words
[
2
]))
self
()
->
send
(
self
(),
join_atom_v
,
std
::
move
(
*
x
));
else
print
(
"*** error: "
+
QString
::
fromUtf8
(
to_string
(
x
.
error
()).
c_str
()));
else
self
()
->
send
(
self
(),
join_atom_v
,
std
::
move
(
*
x
));
}
else
if
(
words
.
front
()
==
"setName"
&&
words
.
size
()
==
2
)
}
else
if
(
words
[
0
]
==
"setName"
&&
words
.
size
()
==
2
)
send_as
(
as_actor
(),
as_actor
(),
set_name_atom_v
,
std
::
move
(
words
[
1
]));
}
else
{
print
(
"*** list of commands:
\n
"
...
...
examples/qtsupport/chatwidget.hpp
View file @
41cd6259
...
...
@@ -11,12 +11,12 @@ CAF_PUSH_WARNINGS
#include <QTextEdit>
CAF_POP_WARNINGS
CAF_BEGIN_TYPE_ID_BLOCK
(
qt
_
support
,
first_custom_type_id
)
CAF_BEGIN_TYPE_ID_BLOCK
(
qtsupport
,
first_custom_type_id
)
CAF_ADD_ATOM
(
qt
_
support
,
set_name_atom
)
CAF_ADD_ATOM
(
qt
_
support
,
quit_atom
)
CAF_ADD_ATOM
(
qtsupport
,
set_name_atom
)
CAF_ADD_ATOM
(
qtsupport
,
quit_atom
)
CAF_END_TYPE_ID_BLOCK
(
qt
_
support
)
CAF_END_TYPE_ID_BLOCK
(
qtsupport
)
class
ChatWidget
:
public
caf
::
mixin
::
actor_widget
<
QWidget
>
{
private:
...
...
examples/qtsupport/qt_group_chat.cpp
View file @
41cd6259
...
...
@@ -41,7 +41,7 @@ public:
};
int
main
(
int
argc
,
char
**
argv
)
{
init_global_meta_objects
<
id_block
::
qt
_
support
>
();
init_global_meta_objects
<
id_block
::
qtsupport
>
();
core
::
init_global_meta_objects
();
io
::
middleman
::
init_global_meta_objects
();
config
cfg
{};
...
...
@@ -63,11 +63,11 @@ int main(int argc, char** argv) {
group
grp
;
// evaluate group parameters
if
(
auto
locator
=
get_if
<
std
::
string
>
(
&
cfg
,
"group"
))
{
if
(
auto
grp_
p
=
sys
.
groups
().
get
(
*
locator
))
{
grp
=
std
::
move
(
*
grp_
p
);
if
(
auto
maybe_gr
p
=
sys
.
groups
().
get
(
*
locator
))
{
grp
=
std
::
move
(
*
maybe_gr
p
);
}
else
{
std
::
cerr
<<
R"(*** failed to parse ")"
<<
*
locator
<<
R"(" as group locator: )"
<<
to_string
(
grp_
p
.
error
())
<<
R"(" as group locator: )"
<<
to_string
(
maybe_gr
p
.
error
())
<<
std
::
endl
;
}
}
...
...
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