11#ifndef L16_LINK16MESSAGES_HPP
12#define L16_LINK16MESSAGES_HPP
15#include "wsf_l16_export.h"
30class ContinuationBase;
32class MessageBitOutput;
33class MessageAccessorFiller;
79 void PrintWord(ut::log::MessageStream& aStream)
const;
96 virtual void GetLabel(
int& aLabel,
int& aSubLabel)
const = 0;
101 return aLabel == label && aSublabel == subLabel;
116 Base* GetSubWord(
int index)
const;
131 void InsertContinuationWord(std::unique_ptr<ContinuationBase>);
134 void InsertExtensionWord(std::unique_ptr<ExtensionBase>);
150 void PrintMessage(ut::log::MessageStream& aStream)
const;
179 std::string GetClassName()
const override;
Definition Messages.hpp:48
virtual void TransferO(MessageBitOutput &aMW)=0
Reads the message from a MessageBitOutput.
WordType
Definition Messages.hpp:54
@ cUNDEFINED
Definition Messages.hpp:58
@ cCONTINUATION
Definition Messages.hpp:56
@ cINITIAL
Definition Messages.hpp:55
@ cEXTENSION
Definition Messages.hpp:57
virtual int GetUID() const =0
Returns the unique identifier of a message word type.
virtual WordType GetWordType() const =0
Returns the base type of the word.
void PrintWord(ut::log::MessageStream &aStream) const
Definition Messages.cpp:66
virtual void TransferI(MessageBitInput &aMR)=0
Reads the message from a MessageBitInput.
virtual std::string GetClassName() const =0
Returns the class name of a field (used in scripting and debug output).
virtual void CreateAccessor(MessageAccessorFiller &aMP)=0
Used once to provide generic access to messages and fields.
virtual const char * GetFieldName(int i)=0
Returns the name of the field with a given index.
The base class for J-Message ContinuationBase words.
Definition Messages.hpp:168
WordType GetWordType() const override
Returns the base type of the word.
Definition Messages.hpp:177
friend class Factory
Definition Messages.hpp:172
~ContinuationBase() override
Definition Messages.hpp:175
virtual int GetLabel() const =0
friend class InitialBase
Definition Messages.hpp:171
virtual ContinuationBase * Clone() const =0
ContinuationBase subword_type
Definition Messages.hpp:170
Definition Messages.hpp:183
virtual int GetExtensionNumber() const =0
virtual ExtensionBase * Clone() const =0
ExtensionBase subword_type
Definition Messages.hpp:185
friend class InitialBase
Definition Messages.hpp:186
std::string GetClassName() const override
Returns the human-readable class name for the Extension word.
Definition Messages.cpp:310
WordType GetWordType() const override
Returns the base type of the word.
Definition Messages.hpp:188
Header mHeader
Definition Messages.hpp:163
std::vector< std::unique_ptr< ExtensionBase > > mExtensionWords
Definition Messages.hpp:162
Header & GetHeader()
Definition Messages.hpp:138
const Header & GetHeader() const
Definition Messages.hpp:136
virtual InitialBase * Clone() const =0
std::vector< std::unique_ptr< ContinuationBase > > mContinuationWords
Definition Messages.hpp:161
friend class Factory
Definition Messages.hpp:154
const InitialBase & operator=(const InitialBase &aRhs)=delete
void PrintMessage(ut::log::MessageStream &aStream) const
Definition Messages.cpp:265
~InitialBase() override=default
virtual void GetLabel(int &aLabel, int &aSubLabel) const =0
size_t GetMessageLength() const
Returns the number of extra words in the message.
Definition Messages.hpp:95
const ContinuationBase * GetContinuation(int aIndex) const
Definition Messages.hpp:119
int GetLabel() const
Definition Messages.hpp:103
ContinuationBase * GetContinuation(int aIndex)
Definition Messages.hpp:118
size_t GetExtensionCount() const
Definition Messages.hpp:123
size_t GetContinuationCount() const
Definition Messages.hpp:120
InitialBase(const InitialBase &aSrc)
Definition Messages.cpp:123
bool Initialize(const char *aData)
Initialize the message by reading from the data buffer.
bool IsLabelEqual(int aLabel, int aSublabel) const
Definition Messages.hpp:97
virtual std::unique_ptr< ExtensionBase > CreateExtensionWord(int aExtensionBaseNumber)=0
Adds an Extension word with the given ExtensionBase number to this message.
std::string GetClassName() const override
Returns the human-readable class name for the Initial word.
Definition Messages.cpp:256
ExtensionBase * GetExtension(int aIndex) const
Definition Messages.hpp:124
int GetSubLabel() const
Definition Messages.hpp:109
WordType GetWordType() const override
Returns the base type of the word.
Definition Messages.hpp:92
virtual std::unique_ptr< ContinuationBase > CreateContinuationWord(int label)=0
Adds a Continuation word with the given label to this message.
Definition FieldAccessorTypes.hpp:183
Definition FieldTypes.hpp:78
Definition ComputerPart.hpp:45
This file should be included prior to defining a message. Currently there is a limit of 32 fields per...
Definition AllMessages.hpp:55