MCPcopy Create free account
hub / github.com/Snapchat/Valdi / addEntry

Method addEntry

valdi_core/src/valdi_core/cpp/Resources/ValdiArchive.cpp:117–138  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

115ValdiArchiveBuilder::ValdiArchiveBuilder() = default;
116
117void ValdiArchiveBuilder::addEntry(const ValdiArchiveEntry& entry) {
118 _moduleData.reserve(_moduleData.size() + entry.dataLength + entry.filePath.length() + sizeof(uint32_t) * 2);
119
120 auto filenameLength = static_cast<uint32_t>(entry.filePath.length());
121 auto dataLength = static_cast<uint32_t>(entry.dataLength);
122
123 auto filenamePaddingLength = computePadding(entry.filePath.length());
124 auto dataPaddingLength = computePadding(entry.dataLength);
125 if (filenamePaddingLength > 0) {
126 filenameLength |= kPaddingBit;
127 }
128 if (dataPaddingLength > 0) {
129 dataLength |= kPaddingBit;
130 }
131 _moduleData.append(reinterpret_cast<Byte*>(&filenameLength), reinterpret_cast<Byte*>(&filenameLength + 1));
132 _moduleData.append(entry.filePath.getCStr(), entry.filePath.getCStr() + entry.filePath.length());
133 appendPadding(filenamePaddingLength);
134
135 _moduleData.append(reinterpret_cast<Byte*>(&dataLength), reinterpret_cast<Byte*>(&dataLength + 1));
136 _moduleData.append(entry.data, entry.data + entry.dataLength);
137 appendPadding(dataPaddingLength);
138}
139
140void ValdiArchiveBuilder::appendPadding(size_t padding) {
141 for (size_t i = 0; i < padding; i++) {

Callers 7

TESTFunction · 0.80
TESTFunction · 0.80
addAssetArtifactFunction · 0.80
mockRemoteModuleMethod · 0.80
serializeMethod · 0.80
preprocessMethod · 0.80
serializeMethod · 0.80

Calls 6

computePaddingFunction · 0.70
appendMethod · 0.65
reserveMethod · 0.45
sizeMethod · 0.45
lengthMethod · 0.45
getCStrMethod · 0.45

Tested by 4

TESTFunction · 0.64
TESTFunction · 0.64
addAssetArtifactFunction · 0.64
mockRemoteModuleMethod · 0.64