Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

MinMaxTaskAdvocate.hh

Go to the documentation of this file.
00001 /*
00002  * MinMaxTaskAdvocate.hh
00003  *
00004  * Copyright (c) 2004 The University of Utah and the Flux Group.
00005  * All rights reserved.
00006  *
00007  * This file is licensed under the terms of the GNU Public License.  
00008  * See the file "license.terms" for restrictions on redistribution 
00009  * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
00010  */
00011 
00012 /**
00013  * @file MinMaxTaskAdvocate.hh
00014  *
00015  * Header file for the MinMaxTaskAdvocate class.
00016  */
00017 
00018 #ifndef _min_max_task_advocate_hh
00019 #define _min_max_task_advocate_hh
00020 
00021 #include <RealTimeTaskDelegateImpl.hh>
00022 
00023 /**
00024  * An advocate that bounds an advice to a user-defined minimum and maximum.
00025  */
00026 class MinMaxTaskAdvocate : public virtual RealTimeTaskDelegateImpl
00027 {
00028 
00029 public:
00030     
00031     /** Default constructor. */
00032     MinMaxTaskAdvocate(void);
00033 
00034     /** Destructor. */
00035     virtual ~MinMaxTaskAdvocate(void);
00036     
00037     /**
00038      * @copydoc BrokerDelegates::Delegate::SetDelegateAttribute
00039      *
00040      * Currently supported 'id' values are:
00041      *
00042      * @li @e minimum The minimum advice to be reported by this advocate.
00043      * @li @e maximum The maximum advice to be reported by this advocate.
00044      */
00045     virtual void SetDelegateAttribute(const char *id,
00046                                       const CORBA::Any &value)
00047         throw (CORBA::SystemException);
00048 
00049     /**
00050      * @copydoc BrokerDelegates::Delegate::GetDelegateAttribute
00051      *
00052      * Currently supported 'id' values are:
00053      *
00054      * @li @e minimum The minimum advice to be reported by this advocate.
00055      * @li @e maximum The maximum advice to be reported by this advocate.
00056      */
00057     virtual CORBA::Any *GetDelegateAttribute(const char *id)
00058         throw (CORBA::SystemException);
00059     
00060     /** @copydoc Broker::RealTimeTask::PassCPU */
00061     virtual Broker::CPUReserve PassCPU(Broker::RealTimeTask_ptr rtt,
00062                                        const Broker::CPUReserve &status,
00063                                        const Broker::CPUReserve &advice,
00064                                        const Broker::KeyedReportParameters &krp)
00065         throw (CORBA::SystemException);
00066 
00067 private:
00068 
00069     /**
00070      * Minimum advice to be reported by this advocate.
00071      */
00072     CORBA::ULong mm_Minimum;
00073 
00074     /**
00075      * Maximum advice to be reported by this advocate.
00076      */
00077     CORBA::ULong mm_Maximum;
00078     
00079 };
00080 
00081 #endif

Generated on Fri Oct 22 07:50:24 2004 for CPU Broker by  doxygen 1.3.9.1