MCPcopy Create free account
hub / github.com/Tencent/MMKV / encodeDataWithObject

Function encodeDataWithObject

Core/MiniPBCoder.h:55–109  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

53
54 MiniPBCoder();
55 explicit MiniPBCoder(const MMBuffer *inputBuffer, AESCrypt *crypter = nullptr);
56 ~MiniPBCoder();
57
58 void writeRootObject();
59
60 size_t prepareObjectForEncode(const MMKVVector &vec);
61 size_t prepareObjectForEncode(const MMBuffer &buffer);
62
63 template <typename T>
64 MMBuffer getEncodeData(const T &obj) {
65 size_t index = prepareObjectForEncode(obj);
66 return writePreparedItems(index);
67 }
68
69 MMBuffer writePreparedItems(size_t index);
70
71 void decodeOneMap(MMKVMap &dic, size_t position, bool greedy);
72#ifndef MMKV_DISABLE_CRYPT
73 void decodeOneMap(MMKVMapCrypt &dic, size_t position, bool greedy);
74#endif
75
76 size_t prepareObjectForEncode(const std::string &str);
77 size_t prepareObjectForEncode(const MMKV_STRING_CONTAINER &vector);
78 std::vector<std::string> decodeOneVector();
79#ifdef MMKV_HAS_CPP20
80 size_t prepareObjectForEncode(const std::span<const int32_t> &vec);
81 size_t prepareObjectForEncode(const std::span<const uint32_t> &vec);
82 size_t prepareObjectForEncode(const std::span<const int64_t> &vec);
83 size_t prepareObjectForEncode(const std::span<const uint64_t> &vec);
84
85 bool decodeOneVector(std::vector<bool> &result);
86 bool decodeOneVector(std::vector<int32_t> &result);
87 bool decodeOneVector(std::vector<uint32_t> &result);
88 bool decodeOneVector(std::vector<int64_t> &result);
89 bool decodeOneVector(std::vector<uint64_t> &result);
90 bool decodeOneVector(std::vector<float> &result);
91 bool decodeOneVector(std::vector<double> &result);
92
93 // special case for fixed size types
94 MMBuffer getEncodeData(const std::vector<bool> &obj);
95 MMBuffer getEncodeData(const std::span<const float> &obj);
96 MMBuffer getEncodeData(const std::span<const double> &obj);
97#endif // MMKV_HAS_CPP20
98
99#if defined(MMKV_APPLE) && defined(__OBJC__)
100 // NSString, NSData, NSDate
101 size_t prepareObjectForEncode(__unsafe_unretained NSObject *obj);
102#endif
103
104public:
105 template <typename T>
106 static MMBuffer encodeDataWithObject(const T &obj) {
107 MiniPBCoder pbCoder;
108 return pbCoder.getEncodeData(obj);
109 }
110
111 // opt encoding a single MMBuffer
112 static MMBuffer encodeDataWithObject(const MMBuffer &obj);

Callers 4

setMethod · 0.85
prepareEncodeFunction · 0.85
setDataForKeyMethod · 0.85
setMethod · 0.85

Calls 1

getEncodeDataMethod · 0.80

Tested by

no test coverage detected