wiRedPanda
Logic Circuit Simulator
Loading...
Searching...
No Matches
DolphinSerializer Namespace Reference

Pure I/O functions for the beWavedDolphin waveform file formats. More...

Classes

struct  WaveformData
 Raw waveform data returned by the load functions. More...

Functions

WaveformData loadBinary (QDataStream &stream, int maxInputPorts)
 Deserializes input rows from a binary .dolphin stream.
WaveformData loadCSV (QFile &file, int maxInputPorts)
 Deserializes input rows from a .csv file.
void saveBinary (QDataStream &stream, const QStandardItemModel *model, int inputPorts)
 Serializes input rows to the binary .dolphin stream.
void saveCSV (QSaveFile &file, const QStandardItemModel *model)
 Serializes all rows (inputs + outputs) to a .csv file.

Detailed Description

Pure I/O functions for the beWavedDolphin waveform file formats.

Handles only the encoding and decoding of data. BewavedDolphin retains responsibility for model updates (setLength, SignalModel::setValue, run).

Function Documentation

◆ loadBinary()

WaveformData DolphinSerializer::loadBinary ( QDataStream & stream,
int maxInputPorts )

Deserializes input rows from a binary .dolphin stream.

Parameters
streamSource data stream (header already consumed by caller).
maxInputPortsClamp row count to this value (current circuit's input count).
Returns
Parsed waveform data ready for BewavedDolphin to apply.
Exceptions
Pandaceptionon invalid column count.

Definition at line 30 of file Serializer.cpp.

References DolphinSerializer::WaveformData::columns, DolphinSerializer::WaveformData::inputPorts, SignalModel::kMaxColumns, PANDACEPTION_WITH_CONTEXT, and DolphinSerializer::WaveformData::values.

Referenced by DolphinFile::load().

◆ loadCSV()

WaveformData DolphinSerializer::loadCSV ( QFile & file,
int maxInputPorts )

Deserializes input rows from a .csv file.

Parameters
fileSource file (already opened for reading).
maxInputPortsClamp row count to this value.
Returns
Parsed waveform data ready for BewavedDolphin to apply.
Exceptions
Pandaceptionon invalid or insufficient data.

Definition at line 84 of file Serializer.cpp.

References DolphinSerializer::WaveformData::columns, DolphinSerializer::WaveformData::inputPorts, SignalModel::kMaxColumns, PANDACEPTION_WITH_CONTEXT, and DolphinSerializer::WaveformData::values.

Referenced by DolphinFile::load().

◆ saveBinary()

void DolphinSerializer::saveBinary ( QDataStream & stream,
const QStandardItemModel * model,
int inputPorts )

Serializes input rows to the binary .dolphin stream.

Parameters
streamDestination data stream (header already written by caller).
modelSource model.
inputPortsNumber of input rows to serialize (output rows are skipped).

Definition at line 16 of file Serializer.cpp.

Referenced by DolphinFile::save().

◆ saveCSV()

void DolphinSerializer::saveCSV ( QSaveFile & file,
const QStandardItemModel * model )

Serializes all rows (inputs + outputs) to a .csv file.

Parameters
fileDestination save file (already opened for writing).
modelSource model.

Definition at line 65 of file Serializer.cpp.

Referenced by DolphinFile::save().