Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
include
simple_message
byte_array.h
Go to the documentation of this file.
1
/*
2
* Software License Agreement (BSD License)
3
*
4
* Copyright (c) 2015, Southwest Research Institute
5
* All rights reserved.
6
*
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted provided that the following conditions are met:
9
*
10
* * Redistributions of source code must retain the above copyright
11
* notice, this list of conditions and the following disclaimer.
12
* * Redistributions in binary form must reproduce the above copyright
13
* notice, this list of conditions and the following disclaimer in the
14
* documentation and/or other materials provided with the distribution.
15
* * Neither the name of the Southwest Research Institute, nor the names
16
* of its contributors may be used to endorse or promote products derived
17
* from this software without specific prior written permission.
18
*
19
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29
* POSSIBILITY OF SUCH DAMAGE.
30
*/
31
32
#ifndef BYTE_ARRAY_H
33
#define BYTE_ARRAY_H
34
35
#ifndef FLATHEADERS
36
#include "
simple_message/shared_types.h
"
37
#else
38
#include "
shared_types.h
"
39
#endif
40
41
#include <deque>
42
#include <vector>
43
#include "string.h"
44
45
namespace
industrial
46
{
47
namespace
simple_serialize
48
{
49
// Class declaration required for function prototypes below
50
class
SimpleSerialize
;
51
}
52
}
53
54
namespace
industrial
55
{
56
namespace
byte_array
57
{
58
80
class
ByteArray
81
{
82
public
:
83
84
// Provides SimpleSerialize access to byte array internals
85
friend
class
SimpleSerialize
;
86
93
ByteArray
(
void
);
94
99
~
ByteArray
(
void
);
100
107
void
init
();
108
120
bool
init
(
const
char
* buffer,
const
industrial::shared_types::shared_int
byte_size);
121
131
void
copyFrom(
ByteArray
& buffer);
132
141
void
copyTo(std::vector<char> & out);
142
151
bool
load(
industrial::shared_types::shared_bool
value);
152
163
bool
load(
industrial::shared_types::shared_real
value);
164
174
bool
load(
industrial::shared_types::shared_int
value);
175
184
bool
load(
industrial::simple_serialize::SimpleSerialize
&value);
185
194
bool
load(
ByteArray
&value);
195
206
bool
load(
void
* value,
const
industrial::shared_types::shared_int
byte_size);
207
215
bool
unload(
industrial::shared_types::shared_bool
&value);
216
225
bool
unload(
industrial::shared_types::shared_real
&value);
226
235
bool
unload(
industrial::shared_types::shared_int
&value);
236
244
bool
unload(
industrial::simple_serialize::SimpleSerialize
&value);
245
255
bool
unload(
ByteArray
&value,
const
industrial::shared_types::shared_int
byte_size);
256
266
bool
unload(
void
* value,
const
industrial::shared_types::shared_int
byteSize);
267
276
bool
unloadFront(
industrial::shared_types::shared_real
&value);
277
286
bool
unloadFront(
industrial::shared_types::shared_int
&value);
287
297
bool
unloadFront(
void
* value,
const
industrial::shared_types::shared_int
byteSize);
298
308
__attribute__((deprecated(
"This ptr will be invalid once buffer is changed. Please use: copyTo(vector<char>) instead."
)))
309
char* getRawDataPtr();
310
316
unsigned
int
getBufferSize();
317
323
unsigned
int
getMaxBufferSize();
324
332
static
bool
isByteSwapEnabled();
333
334
private:
335
339
std
::deque<
char
> buffer_;
340
344
std
::vector<
char
> getRawDataPtr_buffer_;
345
346
#ifdef BYTE_SWAPPING
347
354
void
swap(
void
*value,
industrial::shared_types::shared_int
byteSize);
355
#endif
356
357
};
358
359
}
// namespace industrial
360
}
// namespace byte_array
361
362
#endif //BYTE_ARRAY_H
init
void init(const M_string &remappings)
industrial
Definition:
byte_array.h:45
std
industrial::simple_serialize::SimpleSerialize
Interface for loading and unloading a class to/from a ByteArray.
Definition:
simple_serialize.h:52
industrial::byte_array::ByteArray
The byte array wraps a dynamic array of bytes (i.e. char).
Definition:
byte_array.h:80
industrial::shared_types::shared_real
float shared_real
Definition:
shared_types.h:66
industrial::shared_types::shared_int
int shared_int
Definition:
shared_types.h:62
shared_types.h
industrial::shared_types::shared_bool
bool shared_bool
Definition:
shared_types.h:71
simple_message
Author(s): Shaun Edwards
autogenerated on Sat Sep 21 2019 03:30:09