com::pcbsys::nirvana::nAdminAPI::nLinkNode Class Reference

Since the Nirvana namespace can contain multiple links to Nirvana Realm servers at different parts of the namespace, including namespace loops, this node represents a RealmServer which has been mounted elsewhere in the namespace. More...

#include <nLinkNode.h>

Inheritance diagram for com::pcbsys::nirvana::nAdminAPI::nLinkNode:
com::pcbsys::nirvana::nAdminAPI::nContainer com::pcbsys::nirvana::nAdminAPI::nRemovable com::pcbsys::nirvana::nAdminAPI::nNode

Public Member Functions

virtual void closed (nRealmNode *pNode)
 Called when a realm node is closed, for internal use only. More...
 
virtual nRealmNodegetRealmNode ()
 Returns the actual nRealmNode to the application. More...
 
virtual int getType ()
 Returns the type of this object, for internal use only. More...
 
virtual bool IsRemovable ()
 Returns true if the node is removable. More...
 
 nLinkNode (nRealmNode *pNode, nNode *pParent, const std::string &mntPnt)
 Construct a new nLinkNode. More...
 
virtual void remove (bool removeChildren)
 This method enables the removal of the object from the namespace, in this case an nRealmNode from the namespace. More...
 
- Public Member Functions inherited from com::pcbsys::nirvana::nAdminAPI::nContainer
void addACLEntries (nACL *pAcl, nNode **ppNodes=NULL, int numNode=0)
 Adds an acl to the list of nodes. More...
 
virtual void addACLEntry (nACLEntry *pEntry, bool bAllChannels=true, bool bAllQueues=true, bool bAllServices=true)
 Adds a specific acl entry to all known nodes within the nContainer node. More...
 
virtual nNodefindNode (std::string name)
 Given a name of the form /container/container/name this function will locate the name object and return it, or null if that object can not be found. More...
 
virtual nNodefindNode (nNode *pNode)
 Given a name of the form /container/container/name this function will locate the nNode object and return it, or null if that can not be found. More...
 
virtual nNodefindNode (nNode *pNode, bool searchChildren)
 Given a name of the form /container/container/name this function will locate the name object and return it, or null if that can not be found. More...
 
virtual nNodegetNextSibling (int idx=0)
 In findnode we were calling getNextSibling and occassionally hitting an nDataStreamNode. More...
 
virtual fSortedList
< std::string, nNode * > & 
getNodes ()
 Returns an fSortedList of all the nodes under this container. More...
 
virtual nRealmNodegetRealmAt (std::string name)
 Given a mount point this function will return a realm if one exists at the specified mount point. More...
 
virtual int getTotalNodes ()
 Returns the total number of nodes within this container and all subsequent children by traversing the entire structure beneath this container node. More...
 
virtual bool hasRealmAt (std::string name)
 Given a mount point this function will determine if this container contains a mounted realm at the specified mount point. More...
 
void modACLEntries (nACL *pAcl, nNode **ppNodes=NULL, int numNode=0)
 Modifies an existing acl for the list of nodes. More...
 
virtual void modACLEntry (nACLEntry *pEntry, bool bAllChannels=true, bool bAllQueues=true, bool bAllServices=true)
 modifies a specific acl entry's permissions for all known nodes within the nContainer node. More...
 
void removeACLEntries (nACL *pAcl, nNode **ppNodes=NULL, int numNode=0)
 Removes the contents of an acl list from the list of nodes. More...
 
virtual void removeACLEntry (nACLEntry *pEntry, bool bAllChannels=true, bool bAllQueues=true, bool bAllServices=true)
 removes a specific acl entry from all known nodes within the nContainer node. More...
 
virtual void setACL (nACL *pAcl, bool allChannels=true, bool allQueues=true, bool allServices=true)
 Changes the entire ACL entries for the selected nodes with the new ACL passed in. More...
 
- Public Member Functions inherited from com::pcbsys::nirvana::nAdminAPI::nNode
virtual BitArray * convertLong (longlong priv)
 Converts from a long to a bitArray used to specify ACL properties. More...
 
virtual nACLEntrycreateACLEntry (const std::string &subject, BitArray *pBs)
 Adds a specific acl entry to the leaf node acl. More...
 
virtual nACLEntrycreateACLEntry (nSecurityGroup *grp, BitArray *pBs)
 Adds a specific security group to the leaf node acl. More...
 
virtual bool Equals (nNode *pItem)
 Check if this nNode is the same as the nNode passed in. More...
 
virtual bool Equals (const std::string &item)
 Check if the string passed in matches the name of this nNode. More...
 
virtual const std::string & getAbsolutePath ()
 This function walks the tree to the root to generate a fully qualified name for this node. More...
 
const std::string & getInternalName ()
 Returns the name of this nNode. More...
 
const std::string & getName ()
 Returns the name of the node. More...
 
virtual nNodegetParent ()
 Returns this nodes parent node. More...
 
virtual std::string getRelativePath (nNode *pTop)
 This method returns the relative path from this node to the nNode passed. More...
 

Detailed Description

Since the Nirvana namespace can contain multiple links to Nirvana Realm servers at different parts of the namespace, including namespace loops, this node represents a RealmServer which has been mounted elsewhere in the namespace.

It is basically a placeholder within the namespace and can be used by the application to stop looping through the namespace and to render the node differently or perhaps display a link between this node and the other nRealmNode.

See Also
nRealmNode

Constructor & Destructor Documentation

com::pcbsys::nirvana::nAdminAPI::nLinkNode::nLinkNode ( nRealmNode pNode,
nNode pParent,
const std::string &  mntPnt 
)

Construct a new nLinkNode.

Parameters
*pNodethe actual realm node to be added
*pParentthe parent of this node
mntPntthe mount point for this node

Member Function Documentation

virtual void com::pcbsys::nirvana::nAdminAPI::nLinkNode::closed ( nRealmNode pNode)
virtual

Called when a realm node is closed, for internal use only.

Parameters
*pNodethe node which has been closed

Reimplemented from com::pcbsys::nirvana::nAdminAPI::nContainer.

virtual nRealmNode* com::pcbsys::nirvana::nAdminAPI::nLinkNode::getRealmNode ( )
virtual

Returns the actual nRealmNode to the application.

See Also
nRealmNode
Returns
nRealmNode object of the real Realm Server
virtual int com::pcbsys::nirvana::nAdminAPI::nLinkNode::getType ( )
virtual

Returns the type of this object, for internal use only.

Returns
the type of the object

Reimplemented from com::pcbsys::nirvana::nAdminAPI::nContainer.

virtual bool com::pcbsys::nirvana::nAdminAPI::nLinkNode::IsRemovable ( )
virtual

Returns true if the node is removable.

Returns
true if the node is removable, false otherwise

Reimplemented from com::pcbsys::nirvana::nAdminAPI::nNode.

virtual void com::pcbsys::nirvana::nAdminAPI::nLinkNode::remove ( bool  removeChildren)
virtual

This method enables the removal of the object from the namespace, in this case an nRealmNode from the namespace.

If you specify true, all child nodes, including channels, queues and services will also be removed from the realm before removing it from its parent

Parameters
removeChildrena boolean specifying whether siblings should be removed too
Exceptions
nUnsupportedRemoveExceptionthrown if remove is not supported (e.g. on the namespace root Realm)
nNodeExceptionis thrown if an error occurs in the remove operation
See Also
nLeafNode
nRealmNode

Implements com::pcbsys::nirvana::nAdminAPI::nRemovable.