• Skip to main content
  • Skip to header right navigation
  • Skip to site footer
CDP Studio logo

CDP Studio

The no-code and full-code software development tool for distributed control systems and HMI

  • Doc
  • Why CDP
    • Software developers
    • Automation engineers
    • Managers
  • Products
    • Automation Designer
    • HMI Designer
    • Maritime HMIs
  • Services
  • Use cases
  • Pricing
  • Try CDP

CDP Studio Documentation

  • Protocols - MQTT I/O
  • TopicBase
  • 5.0.2

TopicBase Class

(MQTTIO::TopicBase)
Inherits: CDP::StudioAPI::CDPNode, ServerIO::ISendTrigger, and
  • List of all members, including inherited members

Public Functions

TopicBase()
~TopicBase() override
void ClearRuntimeFaults()
virtual void Configure(XMLElementEx *element, MQTTClient *parentComp, TopicBase *parentTopic)
void ConfigureChannels(XMLElementEx *element, ServerIO::Translator::TranslatorChannelGroup *parentGroup)
void DeregisterSendOnChanges()
virtual void Destroy()
void MQTTOnConnect()
void MQTTReceive(const mosquitto_message *mqttMessage, const mosquitto_property *properties)
void MQTTSubscribeOrPublish(double cycleStartTime)
std::string Name() const
MQTTClient *ParentComp() const
void UpdateReportedConfigurationFaults()
  • 27 public functions inherited from CDP::StudioAPI::CDPNode
  • 2 public functions inherited from ServerIO::ISendTrigger
  • 22 public functions inherited from CDP::StudioAPI::ICDPNode

Static Public Members

TopicBase *CreateNew(std::string &model)

Protected Types

class PublishData

Protected Functions

ServerIO::ICDPChannel *AbsorbedSingleChannel() const
void ConfigureAbsorbedTypedChannel(XMLElementEx *topicXML, ServerIO::Translator::TranslatorChannelGroup *parentGroup)
ServerIO::ICDPChannel *ConfigureChannel(ServerIO::ICDPChannel *channel, const char *name, XMLElementEx *pObjectElement, bool input, ServerIO::Translator::TranslatorChannelGroup *parentGroup)
void ConfigureChannelGroups(XMLElementEx *element)
void ConfigureMessageOnReceive(XMLElementEx *element)
void ConfigureSendOnMessage(XMLElementEx *element)
void ConfigureStreamTranslator(XMLElementEx *TranslatorXML)
void ConfigureStringTopicChannels(XMLElementEx *topicXML, ServerIO::Translator::TranslatorChannelGroup *parentGroup)
void ConfigureSubTopics(XMLElementEx *element)
void ConfigureTranslator(XMLElementEx *element)
void ConfigureTriggering(XMLElementEx *element)
void ConfigureValueMapper(XMLElementEx *element)
void CreatePropertyBaseObject(XMLElementEx *element)
void EncodeMessageParameters(MessagePacket &packet, unsigned int command, const std::string &payload) const
PublishData GetPublishDataFromMessage(const MessagePacketHandle &message) const
CDP::StudioAPI::CDPNode *InheritedTranslator() const
bool MQTTPublishTopic(const PublishData &data)
void MQTTPublishTopicOnChannelChange()
void MQTTPublishTopicOnMessageQueue()
void MQTTSubscribeTopic()
bool MessageTopicMatches(char *incomingMessageTopic)
void NotifySubTopicsSomeValueMapHasChanged()
std::string ParentTopicsPath() const
void QueueToSend(const MessagePacketHandle &message)
void SendOnMQTTReceiveMessages(const std::string &payload)
void SyncChannelValuesOut()
std::string TopicValue()
std::string TopicsPath() const
void UpdateValueMapper(ServerIO::Translator::ValueMapper *valueMapper)
void UpdateValueMapperTree()
void ValueChanged(CDP::StudioAPI::ICDPNode *node, const CDP::StudioAPI::CDPVariantValue &oldValue, const CDP::StudioAPI::CDPVariantValue &newValue) override

Reimplemented Protected Functions

virtual bool AddChild(const std::string &name, const std::string &typeName, const std::string &configuration) override
virtual void FillNodeChildren(CDP::StudioAPI::NodeStream &stream) const override
virtual void FlagForSend() override
virtual void FlagForSend(const std::string &arguments) override
virtual const std::string GetNodeName() const override
virtual std::string GetNodeTypeName() const override
virtual CDP::StudioAPI::CDPValueType GetNodeValueType() const override
virtual CDP::StudioAPI::CDPVariantValue GetVariantValue() const override
virtual bool RemoveChild(const std::string &name) override
virtual void SetVariantValue(const CDP::StudioAPI::CDPVariantValue &value) override
  • 1 protected function inherited from CDP::StudioAPI::CDPNode

Static Protected Members

void AddInputChannelsToArguments(const ServerIO::Translator::TranslatorChannelGroup &channelTree, std::vector<CDPUtils::Parameter> &arguments)
void UpdateOutputChannelValue(const ServerIO::Translator::TranslatorChannelGroup &channelTree, const CDPUtils::Parameter &argument)

Member Function Documentation

TopicBase::TopicBase()

Default constructs an instance of TopicBase.

TopicBase::~TopicBase()

Destroys the instance of TopicBase.

[protected] ServerIO::ICDPChannel *TopicBase::AbsorbedSingleChannel() const

[override virtual protected] bool TopicBase::AddChild(const std::string &name, const std::string &typeName, const std::string &configuration)

[static protected] void TopicBase::AddInputChannelsToArguments(const ServerIO::Translator::TranslatorChannelGroup &channelTree, std::vector<CDPUtils::Parameter> &arguments)

void TopicBase::ClearRuntimeFaults()

[virtual] void TopicBase::Configure(XMLElementEx *element, MQTTClient *parentComp, TopicBase *parentTopic)

[protected] void TopicBase::ConfigureAbsorbedTypedChannel(XMLElementEx *topicXML, ServerIO::Translator::TranslatorChannelGroup *parentGroup)

[protected] ServerIO::ICDPChannel *TopicBase::ConfigureChannel(ServerIO::ICDPChannel *channel, const char *name, XMLElementEx *pObjectElement, bool input, ServerIO::Translator::TranslatorChannelGroup *parentGroup)

[protected] void TopicBase::ConfigureChannelGroups(XMLElementEx *element)

void TopicBase::ConfigureChannels(XMLElementEx *element, ServerIO::Translator::TranslatorChannelGroup *parentGroup)

[protected] void TopicBase::ConfigureMessageOnReceive(XMLElementEx *element)

[protected] void TopicBase::ConfigureSendOnMessage(XMLElementEx *element)

[protected] void TopicBase::ConfigureStreamTranslator(XMLElementEx *TranslatorXML)

[protected] void TopicBase::ConfigureStringTopicChannels(XMLElementEx *topicXML, ServerIO::Translator::TranslatorChannelGroup *parentGroup)

[protected] void TopicBase::ConfigureSubTopics(XMLElementEx *element)

[protected] void TopicBase::ConfigureTranslator(XMLElementEx *element)

[protected] void TopicBase::ConfigureTriggering(XMLElementEx *element)

[protected] void TopicBase::ConfigureValueMapper(XMLElementEx *element)

[static] TopicBase *TopicBase::CreateNew(std::string &model)

[protected] void TopicBase::CreatePropertyBaseObject(XMLElementEx *element)

void TopicBase::DeregisterSendOnChanges()

[virtual] void TopicBase::Destroy()

[protected] void TopicBase::EncodeMessageParameters(MessagePacket &packet, unsigned int command, const std::string &payload) const

[override virtual protected] void TopicBase::FillNodeChildren(CDP::StudioAPI::NodeStream &stream) const

[override virtual protected] void TopicBase::FlagForSend()

[override virtual protected] void TopicBase::FlagForSend(const std::string &arguments)

[override virtual protected] const std::string TopicBase::GetNodeName() const

[override virtual protected] std::string TopicBase::GetNodeTypeName() const

[override virtual protected] CDP::StudioAPI::CDPValueType TopicBase::GetNodeValueType() const

[protected] PublishData TopicBase::GetPublishDataFromMessage(const MessagePacketHandle &message) const

[override virtual protected] CDP::StudioAPI::CDPVariantValue TopicBase::GetVariantValue() const

[protected] CDP::StudioAPI::CDPNode *TopicBase::InheritedTranslator() const

void TopicBase::MQTTOnConnect()

[protected] bool TopicBase::MQTTPublishTopic(const PublishData &data)

[protected] void TopicBase::MQTTPublishTopicOnChannelChange()

[protected] void TopicBase::MQTTPublishTopicOnMessageQueue()

void TopicBase::MQTTReceive(const mosquitto_message *mqttMessage, const mosquitto_property *properties)

void TopicBase::MQTTSubscribeOrPublish(double cycleStartTime)

[protected] void TopicBase::MQTTSubscribeTopic()

[protected] bool TopicBase::MessageTopicMatches(char *incomingMessageTopic)

std::string TopicBase::Name() const

[protected] void TopicBase::NotifySubTopicsSomeValueMapHasChanged()

MQTTClient *TopicBase::ParentComp() const

[protected] std::string TopicBase::ParentTopicsPath() const

[protected] void TopicBase::QueueToSend(const MessagePacketHandle &message)

[override virtual protected] bool TopicBase::RemoveChild(const std::string &name)

[protected] void TopicBase::SendOnMQTTReceiveMessages(const std::string &payload)

[override virtual protected] void TopicBase::SetVariantValue(const CDP::StudioAPI::CDPVariantValue &value)

[protected] void TopicBase::SyncChannelValuesOut()

[protected] std::string TopicBase::TopicValue()

[protected] std::string TopicBase::TopicsPath() const

[static protected] void TopicBase::UpdateOutputChannelValue(const ServerIO::Translator::TranslatorChannelGroup &channelTree, const CDPUtils::Parameter &argument)

void TopicBase::UpdateReportedConfigurationFaults()

[protected] void TopicBase::UpdateValueMapper(ServerIO::Translator::ValueMapper *valueMapper)

[protected] void TopicBase::UpdateValueMapperTree()

[protected] void TopicBase::ValueChanged(CDP::StudioAPI::ICDPNode *node, const CDP::StudioAPI::CDPVariantValue &oldValue, const CDP::StudioAPI::CDPVariantValue &newValue)

The content of this document is confidential information not to be published without the consent of CDP Technologies AS.

CDP Technologies AS, www.cdpstudio.com

Get started with CDP Studio today

Let us help you take your great ideas and turn them into the products your customer will love.

Try CDP Studio for free
Why CDP Studio?

CDP Technologies AS
Hundsværgata 8,
P.O. Box 144
6001 Ålesund, Norway

Tel: +47 990 80 900
E-mail: info@cdptech.com

Company

About CDP

Contact us

Services

Partners

Blog

Developers

Get started

User manuals

Support

Document download

Release notes

My account

Follow CDP

  • LinkedIn
  • YouTube
  • GitHub

© Copyright 2025 CDP Technologies. Privacy and cookie policy.

Return to top