Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef BYTE_ARRAY_H
00033 #define BYTE_ARRAY_H
00034
00035 #ifdef ROS
00036
00037 #include "simple_message/shared_types.h"
00038
00039 #endif
00040
00041 #ifdef MOTOPLUS
00042
00043 #include "shared_types.h"
00044
00045 #endif
00046
00047 #include "string.h"
00048
00049 namespace industrial
00050 {
00051 namespace simple_serialize
00052 {
00053
00054 class SimpleSerialize;
00055 }
00056 }
00057
00058
00059
00060
00061
00062 namespace industrial
00063 {
00064 namespace byte_array
00065 {
00066
00070
00087 class ByteArray
00088 {
00089 public:
00090
00091
00092 friend class SimpleSerialize;
00093
00100 ByteArray(void);
00101
00106 ~ByteArray(void);
00107
00114 void init();
00115
00129 bool init(const char* buffer, const industrial::shared_types::shared_int byte_size);
00130
00140 void copyFrom(ByteArray & buffer);
00141
00142
00143
00144
00145
00154 bool load(industrial::shared_types::shared_bool value);
00155
00164 bool load(industrial::shared_types::shared_real value);
00165
00174 bool load(industrial::shared_types::shared_int value);
00175
00184 bool load(industrial::simple_serialize::SimpleSerialize &value);
00185
00194 bool load(ByteArray &value);
00195
00205 bool load(void* value, const industrial::shared_types::shared_int byte_size);
00206
00207
00208
00209
00210
00211
00219 bool unload(industrial::shared_types::shared_bool &value);
00220
00228 bool unload(industrial::shared_types::shared_real &value);
00229
00237 bool unload(industrial::shared_types::shared_int &value);
00238
00246 bool unload(industrial::simple_serialize::SimpleSerialize &value);
00247
00257 bool unload(ByteArray &value, const industrial::shared_types::shared_int byte_size);
00258
00267 bool unload(void* value, const industrial::shared_types::shared_int byteSize);
00268
00279 bool unloadFront(void* value, const industrial::shared_types::shared_int byteSize);
00280
00281
00282
00283
00284
00297 char* getRawDataPtr();
00298
00304 unsigned int getBufferSize();
00305
00311 unsigned int getMaxBufferSize();
00312
00313
00314 private:
00323 static const industrial::shared_types::shared_int MAX_SIZE = 1024;
00324
00328 char buffer_[MAX_SIZE];
00329
00333 industrial::shared_types::shared_int buffer_size_;
00334
00335
00336
00344 bool setBufferSize(const industrial::shared_types::shared_int size);
00345
00353 bool extendBufferSize(const industrial::shared_types::shared_int size);
00354
00362 bool shortenBufferSize(industrial::shared_types::shared_int size);
00363
00371 char* getLoadPtr();
00372
00381 char* getUnloadPtr(const industrial::shared_types::shared_int num_bytes);
00382
00383 };
00384
00385 }
00386 }
00387
00388 #endif //BYTE_ARRAY_H
00389