00001 /* 00002 Copyright 2007, 2008, 2009, 2010, 2011 Instituto de Sistemas e Robotica, Instituto Superior Tecnico 00003 00004 This file is part of MeRMaID. 00005 00006 MeRMaID is free software: you can redistribute it and/or modify 00007 it under the terms of the GNU Lesser General Public License as published by 00008 the Free Software Foundation, either version 3 of the License, or 00009 (at your option) any later version. 00010 00011 MeRMaID is distributed in the hope that it will be useful, 00012 but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 GNU Lesser General Public License for more details. 00015 00016 You should have received a copy of the GNU Lesser General Public License 00017 along with MeRMaID. If not, see <http://www.gnu.org/licenses/>. 00018 */ 00019 00020 00021 00022 #ifndef _UNITSERVICE_HPP__ 00023 #define _UNITSERVICE_HPP__ 00024 00025 #include <Service.hpp> 00026 #include <ActiveObject.hpp> 00027 00028 #include <Entity.hpp> 00029 #include <EntityDescription.hpp> 00030 #include <ServiceConfiguration.hpp> 00031 #include <vector> 00032 #include <map> 00033 #include <string> 00034 00035 namespace mermaid 00036 { 00037 namespace support 00038 { 00039 namespace unitgenerator 00040 { 00041 00042 using namespace std; 00043 using mermaid::support::service::Service; 00044 using mermaid::support::activeobject::ActiveObject; 00045 using boost::shared_ptr; 00046 using mermaid::support::service::Entity; 00047 using mermaid::support::service::ServiceConfiguration; 00048 using mermaid::support::service::ServiceInstanceDescription; 00049 00050 class UnitService : public virtual Service 00051 { 00052 public: 00053 UnitService (shared_ptr<ActiveObject> ao, shared_ptr<Entity> entity, shared_ptr<ServiceInstanceDescription> serviceInstanceDescription, shared_ptr<ServiceConfiguration> serviceConfiguration); 00054 00055 virtual void setNameToServiceMap (const map<string, shared_ptr<Service> >&); 00056 00057 protected: 00058 map<string, shared_ptr<Service> > nameToServiceMap_; 00059 }; 00060 } 00061 } 00062 } 00063 00064 #endif // _UNITSERVICE_HPP__