// src/backend/resource_policy_priority_inheritance.hh - Copyright 2005, 2006, University // of Padova, dept. of Pure and Applied // Mathematics // // This file is part of SGPEMv2. // // This is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 3 of the License, or // (at your option) any later version. // // SGPEMv2 is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with SGPEMv2. If not, see http://www.gnu.org/licenses/. #ifndef RESOURCE_POLICY_INHERITANCE_HH #define RESOURCE_POLICY_INHERITANCE_HH 1 namespace sgpem { class ResourcePolicyPriorityInheritance; } #include namespace sgpem { /** * \brief It's a Strategy wich stay for a resource allocating algorithm. * It implements the related resource allocation policy. */ class SG_DLLLOCAL ResourcePolicyPriorityInheritance : public ResourcePolicy { public: /// \brief Standard virtual destructor. /// /// Standard virtual destructor. virtual ~ResourcePolicyPriorityInheritance(); /** \brief Initialize the inner components of the policy. Because it's a pure virtual method, must be re-implemented in concrete derived classes. */ virtual void configure() throw(UserInterruptException); /** \brief Mixes the queues. Because it's a pure virtual method, must be re-implemented in concrete derived classes. */ virtual void enforce(Environment& environment, Environment::SubRequestQueue& queue, SubRequest& sr) throw(UserInterruptException); /** \brief Gets a string description of the policy. Because it's a pure virtual method, must be re-implemented in concrete derived classes. \return String description of the policy. */ virtual Glib::ustring get_description() const; virtual Glib::ustring get_name() const; virtual void activate(); virtual void deactivate(); }; }//~ namespace sgpem #endif