A header only framework for binary file formats
Number | Time (s) |
---|---|
1k | 1.35 |
10k | 12.82 |
100k | 128.65 |
Number | Time (ms) |
---|---|
1k | 1 |
10k | 1 |
100k | 6 |
1M | 40 |
Number | Time (ms) |
---|---|
1k | 0 |
10k | 0 |
100k | 0 |
1M | 8 |
#include <iostream>
#include <binfmt.h>
struct LogHeader : public BinaryFileHeaderBase {
LogHeader(): BinaryFileHeaderBase(1, 88448844) {}
};
struct LogEntry {
char message[128];
};
using LogEntryContainer = BinaryEntryContainer<LogEntry>;
using LogFile = BinaryFile<LogHeader, LogEntry, LogEntryContainer, 1000>;
int main() {
LogFile log("mylog.bin");
log.append(LogEntry{"This is a log message"});
log.append(LogEntry{"Another message"});
std::vector<LogEntryContainer> entries;
if (log.getAllEntries(entries)) {
for (auto e : entries) {
if(e.isEntryValid()) {
std::cout << e.entry.message << std::endl;
}
}
}
return 0;
}
$ /home/nbdy/CLionProjects/binfmt/cmake-build-debug/binfmt_ex_min
This is a log message
Another message