ICDPExternalTypes Class
(CDP::ExternalTypes::ICDPExternalTypes)An interface class to provide the external type support for CDP More...
| Header: | #include <ICDPExternalTypes> |
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.
Get started with CDP Studio today
Let us help you take your great ideas and turn them into the products your customer will love.