message_logger

struct messageLogContainer

Public Members

std::string messageName

The message name associated with the log

int64_t messageID

The message ID associated with the log

int64_t processID

Process ID associated with the message

uint64_t lastLogTime

ns The last valid log time observed

uint64_t logInstanceCount

The number of message logs that we have made

uint64_t lastWriteCheck

ns The last write count that we examined

uint64_t writeDelta

ns The minimum time between log steps

uint64_t bufferOffset

The current offset in the log to access

BlankStorage messageBuffer

The storage buffer associated with the log.

std::vector<uint64_t> storOff

Vector of storage buffer offset offsets for access

class messageLogger
#include <message_logger.h>

The top-level container for an entire simulation.

Public Functions

messageLogger()

The MessageLogger constructor.

This constructor is used to initialize the message logging data. It clears out the message log list and resets the logger to a clean state.

~messageLogger()

MessageLogger destructor.

Nothing to destroy really

void addMessageLog(std::string messageName, uint64_t messagePeriod = 0)

This method inserts a new message onto the logging vector so that it gets logged out appropriately. If the message has already been added once already it will just update the log period and return from there.

Return

void

Parameters
  • messageName: The name of the message that we want to log

  • messagePeriod: ns The minimum time between messages that we want to allow

void linkMessages()

This method is used to find the appropriate messaged ID associated with each message name that has been added to logging. It warns the user if any of the added messages have not been successfully linked.

Return

void

bool messagesLinked()

Getter for link success.

void logAllMessages()

This method executes the actual log generation activity. It is focused on simplicity currently so there is room to speed things up if this functionality begins to consume significant parts of our runtime

Return

void

bool readLog(MessageIdentData &messageID, SingleMessageHeader *dataHeader, uint64_t maxBytes, uint8_t *msgPayload, uint64_t currentOffset = 0)
uint64_t getLogCount(int64_t processID, int64_t messageID)
void clearLogs()
void archiveLogsToDisk(std::string outFileName)
void loadArchiveFromDisk(std::string inFileName)

Public Members

uint64_t initBufferSize

Default buffer size fo message log storage.

std::vector<messageLogContainer> logData

Vector of log elements.

BSKLogger bskLogger

BSK Logging

Private Members

bool allLogsLinked

Indicator of whether or not messages are all linked.