• 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

  • Why CDP
    • Software developers
    • Automation engineers
    • Managers
  • Product
    • Design UI
    • Develop
    • Analyze and test
    • Deploy
    • Framework and toolbox
    • Compatibility
  • Services
  • Use cases
  • Pricing
  • Try CDP

CDP Studio Documentation

  • Framework - CDP Core
  • StudioAPI Namespace
  • 4.11.3

StudioAPI Namespace

(CDP::StudioAPI)

Contains StudioAPI implementation classes More...

Header: #include <StudioAPI>

Classes

class AbsorbedChild
class AdoptedChild
class CDPNode
class CDPValueTypeConverter
class ICDPNode
class NodeStream

Types

enum CDPNodeMode { eNodeIsLeaf, eValueIsPersistent, eValueIsReadOnly, eNodeIsRemovable, ..., eNodeIsImportant }
typedef CDPNodeModeFlags
typedef CDPNodePermissionFlags
enum CDPNodePermissions { eNoAccess, eCanBrowse, eCanRead, eCanWrite, eCanWriteRolePermissions, eCanAddRemoveChildren }
enum CDPNodeType { eUNDEFINED_NODE, eCDP_SYSTEM_NODE, eCDP_APPLICATION_NODE, eCDP_COMPONENT_NODE, ..., eCDP_USERTYPE_NODE }
enum CDPValueType { eUNDEFINED, eDOUBLE, eUINT64, eINT64, ..., eVALUEUSERTYPE }
typedef NodeList

Functions

CDPNodePermissionFlags Permissions(const std::string &permissionString)
std::string Permissions(CDPNodePermissionFlags permissionFlags)

Detailed Description

Contains StudioAPI implementation classes

Classes

class AbsorbedChild

The AbsorbedChild is wrapper class to absorbe a composited node into parent during serialization. More...

class AdoptedChild

The AdoptedChild is used as a wrapper class to relocate a node in logical tree from its parent during serialization. More...

class CDPNode

The CDPNode is base class for all classes exposed through StudioAPI. More...

class CDPValueTypeConverter

The CDPValueTypeConverter is CDPValueType converter class. More...

class ICDPNode

class NodeStream

The NodeStream is helper class abstracting node serialization. More...

Type Documentation

enum StudioAPI::CDPNodeMode

CDPNodeMode defines possible runtime node flags that indicate some node characteristics.

Note: CDP::StudioAPI::CDPNodeMode duplicates StudioAPI::Proto::PBInfo::Flags and should not be changed

ConstantValueDescription
CDP::StudioAPI::eNodeIsLeaf1Node does not contain any other nodes.
CDP::StudioAPI::eValueIsPersistent2Nodes value is stored on change to be persistent across application runs.
CDP::StudioAPI::eValueIsReadOnly4Nodes value can not be changed.
CDP::StudioAPI::eNodeIsRemovable8Node can be removed from its parent.
CDP::StudioAPI::eNodeCanAddChildren16Node allows children to be added to itself.
CDP::StudioAPI::eNodeIsRenamable32Node can be renamed.
CDP::StudioAPI::eNodeIsInternal64Hint that node is part of internal implementation and should not be visible in UI.
CDP::StudioAPI::eNodeIsImportant128Hint that node is important and should always be visible in UI.

typedef StudioAPI::CDPNodeModeFlags

Utilizes CDP::Generic::Flags<T> to create a type safe flags class from CDP::StudioAPI::CDPNodeMode.

typedef StudioAPI::CDPNodePermissionFlags

enum StudioAPI::CDPNodePermissions

enum StudioAPI::CDPNodeType

CDPNodeType defines possible node cdp base types. This indicates the closest CDP base class of the node.

Note: Duplicates StudioAPIProtobuf::CDPNodeType and should not be changed.

ConstantValueDescription
CDP::StudioAPI::eUNDEFINED_NODE-1Node type is not defined for uninitialized nodes.
CDP::StudioAPI::eCDP_SYSTEM_NODE0Node representing a system.
CDP::StudioAPI::eCDP_APPLICATION_NODE1Node representing a application in system.
CDP::StudioAPI::eCDP_COMPONENT_NODE2Node representing a component in application or in parent component.
CDP::StudioAPI::eCDP_OBJECT_NODE3Node representing a object in component or application.
CDP::StudioAPI::eCDP_MESSAGE_NODE4Node representing a message in object, component or application.
CDP::StudioAPI::eCDP_BASE_OBJECT_NODE5Node representing a baseobject in component or application.
CDP::StudioAPI::eCDP_PROPERTY_NODE6Node representing a property in baseobject, object, component or application.
CDP::StudioAPI::eCDP_SETTING_NODE7Node representing a setting in property.
CDP::StudioAPI::eCDP_ENUM_NODE8Node representing a enum.
CDP::StudioAPI::eCDP_OPERATOR_BASE_NODE9Node representing a operatorbase.
CDP::StudioAPI::eCDP_NODE10Node representing simplest node.
CDP::StudioAPI::eCDP_USERTYPE_NODE100Not to be used. Start of Protocol buffer extension values.

enum StudioAPI::CDPValueType

This enum CDPValueType defines possible node value types.

Note: Duplicates StudioAPIProtobuf::CDPValueType and should not be changed.

ConstantValueDescription
CDP::StudioAPI::eUNDEFINED0Value type for non value nodes.
CDP::StudioAPI::eDOUBLE1C++ double type used for high precision real numbers.
CDP::StudioAPI::eUINT642C++ uint64_t type used for 64 bit unsigned natural numbers.
CDP::StudioAPI::eINT643C++ int64_t type used for 64 bit signed natural numbers.
CDP::StudioAPI::eFLOAT4C++ float type type used for low precision real numbers.
CDP::StudioAPI::eUINT5C++ unsigned int type used for 32 bit unsigned natural numbers.
CDP::StudioAPI::eINT6C++ int type used for 32 bit signed natural numbers.
CDP::StudioAPI::eUSHORT7C++ unsigned short type used for 16 bit unsigned natural numbers.
CDP::StudioAPI::eSHORT8C++ short type used for 16 bit signed natural numbers.
CDP::StudioAPI::eUCHAR9C++ unsigned char type used for 8 bit unsigned natural numbers.
CDP::StudioAPI::eCHAR10C++ char type used for 8 bit signed natural numbers.
CDP::StudioAPI::eBOOL11C++ bool type used for 1 bit true/false values.
CDP::StudioAPI::eSTRING12C++ string type used for text values.
CDP::StudioAPI::eVALUEUSERTYPE100Not to be used. Start of Protocol buffer extension values.

typedef StudioAPI::NodeList

Function Documentation

CDPNodePermissionFlags StudioAPI::Permissions(const std::string &permissionString)

std::string StudioAPI::Permissions(CDPNodePermissionFlags permissionFlags)

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

Follow CDP

  • LinkedIn
  • YouTube
  • GitHub

    © Copyright 2022 CDP Technologies. Privacy and cookie policy.

    Return to top