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 /** 00023 * @Filename ServiceRequestDeliveryTask.hpp 00024 * @Description ServiceRequestDeliveryTask declaration 00025 * @Status Work in Progress 00026 * @Version $Id: ServiceRequestDeliveryTask.hpp 1 2011-03-04 18:13:18Z jreis $ 00027 * @Maintainer 00028 */ 00029 00030 #ifndef __SERVICE_SERVICEREQUESTDELIVERYTASK_H 00031 #define __SERVICE_SERVICEREQUESTDELIVERYTASK_H 00032 00033 namespace mermaid 00034 { 00035 namespace support 00036 { 00037 namespace service 00038 { 00039 class ServiceRequestDeliveryTask; 00040 } 00041 } 00042 } 00043 00044 00045 #include <Service.hpp> 00046 #include <ServiceRequest.hpp> 00047 #include <Task.hpp> 00048 00049 namespace mermaid 00050 { 00051 namespace support 00052 { 00053 namespace service 00054 { 00055 00056 using mermaid::support::activeobject::Task; 00057 using boost::shared_ptr; 00058 00059 /** 00060 * @Class ServiceRequestDeliveryTask ServiceRequestDeliveryTask.hpp "ServiceRequestDeliveryTask.hpp" 00061 * @Description ServiceRequestDeliveryTask class, used to deliver requests to services in the context of an ActiveObject 00062 * @Author Marco Barbosa 00063 */ 00064 class ServiceRequestDeliveryTask : public Task 00065 { 00066 public: 00067 ServiceRequestDeliveryTask (shared_ptr<Service> service, shared_ptr<ServiceRequest> request); 00068 00069 virtual void run(); 00070 00071 private: 00072 shared_ptr<Service> service_; 00073 shared_ptr<ServiceRequest> request_; 00074 }; // class ServiceRequestDeliveryTask 00075 } // namespace service 00076 } // namespace support 00077 } // namespace mermaid 00078 00079 #endif // __SERVICE_SERVICEREQUESTDELIVERYTASK_H