omw  0.2.0
encoding.h
1 /*
2 author Oliver Blaser
3 date 10.01.2022
4 copyright MIT - Copyright (c) 2022 Oliver Blaser
5 */
6 
7 #ifndef IG_OMW_ENCODING_H
8 #define IG_OMW_ENCODING_H
9 
10 #include <cstddef>
11 #include <cstdint>
12 #include <string>
13 #include <vector>
14 
15 #include "../omw/defs.h"
16 #include "../omw/int.h"
17 #include "../omw/string.h"
18 
19 namespace omw
20 {
25  //namespace bcd
26  //{
27  // uint8_t decode8(const uint8_t* data, size_t count);
28  // uint16_t decode16(const uint8_t* data, size_t count);
29  // uint32_t decode32(const uint8_t* data, size_t count);
30  // uint64_t decode64(const uint8_t* data, size_t count);
31  // omw::uint128_t decode128(const uint8_t* data, size_t count);
32  //
33  // void encode(uint8_t* buffer, size_t bufferSize, uint64_t value);
34  // void encode(uint8_t* buffer, size_t bufferSize, const omw::uint128_t& value);
35  //}
36 
37  namespace bigEndian
38  {
39  int16_t decode_i16(const uint8_t* data, size_t count = 2);
40  uint16_t decode_ui16(const uint8_t* data, size_t count = 2);
41  int32_t decode_i32(const uint8_t* data, size_t count = 4);
42  uint32_t decode_ui32(const uint8_t* data, size_t count = 4);
43  int64_t decode_i64(const uint8_t* data, size_t count = 8);
44  uint64_t decode_ui64(const uint8_t* data, size_t count = 8);
45  omw::int128_t decode_i128(const uint8_t* data, size_t count = 16);
46  omw::uint128_t decode_ui128(const uint8_t* data, size_t count = 16);
47 
48  void encode_16(uint8_t* buffer, const uint8_t* end, int16_t value);
49  void encode_16(uint8_t* buffer, const uint8_t* end, uint16_t value);
50  void encode_32(uint8_t* buffer, const uint8_t* end, int32_t value);
51  void encode_32(uint8_t* buffer, const uint8_t* end, uint32_t value);
52  void encode_64(uint8_t* buffer, const uint8_t* end, int64_t value);
53  void encode_64(uint8_t* buffer, const uint8_t* end, uint64_t value);
54  void encode_128(uint8_t* buffer, const uint8_t* end, const omw::Base_Int128& value);
55  }
56 
57  namespace url
58  {
59  //omw::string decode();
60  omw::string encode(const std::string& str);
61  }
62 
64 }
65 
66 #endif // IG_OMW_ENCODING_H
omw::bigEndian::encode_128
void encode_128(uint8_t *buffer, const uint8_t *end, const omw::Base_Int128 &value)
Definition: encoding.cpp:293
omw::bigEndian::decode_ui32
uint32_t decode_ui32(const uint8_t *data, size_t count=4)
Definition: encoding.cpp:133
std::string
C++ standard string. See std::basic_string.
Definition: linkToStd.dox:19
omw::bigEndian::encode_16
void encode_16(uint8_t *buffer, const uint8_t *end, int16_t value)
Definition: encoding.cpp:210
omw::bigEndian::decode_ui16
uint16_t decode_ui16(const uint8_t *data, size_t count=2)
Definition: encoding.cpp:117
omw::bigEndian::encode_64
void encode_64(uint8_t *buffer, const uint8_t *end, int64_t value)
Definition: encoding.cpp:262
omw::bigEndian::decode_ui128
omw::uint128_t decode_ui128(const uint8_t *data, size_t count=16)
Definition: encoding.cpp:184
omw::bigEndian::decode_ui64
uint64_t decode_ui64(const uint8_t *data, size_t count=8)
Definition: encoding.cpp:149
omw::bigEndian::decode_i16
int16_t decode_i16(const uint8_t *data, size_t count=2)
Definition: encoding.cpp:109
omw::bigEndian::encode_32
void encode_32(uint8_t *buffer, const uint8_t *end, int32_t value)
Definition: encoding.cpp:235
omw::SignedInt128
Definition: int.h:100
omw::UnsignedInt128
Definition: int.h:127
omw::bigEndian::decode_i64
int64_t decode_i64(const uint8_t *data, size_t count=8)
Definition: encoding.cpp:141
omw::Base_Int128
Definition: int.h:46
omw::bigEndian::decode_i32
int32_t decode_i32(const uint8_t *data, size_t count=4)
Definition: encoding.cpp:125
omw::string
Definition: string.h:85
omw
Main namespace.
omw::bigEndian::decode_i128
omw::int128_t decode_i128(const uint8_t *data, size_t count=16)
Definition: encoding.cpp:157