interreality.org [VOS]
[Home] [About]
[Screenshots]
[Download]
[News]
[Community]
[Documentation] [Manual]
[Bugs & Requests] [Wiki]

/home/tetron/hack/vos/libs/vos/vos/localvobject.hh

Go to the documentation of this file.
00001 #ifndef _LOCALVOBJECT_HH_
00002 #define _LOCALVOBJECT_HH_
00003 
00004 #include <vos/vos/metaobject.hh>
00005 #include <vos/vos/vobjectbase.hh>
00006 
00007 namespace VOS {
00008     /** @class LocalVobject localvobject.hh vos/vos/localvobject.hh
00009         @ingroup libvos
00010 
00011         Implements handlers that service the standard set of core
00012         messages for interacting with this Vobject.
00013     */
00014     class VOS_API LocalVobject : public MetaObject
00015     {
00016     protected:
00017         template<class T> void setupHandlers()
00018     {
00019         VobjectBase::addMessageHandler<T>("core:find-child", &T::findObjectHandler);
00020         VobjectBase::addMessageHandler<T>("core:count-children", &T::countChildrenHandler);
00021         VobjectBase::addMessageHandler<T>("core:get-types", &T::getTypesHandler);
00022         VobjectBase::addMessageHandler<T>("core:get-parents", &T::getParentsHandler);
00023         VobjectBase::addMessageHandler<T>("core:set-child", &T::addChildHandler);
00024         VobjectBase::addMessageHandler<T>("core:insert-child", &T::addChildHandler);
00025         VobjectBase::addMessageHandler<T>("core:remove-child", &T::removeChildHandler);
00026         VobjectBase::addMessageHandler<T>("core:start-listening", &T::startListeningHandler);
00027         VobjectBase::addMessageHandler<T>("core:stop-listening", &T::stopListeningHandler);
00028         VobjectBase::addMessageHandler<T>("core:type-add", &T::typeAddHandler);
00029         VobjectBase::addMessageHandler<T>("core:type-remove", &T::typeRemoveHandler);
00030         VobjectBase::addMessageHandler<T>("core:get-available-policies", &T::getAvlPoliciesHandler);
00031         VobjectBase::addMessageHandler<T>("core:add-to-ACL", &T::addToACLHandler);
00032         VobjectBase::addMessageHandler<T>("core:remove-from-ACL", &T::removeFromACLHandler);
00033         VobjectBase::addMessageHandler<T>("core:delete-ACL", &T::deleteACLHandler);
00034         VobjectBase::addMessageHandler<T>("core:get-default-policy", &T::getDefaultPolicyHandler);
00035         VobjectBase::addMessageHandler<T>("core:set-default-policy", &T::setDefaultPolicyHandler);
00036         VobjectBase::addMessageHandler<T>("core:get-all-ACLs", &T::getAllACLsHandler);
00037         VobjectBase::addMessageHandler<T>("core:check-applied-policy", &T::getCheckAppliedPolicyHandler);
00038     }
00039 
00040     public:
00041         LocalVobject(VobjectBase* superobject);
00042 
00043         void findObjectHandler(Message* m);
00044         void countChildrenHandler(Message* m);
00045         void getTypesHandler(Message* m);
00046         void getParentsHandler(Message* m);
00047         void addChildHandler(Message* m);
00048         void removeChildHandler(Message* m);
00049         void startListeningHandler(Message* m);
00050         void stopListeningHandler(Message* m);
00051         void typeAddHandler(Message* m);
00052         void typeRemoveHandler(Message* m);
00053         void getAvlPoliciesHandler(Message* m);
00054         void addToACLHandler(Message* m);
00055         void removeFromACLHandler(Message* m);
00056         void deleteACLHandler(Message* m);
00057         void getDefaultPolicyHandler(Message* m);
00058         void setDefaultPolicyHandler(Message* m);
00059         void getAllACLsHandler(Message* m);
00060         void getCheckAppliedPolicyHandler(Message* m);
00061 
00062         virtual void doExcise();
00063     };
00064 }
00065 
00066 #endif