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.