VOS::VobjectExtension Class Reference
[libvos]
#include <vos/vos/vobjectextension.hh>
Inheritance diagram for VOS::VobjectExtension:

Detailed Description
Virtual Object System extension interface.Allows you to hook into various methods on a Vobject to extend their functionality. You want to subclass this and override the methods you are interested in. The pre_ methods are called prior to running the default behavior of the method. The post_ methods are run after the default behavior of the method has executed. If you return false or a non-null value (depending on the particular method) from a pre_ method this will prevent the default behavior from being run, meaning it will return after running all the pre_ extensions; this also means it will also skip running any post_ methods.
Definition at line 78 of file vobjectextension.hh.
Public Member Functions
- virtual ~VobjectExtension ()
- virtual void extensionAttachedTo (VobjectBase *vb)
- virtual void destroy ()
- virtual TypeSetIterator * pre_getTypes (VobjectState &state, boost::recursive_mutex::scoped_lock &state_lock, Vobject *requester)
- virtual ParentSetIterator * pre_getParents (VobjectState &state, boost::recursive_mutex::scoped_lock &state_lock, Vobject *requester)
- virtual ChildListIterator * pre_getChildren (VobjectState &state, boost::recursive_mutex::scoped_lock &state_lock, Vobject *requester, int start, int end)
- virtual int pre_numChildren (VobjectState &state, boost::recursive_mutex::scoped_lock &state_lock, Vobject *requester)
- virtual VUtil::vRef< ParentChildRelation > pre_findObject (VobjectState &state, boost::recursive_mutex::scoped_lock &state_lock, Vobject *requester, const std::string &path)
- virtual VUtil::vRef< ParentChildRelation > pre_findChild (VobjectState &state, boost::recursive_mutex::scoped_lock &state_lock, Vobject *requester, const std::string &path)
- virtual VUtil::vRef< ParentChildRelation > pre_findChild (VobjectState &state, boost::recursive_mutex::scoped_lock &state_lock, Vobject *requester, int pos)
- virtual VUtil::vRef< ParentChildRelation > pre_findParent (VobjectState &state, boost::recursive_mutex::scoped_lock &state_lock, Vobject *requester, Vobject &parent)
- virtual bool pre_addType (VobjectState &state, boost::recursive_mutex::scoped_lock &state_lock, Vobject *requester, const std::string &s)
- virtual void post_addType (VobjectState &state, boost::recursive_mutex::scoped_lock &state_lock, Vobject *requester, const std::string &s)
- virtual bool pre_removeType (VobjectState &state, boost::recursive_mutex::scoped_lock &state_lock, Vobject *requester, const std::string &s)
- virtual void post_removeType (VobjectState &state, boost::recursive_mutex::scoped_lock &state_lock, Vobject *requester, const std::string &s)
- virtual bool pre_insertChild (VobjectState &state, boost::recursive_mutex::scoped_lock &state_lock, Vobject *requester, int position, const std::string &contextual_name, Vobject *child)
- virtual void post_insertChild (VobjectState &state, boost::recursive_mutex::scoped_lock &state_lock, Vobject *requester, int position, const std::string &contextual_name, Vobject *child)
- virtual bool pre_setChild (VobjectState &state, boost::recursive_mutex::scoped_lock &state_lock, Vobject *requester, int position, const std::string &contextual_name, Vobject *child)
- virtual void post_setChild (VobjectState &state, boost::recursive_mutex::scoped_lock &state_lock, Vobject *requester, int position, const std::string &contextual_name, Vobject *child, const std::string &oldcontextual_name, Vobject *oldchild)
- virtual bool pre_removeChild (VobjectState &state, boost::recursive_mutex::scoped_lock &state_lock, Vobject *requester, ParentChildRelation *pcr, bool strict)
- virtual void post_removeChild (VobjectState &state, boost::recursive_mutex::scoped_lock &state_lock, Vobject *requester, ParentChildRelation *pcr, bool strict)
- virtual bool pre_addTypeListener (VobjectState &state, boost::recursive_mutex::scoped_lock &state_lock, Vobject *requester, TypeChangeListener *t, bool refresh)
- virtual void post_addTypeListener (VobjectState &state, boost::recursive_mutex::scoped_lock &state_lock, Vobject *requester, TypeChangeListener *t, bool refresh)
- virtual bool pre_removeTypeListener (VobjectState &state, boost::recursive_mutex::scoped_lock &state_lock, Vobject *requester, TypeChangeListener *t)
- virtual void post_removeTypeListener (VobjectState &state, boost::recursive_mutex::scoped_lock &state_lock, Vobject *requester, TypeChangeListener *t)
- virtual bool pre_addChildListener (VobjectState &state, boost::recursive_mutex::scoped_lock &state_lock, Vobject *requester, ChildChangeListener *t, bool refresh)
- virtual void post_addChildListener (VobjectState &state, boost::recursive_mutex::scoped_lock &state_lock, Vobject *requester, ChildChangeListener *t, bool refresh)
- virtual bool pre_removeChildListener (VobjectState &state, boost::recursive_mutex::scoped_lock &state_lock, Vobject *requester, ChildChangeListener *t)
- virtual void post_removeChildListener (VobjectState &state, boost::recursive_mutex::scoped_lock &state_lock, Vobject *requester, ChildChangeListener *t)
- virtual bool pre_addParentListener (VobjectState &state, boost::recursive_mutex::scoped_lock &state_lock, Vobject *requester, ParentChangeListener *t, bool refresh)
- virtual void post_addParentListener (VobjectState &state, boost::recursive_mutex::scoped_lock &state_lock, Vobject *requester, ParentChangeListener *t, bool refresh)
- virtual bool pre_removeParentListener (VobjectState &state, boost::recursive_mutex::scoped_lock &state_lock, Vobject *requester, ParentChangeListener *t)
- virtual void post_removeParentListener (VobjectState &state, boost::recursive_mutex::scoped_lock &state_lock, Vobject *requester, ParentChangeListener *t)
- virtual StringIterator * pre_getPolicy (AccessControlState *acs, Vobject *requester, const std::string &domain, Identity *id)
- virtual StringIterator * pre_getAvailablePolicies (AccessControlState *acs, Vobject *requester, const std::string &domain)
- virtual bool pre_addToACL (AccessControlState *acs, Vobject *requester, const std::string &ACLname, Vobject *id)
- virtual void post_addToACL (AccessControlState *acs, Vobject *requester, const std::string &ACLname, Vobject *id, const std::string &oldACLname)
- virtual bool pre_removeFromACL (AccessControlState *acs, Vobject *requester, const std::string &ACLname, Vobject *id)
- virtual void post_removeFromACL (AccessControlState *acs, Vobject *requester, const std::string &ACLname, Vobject *id)
- virtual bool pre_deleteACL (AccessControlState *acs, Vobject *requester, const std::string &policies)
- virtual void post_deleteACL (AccessControlState *acs, Vobject *requester, const std::string &policies, AccessControlList *oldacl)
- virtual std::string pre_getDefaultPolicy (AccessControlState *acs, Vobject *requester, const std::string &domain)
- virtual bool pre_setDefaultPolicy (AccessControlState *acs, Vobject *requester, const std::string &policy)
- virtual void post_setDefaultPolicy (AccessControlState *acs, Vobject *requester, const std::string &policy, const std::string &oldpolicy)
- virtual ACLIterator * pre_getAllACLs (AccessControlState *acs, Vobject *requester)
Constructor & Destructor Documentation
| virtual VOS::VobjectExtension::~VobjectExtension | ( | ) | [inline, virtual] |
Definition at line 81 of file vobjectextension.hh.
Member Function Documentation
| virtual void VOS::VobjectExtension::destroy | ( | ) | [inline, virtual] |
Destry this extension.
By default will do "delete this" but can be overridden if that's not what you want (such as if the extension is shared among several Vobjects.)
Reimplemented in VOS::FileSystemPersistance, VOS::VersionedVobject, and VOS::SQLPersistance.
Definition at line 89 of file vobjectextension.hh.
| virtual void VOS::VobjectExtension::extensionAttachedTo | ( | VobjectBase * | vb | ) | [inline, virtual] |
| virtual void VOS::VobjectExtension::post_addChildListener | ( | VobjectState & | state, | |
| boost::recursive_mutex::scoped_lock & | state_lock, | |||
| Vobject * | requester, | |||
| ChildChangeListener * | t, | |||
| bool | refresh | |||
| ) | [inline, virtual] |
Definition at line 186 of file vobjectextension.hh.
| virtual void VOS::VobjectExtension::post_addParentListener | ( | VobjectState & | state, | |
| boost::recursive_mutex::scoped_lock & | state_lock, | |||
| Vobject * | requester, | |||
| ParentChangeListener * | t, | |||
| bool | refresh | |||
| ) | [inline, virtual] |
Definition at line 200 of file vobjectextension.hh.
| virtual void VOS::VobjectExtension::post_addToACL | ( | AccessControlState * | acs, | |
| Vobject * | requester, | |||
| const std::string & | ACLname, | |||
| Vobject * | id, | |||
| const std::string & | oldACLname | |||
| ) | [inline, virtual] |
Reimplemented in VOS::FileSystemPersistance, VOS::RevisionControlPersistance, VOS::VersionedVobject, and VOS::SQLPersistance.
Definition at line 221 of file vobjectextension.hh.
| virtual void VOS::VobjectExtension::post_addType | ( | VobjectState & | state, | |
| boost::recursive_mutex::scoped_lock & | state_lock, | |||
| Vobject * | requester, | |||
| const std::string & | s | |||
| ) | [inline, virtual] |
Reimplemented in VOS::FileSystemPersistance, VOS::RevisionControlPersistance, VOS::VersionedVobject, and VOS::SQLPersistance.
Definition at line 127 of file vobjectextension.hh.
| virtual void VOS::VobjectExtension::post_addTypeListener | ( | VobjectState & | state, | |
| boost::recursive_mutex::scoped_lock & | state_lock, | |||
| Vobject * | requester, | |||
| TypeChangeListener * | t, | |||
| bool | refresh | |||
| ) | [inline, virtual] |
Definition at line 172 of file vobjectextension.hh.
| virtual void VOS::VobjectExtension::post_deleteACL | ( | AccessControlState * | acs, | |
| Vobject * | requester, | |||
| const std::string & | policies, | |||
| AccessControlList * | oldacl | |||
| ) | [inline, virtual] |
Reimplemented in VOS::FileSystemPersistance, VOS::RevisionControlPersistance, and VOS::SQLPersistance.
Definition at line 233 of file vobjectextension.hh.
| virtual void VOS::VobjectExtension::post_insertChild | ( | VobjectState & | state, | |
| boost::recursive_mutex::scoped_lock & | state_lock, | |||
| Vobject * | requester, | |||
| int | position, | |||
| const std::string & | contextual_name, | |||
| Vobject * | child | |||
| ) | [inline, virtual] |
Reimplemented in VOS::FileSystemPersistance, VOS::RevisionControlPersistance, VOS::VersionedVobject, and VOS::SQLPersistance.
Definition at line 143 of file vobjectextension.hh.
| virtual void VOS::VobjectExtension::post_removeChild | ( | VobjectState & | state, | |
| boost::recursive_mutex::scoped_lock & | state_lock, | |||
| Vobject * | requester, | |||
| ParentChildRelation * | pcr, | |||
| bool | strict | |||
| ) | [inline, virtual] |
Reimplemented in VOS::FileSystemPersistance, VOS::RevisionControlPersistance, VOS::VersionedVobject, and VOS::SQLPersistance.
Definition at line 164 of file vobjectextension.hh.
| virtual void VOS::VobjectExtension::post_removeChildListener | ( | VobjectState & | state, | |
| boost::recursive_mutex::scoped_lock & | state_lock, | |||
| Vobject * | requester, | |||
| ChildChangeListener * | t | |||
| ) | [inline, virtual] |
| virtual void VOS::VobjectExtension::post_removeFromACL | ( | AccessControlState * | acs, | |
| Vobject * | requester, | |||
| const std::string & | ACLname, | |||
| Vobject * | id | |||
| ) | [inline, virtual] |
Reimplemented in VOS::FileSystemPersistance, VOS::RevisionControlPersistance, VOS::VersionedVobject, and VOS::SQLPersistance.
Definition at line 228 of file vobjectextension.hh.
| virtual void VOS::VobjectExtension::post_removeParentListener | ( | VobjectState & | state, | |
| boost::recursive_mutex::scoped_lock & | state_lock, | |||
| Vobject * | requester, | |||
| ParentChangeListener * | t | |||
| ) | [inline, virtual] |
| virtual void VOS::VobjectExtension::post_removeType | ( | VobjectState & | state, | |
| boost::recursive_mutex::scoped_lock & | state_lock, | |||
| Vobject * | requester, | |||
| const std::string & | s | |||
| ) | [inline, virtual] |
Reimplemented in VOS::FileSystemPersistance, VOS::RevisionControlPersistance, VOS::VersionedVobject, VOS::SQLPersistance, and VOS::RemoteVobject.
Definition at line 134 of file vobjectextension.hh.
| virtual void VOS::VobjectExtension::post_removeTypeListener | ( | VobjectState & | state, | |
| boost::recursive_mutex::scoped_lock & | state_lock, | |||
| Vobject * | requester, | |||
| TypeChangeListener * | t | |||
| ) | [inline, virtual] |
| virtual void VOS::VobjectExtension::post_setChild | ( | VobjectState & | state, | |
| boost::recursive_mutex::scoped_lock & | state_lock, | |||
| Vobject * | requester, | |||
| int | position, | |||
| const std::string & | contextual_name, | |||
| Vobject * | child, | |||
| const std::string & | oldcontextual_name, | |||
| Vobject * | oldchild | |||
| ) | [inline, virtual] |
Reimplemented in VOS::FileSystemPersistance, VOS::RevisionControlPersistance, VOS::VersionedVobject, and VOS::SQLPersistance.
Definition at line 154 of file vobjectextension.hh.
| virtual void VOS::VobjectExtension::post_setDefaultPolicy | ( | AccessControlState * | acs, | |
| Vobject * | requester, | |||
| const std::string & | policy, | |||
| const std::string & | oldpolicy | |||
| ) | [inline, virtual] |
Reimplemented in VOS::FileSystemPersistance, VOS::RevisionControlPersistance, VOS::VersionedVobject, and VOS::SQLPersistance.
Definition at line 242 of file vobjectextension.hh.
| virtual bool VOS::VobjectExtension::pre_addChildListener | ( | VobjectState & | state, | |
| boost::recursive_mutex::scoped_lock & | state_lock, | |||
| Vobject * | requester, | |||
| ChildChangeListener * | t, | |||
| bool | refresh | |||
| ) | [inline, virtual] |
| virtual bool VOS::VobjectExtension::pre_addParentListener | ( | VobjectState & | state, | |
| boost::recursive_mutex::scoped_lock & | state_lock, | |||
| Vobject * | requester, | |||
| ParentChangeListener * | t, | |||
| bool | refresh | |||
| ) | [inline, virtual] |
| virtual bool VOS::VobjectExtension::pre_addToACL | ( | AccessControlState * | acs, | |
| Vobject * | requester, | |||
| const std::string & | ACLname, | |||
| Vobject * | id | |||
| ) | [inline, virtual] |
Reimplemented in VOS::VersionedVobject, and VOS::RemoteVobject.
Definition at line 219 of file vobjectextension.hh.
| virtual bool VOS::VobjectExtension::pre_addType | ( | VobjectState & | state, | |
| boost::recursive_mutex::scoped_lock & | state_lock, | |||
| Vobject * | requester, | |||
| const std::string & | s | |||
| ) | [inline, virtual] |
Reimplemented in VOS::VersionedVobject, and VOS::RemoteVobject.
Definition at line 125 of file vobjectextension.hh.
| virtual bool VOS::VobjectExtension::pre_addTypeListener | ( | VobjectState & | state, | |
| boost::recursive_mutex::scoped_lock & | state_lock, | |||
| Vobject * | requester, | |||
| TypeChangeListener * | t, | |||
| bool | refresh | |||
| ) | [inline, virtual] |
| virtual bool VOS::VobjectExtension::pre_deleteACL | ( | AccessControlState * | acs, | |
| Vobject * | requester, | |||
| const std::string & | policies | |||
| ) | [inline, virtual] |
| virtual VUtil::vRef<ParentChildRelation> VOS::VobjectExtension::pre_findChild | ( | VobjectState & | state, | |
| boost::recursive_mutex::scoped_lock & | state_lock, | |||
| Vobject * | requester, | |||
| int | pos | |||
| ) | [inline, virtual] |
| virtual VUtil::vRef<ParentChildRelation> VOS::VobjectExtension::pre_findChild | ( | VobjectState & | state, | |
| boost::recursive_mutex::scoped_lock & | state_lock, | |||
| Vobject * | requester, | |||
| const std::string & | path | |||
| ) | [inline, virtual] |
| virtual VUtil::vRef<ParentChildRelation> VOS::VobjectExtension::pre_findObject | ( | VobjectState & | state, | |
| boost::recursive_mutex::scoped_lock & | state_lock, | |||
| Vobject * | requester, | |||
| const std::string & | path | |||
| ) | [inline, virtual] |
| virtual VUtil::vRef<ParentChildRelation> VOS::VobjectExtension::pre_findParent | ( | VobjectState & | state, | |
| boost::recursive_mutex::scoped_lock & | state_lock, | |||
| Vobject * | requester, | |||
| Vobject & | parent | |||
| ) | [inline, virtual] |
| virtual ACLIterator* VOS::VobjectExtension::pre_getAllACLs | ( | AccessControlState * | acs, | |
| Vobject * | requester | |||
| ) | [inline, virtual] |
| virtual StringIterator* VOS::VobjectExtension::pre_getAvailablePolicies | ( | AccessControlState * | acs, | |
| Vobject * | requester, | |||
| const std::string & | domain | |||
| ) | [inline, virtual] |
| virtual ChildListIterator* VOS::VobjectExtension::pre_getChildren | ( | VobjectState & | state, | |
| boost::recursive_mutex::scoped_lock & | state_lock, | |||
| Vobject * | requester, | |||
| int | start, | |||
| int | end | |||
| ) | [inline, virtual] |
| virtual std::string VOS::VobjectExtension::pre_getDefaultPolicy | ( | AccessControlState * | acs, | |
| Vobject * | requester, | |||
| const std::string & | domain | |||
| ) | [inline, virtual] |
| virtual ParentSetIterator* VOS::VobjectExtension::pre_getParents | ( | VobjectState & | state, | |
| boost::recursive_mutex::scoped_lock & | state_lock, | |||
| Vobject * | requester | |||
| ) | [inline, virtual] |
| virtual StringIterator* VOS::VobjectExtension::pre_getPolicy | ( | AccessControlState * | acs, | |
| Vobject * | requester, | |||
| const std::string & | domain, | |||
| Identity * | id | |||
| ) | [inline, virtual] |
| virtual TypeSetIterator* VOS::VobjectExtension::pre_getTypes | ( | VobjectState & | state, | |
| boost::recursive_mutex::scoped_lock & | state_lock, | |||
| Vobject * | requester | |||
| ) | [inline, virtual] |
| virtual bool VOS::VobjectExtension::pre_insertChild | ( | VobjectState & | state, | |
| boost::recursive_mutex::scoped_lock & | state_lock, | |||
| Vobject * | requester, | |||
| int | position, | |||
| const std::string & | contextual_name, | |||
| Vobject * | child | |||
| ) | [inline, virtual] |
Reimplemented in VOS::VersionedVobject, and VOS::RemoteVobject.
Definition at line 138 of file vobjectextension.hh.
| virtual int VOS::VobjectExtension::pre_numChildren | ( | VobjectState & | state, | |
| boost::recursive_mutex::scoped_lock & | state_lock, | |||
| Vobject * | requester | |||
| ) | [inline, virtual] |
| virtual bool VOS::VobjectExtension::pre_removeChild | ( | VobjectState & | state, | |
| boost::recursive_mutex::scoped_lock & | state_lock, | |||
| Vobject * | requester, | |||
| ParentChildRelation * | pcr, | |||
| bool | strict | |||
| ) | [inline, virtual] |
Reimplemented in VOS::VersionedVobject, and VOS::RemoteVobject.
Definition at line 160 of file vobjectextension.hh.
| virtual bool VOS::VobjectExtension::pre_removeChildListener | ( | VobjectState & | state, | |
| boost::recursive_mutex::scoped_lock & | state_lock, | |||
| Vobject * | requester, | |||
| ChildChangeListener * | t | |||
| ) | [inline, virtual] |
Definition at line 190 of file vobjectextension.hh.
| virtual bool VOS::VobjectExtension::pre_removeFromACL | ( | AccessControlState * | acs, | |
| Vobject * | requester, | |||
| const std::string & | ACLname, | |||
| Vobject * | id | |||
| ) | [inline, virtual] |
Reimplemented in VOS::VersionedVobject, and VOS::RemoteVobject.
Definition at line 225 of file vobjectextension.hh.
| virtual bool VOS::VobjectExtension::pre_removeParentListener | ( | VobjectState & | state, | |
| boost::recursive_mutex::scoped_lock & | state_lock, | |||
| Vobject * | requester, | |||
| ParentChangeListener * | t | |||
| ) | [inline, virtual] |
Definition at line 204 of file vobjectextension.hh.
| virtual bool VOS::VobjectExtension::pre_removeType | ( | VobjectState & | state, | |
| boost::recursive_mutex::scoped_lock & | state_lock, | |||
| Vobject * | requester, | |||
| const std::string & | s | |||
| ) | [inline, virtual] |
Reimplemented in VOS::VersionedVobject, and VOS::RemoteVobject.
Definition at line 131 of file vobjectextension.hh.
| virtual bool VOS::VobjectExtension::pre_removeTypeListener | ( | VobjectState & | state, | |
| boost::recursive_mutex::scoped_lock & | state_lock, | |||
| Vobject * | requester, | |||
| TypeChangeListener * | t | |||
| ) | [inline, virtual] |
Definition at line 176 of file vobjectextension.hh.
| virtual bool VOS::VobjectExtension::pre_setChild | ( | VobjectState & | state, | |
| boost::recursive_mutex::scoped_lock & | state_lock, | |||
| Vobject * | requester, | |||
| int | position, | |||
| const std::string & | contextual_name, | |||
| Vobject * | child | |||
| ) | [inline, virtual] |
Reimplemented in VOS::VersionedVobject, and VOS::RemoteVobject.
Definition at line 149 of file vobjectextension.hh.
| virtual bool VOS::VobjectExtension::pre_setDefaultPolicy | ( | AccessControlState * | acs, | |
| Vobject * | requester, | |||
| const std::string & | policy | |||
| ) | [inline, virtual] |
Reimplemented in VOS::VersionedVobject, and VOS::RemoteVobject.
Definition at line 240 of file vobjectextension.hh.
The documentation for this class was generated from the following file:
- /home/tetron/hack/vos/libs/vos/vos/vobjectextension.hh