• 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
    • CDP Linux
  • Services
  • Use cases
  • Pricing
  • Try CDP

CDP Studio Documentation

  • Framework - CDP Core
  • ICDPExternalTypes
  • 5.1.0

ICDPExternalTypes Class

(CDP::ExternalTypes::ICDPExternalTypes)

An interface class to provide the external type support for CDP More...

Header: #include <ICDPExternalTypes>
  • List of all members, including inherited members

Public Functions

ICDPExternalTypes()
virtual ~ICDPExternalTypes() = default
virtual std::shared_ptr<ICDPNodeContext> CreateNodeContext(const CDP::StudioAPI::ICDPNode *node, const std::string &externalType, std::function<void( const CDP::StudioAPI::CDPVariantValue & ) > onValueChange, std::function<void( const CDP::StudioAPI::CDPVariantValue & ) > onInternalValueChange, std::function<void( const std::string & ) > onError = {}) = 0
virtual bool IsHandlerAvailable(const std::string &externalType) const = 0
virtual bool IsNodeValueLoadFinished() const = 0
virtual bool IsVariantValueType(const std::string &externalType) const = 0
virtual void RequestMetadata(const std::shared_ptr<ICDPNodeContext> &node, std::function<void( const CDP::StudioAPI::Metadata & ) > finally = {}) = 0
virtual void RequestMetadataUpdate(const std::shared_ptr<ICDPNodeContext> &node, const CDP::StudioAPI::MetadataUpdate &metadata, std::function<void( const CDP::StudioAPI::Metadata & ) > finally = {}) = 0
virtual void RequestVariantValue(const std::shared_ptr<ICDPNodeContext> &node, std::function<void( const CDP::StudioAPI::CDPVariantValue & ) > finally = {}) = 0

Static Public Members

ICDPExternalTypes *GetProvider()

Detailed Description

An interface class to provide the external type support for CDP

Member Function Documentation

ICDPExternalTypes::ICDPExternalTypes()

Constructor that registers the external type provider instance.

[default] ICDPExternalTypes::~ICDPExternalTypes()

Destroys the instance of ICDPExternalTypes. The destructor is virtual.

[pure virtual] std::shared_ptr<ICDPNodeContext> ICDPExternalTypes::CreateNodeContext(const CDP::StudioAPI::ICDPNode *node, const std::string &externalType, std::function<void( const CDP::StudioAPI::CDPVariantValue & ) > onValueChange, std::function<void( const CDP::StudioAPI::CDPVariantValue & ) > onInternalValueChange, std::function<void( const std::string & ) > onError = {})

Will allocate and return an ICDPNodeContext object that can be passed to the external type handler methods.

[static] ICDPExternalTypes *ICDPExternalTypes::GetProvider()

Gets the global external type provider instance.

[pure virtual] bool ICDPExternalTypes::IsHandlerAvailable(const std::string &externalType) const

Check if the external type handler is available in the system

[pure virtual] bool ICDPExternalTypes::IsNodeValueLoadFinished() const

Check if the external type provider has finished loading the initial values for all nodes (for all external types). If this returns false, then the value of some nodes may not be available yet.

[pure virtual] bool ICDPExternalTypes::IsVariantValueType(const std::string &externalType) const

Check if the external type represents a seamless variant (i.e. non-BLOB) external value (like SQLiteValue)

[pure virtual] void ICDPExternalTypes::RequestMetadata(const std::shared_ptr<ICDPNodeContext> &node, std::function<void( const CDP::StudioAPI::Metadata & ) > finally = {})

Request the metadata for the node. After the request is completed the metadata can be retrieved via ICDPNodeContext::GetMetadata() method.

[pure virtual] void ICDPExternalTypes::RequestMetadataUpdate(const std::shared_ptr<ICDPNodeContext> &node, const CDP::StudioAPI::MetadataUpdate &metadata, std::function<void( const CDP::StudioAPI::Metadata & ) > finally = {})

[pure virtual] void ICDPExternalTypes::RequestVariantValue(const std::shared_ptr<ICDPNodeContext> &node, std::function<void( const CDP::StudioAPI::CDPVariantValue & ) > finally = {})

Request the external type value for the node for seamless (non-binary, i.e. Variant) external value (like SQLiteValue). Usually not needed to be called as will be called automatically during CreateNodeContext() for variant value external types.

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 2026 CDP Technologies. Privacy and cookie policy.

Return to top