Back to Serial Studio

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

lib/mdflib/docs/manual/html/ichannelhierarchy_8h_source.html

3.2.711.6 KB
Original Source

| MDF Lib 2.2

Interface against MDF 3/4 files |

Loading...

Searching...

No Matches

ichannelhierarchy.h

Go to the documentation of this file.

1/*

2 * Copyright 2022 Ingemar Hedvall

3 * SPDX-License-Identifier: MIT

4 */

5

9#pragma once

10#include <cstdint>

11

12#include "mdf/ichannel.h"

13#include "mdf/ichannelgroup.h"

14#include "mdf/idatagroup.h"

15#include "mdf/iblock.h"

16

17namespace mdf {

18

20struct ElementLink {

21const IDataGroup* data_group = nullptr;

22const IChannelGroup* channel_group = nullptr;

23const IChannel* channel = nullptr;

24};

25

27enum class ChType : uint8_t {

28Group = 0,

29Function = 1,

30Structure = 2,

31MapList = 3,

32InputVariable = 4,

33OutputVariable = 5,

34LocalVariable = 6,

35CalibrationDefinition = 7,

36CalibrationObject = 8

37};

38

40class IChannelHierarchy : public IBlock {

41 public:

42

43virtual void Name(const std::string& name) = 0;

44 [[nodiscard]] virtual const std::string& Name() const = 0;

45

46virtual void Type(ChType type) = 0;

47 [[nodiscard]] virtual ChType Type() const = 0;

48 [[nodiscard]] std::string TypeToString() const;

49

50virtual void Description(const std::string& description)

51 = 0;

52 [[nodiscard]] virtual std::string Description() const = 0;

53

58 [[nodiscard]] virtual IMetaData* CreateMetaData() = 0;

59

64 [[nodiscard]] virtual const IMetaData* MetaData() const = 0;

65

67virtual void AddElementLink(const ElementLink& element) = 0;

68

70 [[nodiscard]] virtual const std::vector<ElementLink>& ElementLinks()

71const = 0;

72

74 [[nodiscard]] virtual IChannelHierarchy* CreateChannelHierarchy() = 0;

75

77 [[nodiscard]] virtual std::vector<IChannelHierarchy*> ChannelHierarchies()

78const = 0;

79};

80} // namespace mdf

mdf::IBlock

Base class for all MDF blocks.

Definition iblock.h:19

mdf::IChannelGroup

Interface against a channel group (CG) block.

Definition ichannelgroup.h:66

mdf::IChannelHierarchy

Channel hierarchy (CH) block.

Definition ichannelhierarchy.h:40

mdf::IChannelHierarchy::CreateMetaData

virtual IMetaData * CreateMetaData()=0

Returns an interface against an MD4 block.

mdf::IChannelHierarchy::Type

virtual ChType Type() const =0

Block type.

mdf::IChannelHierarchy::ElementLinks

virtual const std::vector< ElementLink > & ElementLinks() const =0

Returns a list of element links.

mdf::IChannelHierarchy::Name

virtual void Name(const std::string &name)=0

Sets name.

mdf::IChannelHierarchy::MetaData

virtual const IMetaData * MetaData() const =0

Returns an constant interface against a MD4 block.

mdf::IChannelHierarchy::Type

virtual void Type(ChType type)=0

Sets the block type.

mdf::IChannelHierarchy::CreateChannelHierarchy

virtual IChannelHierarchy * CreateChannelHierarchy()=0

Create a CH block.

mdf::IChannelHierarchy::AddElementLink

virtual void AddElementLink(const ElementLink &element)=0

Adds an element link.

mdf::IChannelHierarchy::Description

virtual void Description(const std::string &description)=0

Sets the descriptive text.

mdf::IChannelHierarchy::Name

virtual const std::string & Name() const =0

Name.

mdf::IChannelHierarchy::TypeToString

std::string TypeToString() const

Block type as text.

mdf::IChannelHierarchy::Description

virtual std::string Description() const =0

Description.

mdf::IChannelHierarchy::ChannelHierarchies

virtual std::vector< IChannelHierarchy * > ChannelHierarchies() const =0

Returns a list of CH blocks.

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::IMetaData

Interface against an meta data block (MD) in a MDF4 file.

Definition imetadata.h:27

iblock.h

All MDF blocks inherits from the IBlock class. The interface class is used internally in lists....

ichannel.h

The define an interface against a channel block (CN).

ichannelgroup.h

Defines an interface against a channel group (CG) block.

idatagroup.h

Interface to a data group (DG) block.

mdf

Main namespace for the MDF library.

Definition canmessage.h:17

mdf::ChType

ChType

Block type.

Definition ichannelhierarchy.h:27

mdf::ChType::Group

@ Group

Define a group.

mdf::ChType::MapList

@ MapList

Define a map list.

mdf::ChType::OutputVariable

@ OutputVariable

Define output variables.

mdf::ChType::InputVariable

@ InputVariable

Define input variables.

mdf::ChType::CalibrationObject

@ CalibrationObject

Define calibration reference objects.

mdf::ChType::Function

@ Function

Define a function.

mdf::ChType::LocalVariable

@ LocalVariable

Define local variables.

mdf::ChType::CalibrationDefinition

@ CalibrationDefinition

Define calibration define objects.

mdf::ChType::Structure

@ Structure

Define a structure.

mdf::ElementLink

Support structure that holds a DG/CG/CN relation.

Definition ichannelhierarchy.h:20

mdf::ElementLink::channel

const IChannel * channel

Pointer to a CN block.

Definition ichannelhierarchy.h:23

mdf::ElementLink::data_group

const IDataGroup * data_group

Pointer to a DG block.

Definition ichannelhierarchy.h:21

mdf::ElementLink::channel_group

const IChannelGroup * channel_group

Pointer to a CG block.

Definition ichannelhierarchy.h:22


Generated by 1.12.0