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
91f5378e
Commit
91f5378e
authored
Aug 11, 2019
by
Jakob Otto
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add requested changes.
parent
673f2d56
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
37 additions
and
36 deletions
+37
-36
libcaf_core/caf/deserializer_impl.hpp
libcaf_core/caf/deserializer_impl.hpp
+2
-2
libcaf_core/caf/serializer_impl.hpp
libcaf_core/caf/serializer_impl.hpp
+6
-3
libcaf_core/test/serializer_impl.cpp
libcaf_core/test/serializer_impl.cpp
+29
-31
No files found.
libcaf_core/caf/deserializer_impl.hpp
View file @
91f5378e
...
...
@@ -18,13 +18,13 @@
#pragma once
#include <caf/detail/ieee_754.hpp>
#include <caf/detail/network_order.hpp>
#include <cstddef>
#include <cstdint>
#include <vector>
#include "caf/deserializer.hpp"
#include "caf/detail/ieee_754.hpp"
#include "caf/detail/network_order.hpp"
namespace
caf
{
...
...
libcaf_core/caf/serializer_impl.hpp
View file @
91f5378e
...
...
@@ -18,7 +18,6 @@
#pragma once
#include <caf/detail/network_order.hpp>
#include <cstddef>
#include <cstdint>
#include <iomanip>
...
...
@@ -26,6 +25,7 @@
#include <vector>
#include "caf/detail/ieee_754.hpp"
#include "caf/detail/network_order.hpp"
#include "caf/serializer.hpp"
namespace
caf
{
...
...
@@ -40,6 +40,8 @@ public:
using
container_type
=
Container
;
using
value_type
=
typename
container_type
::
value_type
;
// -- constructors, destructors, and assignment operators --------------------
serializer_impl
(
actor_system
&
sys
,
container_type
&
buf
)
...
...
@@ -105,7 +107,8 @@ public:
error
apply_raw
(
size_t
num_bytes
,
void
*
data
)
override
{
CAF_ASSERT
(
write_pos_
<=
buf_
.
size
());
auto
ptr
=
reinterpret_cast
<
typename
container_type
::
value_type
*>
(
data
);
static_assert
((
sizeof
(
value_type
)
==
1
),
"sizeof(value_type) > 1"
);
auto
ptr
=
reinterpret_cast
<
value_type
*>
(
data
);
auto
buf_size
=
buf_
.
size
();
if
(
write_pos_
==
buf_size
)
{
buf_
.
insert
(
buf_
.
end
(),
ptr
,
ptr
+
num_bytes
);
...
...
@@ -214,7 +217,7 @@ protected:
if
(
auto
err
=
begin_sequence
(
str_size
))
return
err
;
for
(
auto
c
:
x
)
{
// The standard does not guarantee that char
16
_t is exactly 16 bits.
// The standard does not guarantee that char
32
_t is exactly 16 bits.
if
(
auto
err
=
apply_int
(
*
this
,
static_cast
<
uint32_t
>
(
c
)))
return
err
;
}
...
...
libcaf_core/test/serializer_impl.cpp
View file @
91f5378e
...
...
@@ -16,68 +16,66 @@
* http://www.boost.org/LICENSE_1_0.txt. *
******************************************************************************/
#include "caf/config.hpp"
#define CAF_SUITE serializer_impl
#include "caf/serializer_impl.hpp"
#include "caf/test/dsl.hpp"
#include "serialization_fixture.hpp"
#include <cstring>
#include <vector>
#include "caf/binary_serializer.hpp"
#include "caf/byte.hpp"
#include "caf/serializer_impl.hpp"
#include "caf/test/unit_test.hpp"
#include "serialization_fixture.hpp"
using
namespace
caf
;
CAF_TEST_FIXTURE_SCOPE
(
de
serialization_tests
,
serialization_fixture
)
CAF_TEST_FIXTURE_SCOPE
(
serialization_tests
,
serialization_fixture
)
CAF_TEST
(
"serialize to std::vector<char>"
)
{
CAF_TEST
(
serialize
to
std
::
vector
<
char
>
)
{
using
container_type
=
std
::
vector
<
char
>
;
std
::
vector
<
char
>
binary_serializer_buffer
;
container_type
serializer_impl_buffer
;
binary_serializer
binarySerializer
{
sys
,
binary_serializer_buffer
};
serializer_impl
<
container_type
>
serializerImpl
{
sys
,
serializer_impl_buffer
};
if
(
auto
err
=
binarySerializer
(
source
))
CAF_FAIL
(
"serialisation failed with binary_serializer: "
<<
sys
.
render
(
err
));
if
(
auto
err
=
serializerImpl
(
source
))
CAF_FAIL
(
"serialisation failed with serializer_impl: "
<<
sys
.
render
(
err
));
binary_serializer
sink1
{
sys
,
binary_serializer_buffer
};
serializer_impl
<
container_type
>
sink2
{
sys
,
serializer_impl_buffer
};
if
(
auto
err
=
sink1
(
source
))
CAF_FAIL
(
"serialization failed: "
<<
sys
.
render
(
err
));
if
(
auto
err
=
sink2
(
source
))
CAF_FAIL
(
"serialization failed: "
<<
sys
.
render
(
err
));
CAF_CHECK_EQUAL
(
memcmp
(
binary_serializer_buffer
.
data
(),
serializer_impl_buffer
.
data
(),
binary_serializer_buffer
.
size
()),
0
);
}
CAF_TEST
(
"serialize to std::vector<byte>"
)
{
CAF_TEST
(
serialize
to
std
::
vector
<
byte
>
)
{
using
container_type
=
std
::
vector
<
byte
>
;
std
::
vector
<
char
>
binary_serializer_buffer
;
container_type
serializer_impl_buffer
;
binary_serializer
binarySerializer
{
sys
,
binary_serializer_buffer
};
serializer_impl
<
container_type
>
serializerImpl
{
sys
,
serializer_impl_buffer
};
if
(
auto
err
=
binarySerializer
(
source
))
CAF_FAIL
(
"serialisation failed with binary_serializer: "
<<
sys
.
render
(
err
));
if
(
auto
err
=
serializerImpl
(
source
))
CAF_FAIL
(
"serialisation failed with serializer_impl: "
<<
sys
.
render
(
err
));
binary_serializer
sink1
{
sys
,
binary_serializer_buffer
};
serializer_impl
<
container_type
>
sink2
{
sys
,
serializer_impl_buffer
};
if
(
auto
err
=
sink1
(
source
))
CAF_FAIL
(
"serialization failed: "
<<
sys
.
render
(
err
));
if
(
auto
err
=
sink2
(
source
))
CAF_FAIL
(
"serialization failed: "
<<
sys
.
render
(
err
));
CAF_CHECK_EQUAL
(
memcmp
(
binary_serializer_buffer
.
data
(),
serializer_impl_buffer
.
data
(),
binary_serializer_buffer
.
size
()),
0
);
}
CAF_TEST
(
"serialize to std::vector<uint8_t>"
)
{
CAF_TEST
(
serialize
to
std
::
vector
<
uint8_t
>
)
{
using
container_type
=
std
::
vector
<
uint8_t
>
;
std
::
vector
<
char
>
binary_serializer_buffer
;
container_type
serializer_impl_buffer
;
binary_serializer
binarySerializer
{
sys
,
binary_serializer_buffer
};
serializer_impl
<
container_type
>
serializerImpl
{
sys
,
serializer_impl_buffer
};
if
(
auto
err
=
binarySerializer
(
source
))
CAF_FAIL
(
"serialisation failed with binary_serializer: "
<<
sys
.
render
(
err
));
if
(
auto
err
=
serializerImpl
(
source
))
CAF_FAIL
(
"serialisation failed with serializer_impl: "
<<
sys
.
render
(
err
));
binary_serializer
sink1
{
sys
,
binary_serializer_buffer
};
serializer_impl
<
container_type
>
sink2
{
sys
,
serializer_impl_buffer
};
if
(
auto
err
=
sink1
(
source
))
CAF_FAIL
(
"serialization failed: "
<<
sys
.
render
(
err
));
if
(
auto
err
=
sink2
(
source
))
CAF_FAIL
(
"serialization failed: "
<<
sys
.
render
(
err
));
CAF_CHECK_EQUAL
(
memcmp
(
binary_serializer_buffer
.
data
(),
serializer_impl_buffer
.
data
(),
binary_serializer_buffer
.
size
()),
...
...
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