sgpemv2/src/backend/resource_policy_priority_in...

84 lines
2.4 KiB
C++
Raw Normal View History

// 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 <sgpemv2/resource_policy.hh>
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