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

RealTimeSchedule.hh

Go to the documentation of this file.
00001 /*
00002  * RealTimeSchedule.hh
00003  *
00004  * Copyright (c) 2003 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 RealTimeSchedule.hh
00014  *
00015  * Header file for the RealTimeSchedule helper class.
00016  */
00017 
00018 #ifndef _cpu_schedule_hh
00019 #define _cpu_schedule_hh
00020 
00021 #include "BrokerC.h"
00022 
00023 /**
00024  * The RealTimeSchedule class is used to help policies that manage
00025  * Broker::RealTimeTask's.
00026  */
00027 class RealTimeSchedule
00028 {
00029 
00030 public:
00031 
00032     /**
00033      * Construct a RealTimeSchedule object with the given values.
00034      *
00035      * @param start The start time for the task.
00036      * @param period The task period in microseconds.
00037      * @param deadline The task deadline in microseconds, relative to the start
00038      *                 of the period.
00039      */
00040     RealTimeSchedule(CORBA::ULong start = 0,
00041                      CORBA::ULong period = 0,
00042                      CORBA::ULong deadline = 0);
00043 
00044     /**
00045      * Deconstruct a RealTimeSchedule object.
00046      */
00047     virtual ~RealTimeSchedule();
00048 
00049     /**
00050      * Compute the number of microseconds that this schedule will have to
00051      * execute during the given time frame.
00052      *
00053      * @param start The start of the time frame, in microseconds.
00054      * @param stop The end of the time frame, in microseconds.
00055      * @return The number of microseconds during the time frame in which this
00056      *         task will be schedulable.
00057      */
00058     CORBA::ULong intersect(CORBA::ULong start, CORBA::ULong stop);
00059 
00060     /** The start time for the task.  XXX somewhat bogus at the moment */
00061     CORBA::ULong rts_Start;
00062     
00063     /** The task period in microseconds. */
00064     CORBA::ULong rts_Period;
00065     
00066     /**
00067      * The task deadline in microseconds, relative to the start of the
00068      * period.
00069      */
00070     CORBA::ULong rts_Deadline;
00071 
00072 };
00073 
00074 #endif

Generated on Mon Dec 1 16:29:06 2003 for CPU Broker by doxygen 1.3.4