Back to Serial Studio

MDF Lib: include/mdf/mdffile.h Source File

lib/mdflib/docs/manual/html/mdffile_8h_source.html

3.2.712.1 KB
Original Source

| MDF Lib 2.2

Interface against MDF 3/4 files |

Loading...

Searching...

No Matches

mdffile.h

Go to the documentation of this file.

1/*

2 * Copyright 2021 Ingemar Hedvall

3 * SPDX-License-Identifier: MIT

4 */

8#pragma once

9#include <cstdio>

10

11#include <string>

12#include <vector>

13

14#include "mdf/iheader.h"

15

16namespace mdf {

17

18class IAttachment;

19class IDataGroup;

20class IChannel;

21

24using AttachmentList = std::vector<const IAttachment*>;

25

28using DataGroupList = std::vector<IDataGroup*>;

29

37class MdfFile {

38 public:

39virtual ~MdfFile() = default;

40

48virtual void Attachments(AttachmentList& dest) const = 0;

49

55virtual void DataGroups(DataGroupList& dest) const = 0;

56

62 [[nodiscard]] virtual std::string Version() const = 0;

63

69 [[nodiscard]] int MainVersion() const;

70

77virtual void MinorVersion(int minor) = 0;

78

85 [[nodiscard]] int MinorVersion() const;

86

94virtual void ProgramId(const std::string& program_id) = 0;

95

102 [[nodiscard]] virtual std::string ProgramId() const = 0;

103

111 [[nodiscard]] virtual IHeader* Header() const = 0;

112

122 [[nodiscard]] virtual IAttachment* CreateAttachment();

123

131 [[nodiscard]] virtual IDataGroup* CreateDataGroup() = 0;

132

138 [[nodiscard]] virtual bool IsMdf4() const = 0;

139

146virtual void ReadHeader(std::FILE* file) = 0;

147

157virtual void ReadMeasurementInfo(std::FILE* file) = 0;

158

169virtual void

170ReadEverythingButData(std::FILE* file) = 0;

171

181virtual bool Write(std::FILE* file) = 0;

182

189 [[nodiscard]] const std::string& Name() const { return text_; }

190

197void Name(const std::string& name) { text_ = name; }

198

204 [[nodiscard]] const std::string& FileName() const { return filename_; }

205

211void FileName(const std::string& filename);

212

214virtual void IsFinalized(bool finalized, std::FILE* file,

215 uint16_t standard_flags, uint16_t custom_flags) = 0;

217 [[nodiscard]] virtual bool IsFinalized(uint16_t& standard_flags,

218 uint16_t& custom_flags) const = 0;

219

226 [[nodiscard]] virtual bool IsFinalizedDone() const;

227

229 [[nodiscard]] virtual IDataGroup* FindParentDataGroup(

230const IChannel &channel) const = 0;

231 protected:

232MdfFile() = default;

233 private:

234 std::string text_;

235 std::string filename_;

236};

237

238} // namespace mdf

mdf::IAttachment

Interface against an attached file.

Definition iattachment.h:21

mdf::IChannel

Defines a MDF channel (CN) block.

Definition ichannel.h:126

mdf::IDataGroup

Interface to a data group (DG) block.

Definition idatagroup.h:42

mdf::IHeader

Interface class against an MDF HD block.

Definition iheader.h:34

mdf::MdfFile

Implements an user interface against a MDF file.

Definition mdffile.h:37

mdf::MdfFile::ProgramId

virtual void ProgramId(const std::string &program_id)=0

Sets the program identifier int the ID block.

mdf::MdfFile::IsFinalized

virtual void IsFinalized(bool finalized, std::FILE *file, uint16_t standard_flags, uint16_t custom_flags)=0

Sets the finalize state for the file.

mdf::MdfFile::DataGroups

virtual void DataGroups(DataGroupList &dest) const =0

Fetch a list of all measurements.

mdf::MdfFile::Version

virtual std::string Version() const =0

Returns the file version.

mdf::MdfFile::Name

const std::string & Name() const

Display name of the file.

Definition mdffile.h:189

mdf::MdfFile::Write

virtual bool Write(std::FILE *file)=0

Saves all blocks onto the file.

mdf::MdfFile::MdfFile

MdfFile()=default

Default constructor.

mdf::MdfFile::ProgramId

virtual std::string ProgramId() const =0

Returns the program identifier.

mdf::MdfFile::IsFinalized

virtual bool IsFinalized(uint16_t &standard_flags, uint16_t &custom_flags) const =0

Returns true if the file is finalized.

mdf::MdfFile::ReadEverythingButData

virtual void ReadEverythingButData(std::FILE *file)=0

Reads in all expect raw data from the file.

mdf::MdfFile::MainVersion

int MainVersion() const

Returns the main version of the file.

mdf::MdfFile::IsFinalizedDone

virtual bool IsFinalizedDone() const

mdf::MdfFile::ReadHeader

virtual void ReadHeader(std::FILE *file)=0

Reads the information about the file.

mdf::MdfFile::Header

virtual IHeader * Header() const =0

Returns the header object.

mdf::MdfFile::Attachments

virtual void Attachments(AttachmentList &dest) const =0

Fetch a list of attachments.

mdf::MdfFile::IsMdf4

virtual bool IsMdf4() const =0

Returns true if this is a MDF4 file.

mdf::MdfFile::ReadMeasurementInfo

virtual void ReadMeasurementInfo(std::FILE *file)=0

Reads the measurement information about the file.

mdf::MdfFile::MinorVersion

virtual void MinorVersion(int minor)=0

Sets the minor version of the file.

mdf::MdfFile::CreateDataGroup

virtual IDataGroup * CreateDataGroup()=0

Creates a new measurement (DG block).

mdf::MdfFile::~MdfFile

virtual ~MdfFile()=default

Default destructor.

mdf::MdfFile::FileName

const std::string & FileName() const

Returns the full name of the file.

Definition mdffile.h:204

mdf::MdfFile::FindParentDataGroup

virtual IDataGroup * FindParentDataGroup(const IChannel &channel) const =0

Returns a parent data group (DG) depending a channel.

mdf::MdfFile::Name

void Name(const std::string &name)

Set the display name of the file.

Definition mdffile.h:197

mdf::MdfFile::CreateAttachment

virtual IAttachment * CreateAttachment()

Creates a new attachment (AT block).

mdf::MdfFile::FileName

void FileName(const std::string &filename)

Sets the file name.

mdf::MdfFile::MinorVersion

int MinorVersion() const

Returns the minor version number of the MDF file.

iheader.h

Interface against a HD block.

mdf

Main namespace for the MDF library.

Definition canmessage.h:17

mdf::AttachmentList

std::vector< const IAttachment * > AttachmentList

List of pointers to attachments.

Definition mdffile.h:24

mdf::DataGroupList

std::vector< IDataGroup * > DataGroupList

List of pointers to measurements (DG block).

Definition mdffile.h:28


Generated by 1.12.0