ICDPNode Class
(CDP::StudioAPI::ICDPNode)| Inherited By: |
Public Functions
| virtual | ~ICDPNode() |
| virtual bool | AddChild(const std::string &name, const std::string &typeName, const std::string &configuration) = 0 |
| virtual void | FillNodeChildren(NodeStream &serializer) const = 0 |
| virtual const ICDPNode * | GetChild(const std::string &pathInParent) const |
| virtual std::vector<const ICDPNode *> | GetChildren() const |
| virtual CDPNodePermissionFlags | GetEffectivePermissionFlags(const std::shared_ptr<IAuthSession> &session) const |
| virtual std::shared_ptr<ICDPNodeAPI> | GetNodeAPI() const = 0 |
| virtual unsigned int | GetNodeID() const = 0 |
| virtual std::string | GetNodeLongName() const |
| virtual CDPNodeModeFlags | GetNodeModeFlags() const = 0 |
| virtual const std::string | GetNodeName() const = 0 |
| virtual ICDPNode * | GetNodeOwner() const = 0 |
| virtual CDPNodeType | GetNodeType() const = 0 |
| virtual std::string | GetNodeTypeName() const = 0 |
| virtual CDPValueType | GetNodeValueType() const = 0 |
| virtual INodePermissions * | GetPermissionHandler() const |
| virtual CDPVariantValue | GetVariantValue() const = 0 |
| virtual bool | IsNodeAbsorbed() const = 0 |
| virtual bool | IsNodeLocal() const = 0 |
| virtual bool | IsNodeReparented() const = 0 |
| virtual bool | RemoveChild(const std::string &name) = 0 |
| virtual void | SetNodeOwner(ICDPNode *parent) const = 0 |
| virtual void | SetVariantValue(const CDPVariantValue &value) = 0 |
Member Function Documentation
[virtual] ICDPNode::~ICDPNode()
Destroys the instance of ICDPNode. The destructor is virtual.
[pure virtual] bool ICDPNode::AddChild(const std::string &name, const std::string &typeName, const std::string &configuration)
[pure virtual] void ICDPNode::FillNodeChildren(NodeStream &serializer) const
[virtual] const ICDPNode *ICDPNode::GetChild(const std::string &pathInParent) const
Returns a child node with a matching fullPath if it is published through the FillNodeChildren method.
Warning: CDPComponent children can run in a different thread context. It is not recommended to access them directly using this method (use instead a CDPConnector to send messages) but if you do, remember to lock the member access mutex:
auto child = GetChild("MyComponent"); if (child->GetNodeType() == CDP::StudioAPI::eCDP_COMPONENT_NODE) { // Note: Consider using a CDPConnector instead of directly accessing a subcomponent pointer if (auto subcomponent = const_cast<CDPComponent*>(dynamic_cast<const CDPComponent*>(child))) { OSAPIMutexLocker lock(subcomponent->GetMemberAccessMutex()); ProcessChild(subcomponent); } } else // Non-component children always run in my thread context ProcessChild(child);
[virtual] std::vector<const ICDPNode *> ICDPNode::GetChildren() const
Returns a list of child nodes published through the FillNodeChildren method.
Warning: CDPComponent children can run in a different thread context. It is not recommended to access them directly using this method (use instead a CDPConnector to send messages) but if you do, remember to lock the member access mutex:
for (auto child : GetChildren()); { if (child->GetNodeType() == CDP::StudioAPI::eCDP_COMPONENT_NODE) { if (auto subcomponent = const_cast<CDPComponent*>(dynamic_cast<const CDPComponent*>(child))) { // Note: Consider using a CDPConnector instead of directly accessing a subcomponent pointer OSAPIMutexLocker lock(subcomponent->GetMemberAccessMutex()); ProcessChild(subcomponent); } } else // Non-component children always run in my thread context ProcessChild(child); }
[virtual] CDPNodePermissionFlags ICDPNode::GetEffectivePermissionFlags(const std::shared_ptr<IAuthSession> &session) const
[pure virtual] std::shared_ptr<ICDPNodeAPI> ICDPNode::GetNodeAPI() const
[pure virtual] unsigned int ICDPNode::GetNodeID() const
[virtual] std::string ICDPNode::GetNodeLongName() const
Returns the full path of the node, e.g. "MyApp.MyComp.MyObject.MyNode".
[pure virtual] CDPNodeModeFlags ICDPNode::GetNodeModeFlags() const
[pure virtual] const std::string ICDPNode::GetNodeName() const
[pure virtual] ICDPNode *ICDPNode::GetNodeOwner() const
[pure virtual] CDPNodeType ICDPNode::GetNodeType() const
[pure virtual] std::string ICDPNode::GetNodeTypeName() const
[pure virtual] CDPValueType ICDPNode::GetNodeValueType() const
[virtual] INodePermissions *ICDPNode::GetPermissionHandler() const
[pure virtual] CDPVariantValue ICDPNode::GetVariantValue() const
[pure virtual] bool ICDPNode::IsNodeAbsorbed() const
[pure virtual] bool ICDPNode::IsNodeLocal() const
[pure virtual] bool ICDPNode::IsNodeReparented() const
[pure virtual] bool ICDPNode::RemoveChild(const std::string &name)
[pure virtual] void ICDPNode::SetNodeOwner(ICDPNode *parent) const
[pure virtual] void ICDPNode::SetVariantValue(const CDPVariantValue &value)
Get started with CDP Studio today
Let us help you take your great ideas and turn them into the products your customer will love.