MCPcopy Create free account
hub / github.com/davidgiven/fluxengine / read

Method read

lib/external/ldbs.cc:19–50  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

17}
18
19uint32_t LDBS::read(const Bytes& data)
20{
21 ByteReader br(data);
22
23 br.seek(0);
24 if ((br.read_be32() != LDBS_FILE_MAGIC) ||
25 (br.read_be32() != LDBS_FILE_TYPE))
26 error("not a valid LDBS file");
27
28 uint32_t address = br.read_le32();
29 br.skip(4);
30 uint32_t trackDirectory = br.read_le32();
31
32 while (address)
33 {
34 br.seek(address);
35 if (br.read_be32() != LDBS_BLOCK_MAGIC)
36 error("invalid block at address 0x{:x}", address);
37
38 Block& block = blocks[address];
39 block.type = br.read_be32();
40
41 uint32_t size = br.read_le32();
42 br.skip(4);
43 address = br.read_le32();
44
45 block.data.writer().append(br.read(size));
46 }
47
48 top = data.size();
49 return trackDirectory;
50}
51
52const Bytes LDBS::write(uint32_t trackDirectory)
53{

Callers 1

loadFl2FileFunction · 0.45

Calls 6

errorFunction · 0.85
read_be32Method · 0.80
read_le32Method · 0.80
writerMethod · 0.80
seekMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected