/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
00009
00010
00011
00012
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