Some fundamental definitions.
§1. Build identity. This notation tangles out to the current build number as specified in the contents section of this web.
define PROGRAM_NAME "inblorb"
§2. Setting up the memory manager. We need to itemise the structures we'll want to allocate:
enum auxiliary_file_CLASS enum chunk_metadata_CLASS enum heading_CLASS enum placeholder_CLASS enum rdes_record_CLASS enum request_CLASS enum resource_number_CLASS enum segment_CLASS enum skein_node_CLASS enum table_CLASS enum template_CLASS enum template_path_CLASS
DECLARE_CLASS(auxiliary_file) DECLARE_CLASS(skein_node) DECLARE_CLASS(chunk_metadata) DECLARE_CLASS(placeholder) DECLARE_CLASS(heading) DECLARE_CLASS(table) DECLARE_CLASS(rdes_record) DECLARE_CLASS(resource_number) DECLARE_CLASS(segment) DECLARE_CLASS(request) DECLARE_CLASS(template) DECLARE_CLASS(template_path)
§4. Simple allocations. Not all of our memory will be claimed in the form of structures: now and then we need to use the equivalent of traditional malloc and calloc routines.
enum RDES_MREASON enum CHUNK_STORAGE_MREASON
void Basics::register_mreasons(void) { Memory::reason_name(RDES_MREASON, "resource descriptions"); Memory::reason_name(CHUNK_STORAGE_MREASON, "chunk data storage"); }