For a deep architectural description (process model, subsystems, data flows, storage design, performance/metrics, error handling, extensibility guidelines, and glossary) see the dedicated ARCHITECTURE.md.
/*
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 2B: Version β 1B: MsgType β 1B: Flags β 4B: PayloadLen β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
*/
#pragma pack(push,1)
typedef struct {
uint16_t version; // 0x0001
uint8_t msg_type; // shared enum
uint8_t flags; // bitmask
uint32_t payload_len; // network-order
} po_header_t;
#pragma pack(pop)β¨PayloadLenβ© bytes of payload (binary or JSON)
βββ app β βββ config/ β β βββ explode.ini β β βββ timeout.ini β β β βββ docs/ β β βββ design_report.md β β βββ statistics_format.md β β βββ tuning_guide.md β β βββ usage_instructions.md β β βββ β¦ (other docs) β β β βββ include/ β β βββ postoffice/ β β βββ core/ β β β βββ director.h β β β βββ main.h β β β βββ shared.h β β β βββ ticket_issuer.h β β β βββ user.h β β β βββ users_manager.h β β β βββ worker.h β β βββ sysinfo/ β β β βββ sysinfo.h β β β β β βββ log/ β β β βββ logger.h β β βββ net/ β β βββ perf/ β β βββ storage/ β β βββ tui/ β β β βββ layout.h β β β βββ tui.h β β β βββ types.h β β β βββ ui.h β β β βββ widgets.h β β βββ utils/ β β βββ argv.h β β βββ configs.h β β βββ errors.h β β βββ files.h β β βββ random.h β β β βββ libs/ β vendored thirdβparty code β β βββ postoffice/ β your implementation modules β β β βββ net/ β β β β βββ framing.c β β β β βββ framing.h β internal parser header β β β β βββ net.c β β β β βββ poller.c β β β β βββ poller.h β β β β βββ protocol.c β β β β βββ protocol.h β β β β βββ socket.c β β β β βββ socket.h β β β β β β β βββ perf/ β β β β βββ batcher.c β β β β βββ batcher.h β β β β βββ ringbuf.c β β β β βββ ringbuf.h β β β β βββ zerocopy.c β β β β βββ zerocopy.h β β β β β β β βββ storage/ β β β β βββ db_lmdb.c β β β β βββ db_lmdb.h β β β β βββ index.c β β β β βββ index.h β β β β βββ logstore.c β β β β βββ logstore.h β β β β βββ storage.c β β β β βββ ... β β β β β β β βββ log/ β β β β βββ logger.c β β β βββ sysinfo/ β β β β βββ fsinfo.c β β β β βββ fsinfo.h β β β β βββ hugeinfo.c β β β β βββ hugeinfo.h β β β β βββ sysinfo.c β β β βββ utils/ β β β βββ argv.c β β β βββ configs.c β β β βββ errors.c β β β βββ files.c β β β βββ random.c β β β β β βββ thirdparty/ β all vendored external libs β β βββ inih/ β ini.c, ini.h β β βββ libfort/ β fort.c, fort.h β β βββ lmdb/ β mdb.c, mdb.h, midl.c, midl.h β β βββ log_c/ β log.c, log.h β β βββ unity/ β unity.c, unity.h, unity_internals.h β β β βββ src/ β "your" executables entrypoints β β βββ core/ β β β βββ main/ β simulation dashboard β β β β βββ main.c β β β β β β β βββ simulation/ β β β βββ director/ β Director process β β β β βββ director.c β β β β β β β βββ ticket_issuer/ β β β β βββ ticket_issuer.c β β β β β β β βββ user/ β β β β βββ user.c β β β β β β β βββ users_manager/ β β β β βββ users_manager.c β β β β β β β βββ worker/ β β β βββ worker.c β β β β β (no modules/ stubs hereβtests should go under `tests/`) β β β βββ tests/ β unit & integration tests β β βββ core/ β tests for main, director, user, etc. β β βββ net/ β echo server/client, framing tests β β βββ perf/ β ringbuf, batcher, zerocopy tests β β βββ storage/ β LMDB & logstore tests β β βββ utils/ β argv, configs, files, random tests β β β βββ Makefile β builds all src executables + libs + tests β βββ Doxyfile β βββ project # Project paperwork, drafts, PDFs βββ 20241126-Draft-Progetto_SO_2024_25.pdf ```This project is licensed under the GNU General Public License v3.0.
See the LICENSE file for details.