00001 /* 00002 * BasicTaskQosketImpl.hh 00003 * 00004 * Copyright (c) 2003, 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 BasicTaskQosketImpl.hh 00014 * 00015 * Header file for the BasicTaskQosketImpl class. 00016 */ 00017 00018 #ifndef _basic_task_qosket_impl_hh 00019 #define _basic_task_qosket_impl_hh 00020 00021 #include "BrokerC.h" 00022 #include "BasicTaskQosketSkel.h" 00023 00024 #include "time_util.h" // XXX Included for the sake of the delegate. 00025 00026 /** 00027 * A subclass of the Qosket::Basic::BasicTaskQosketSkel class generated from 00028 * the BasicTaskContract. The implementation is pretty straightforward, it 00029 * gets its system conditions from the quo::QuoKernel and creates the callback 00030 * itself. 00031 * 00032 * @sa Qosket::Basic::BasicTaskQosketImpl 00033 * @sa Qosket::Basic::BasicTaskCallback 00034 * @sa BasicTaskCallbackImpl 00035 * @sa StubBasicTaskCallback 00036 * @sa BasicTaskContract.cdl 00037 */ 00038 class BasicTaskQosketImpl : 00039 public virtual Qosket::Basic::BasicTaskQosketSkel 00040 { 00041 00042 public: 00043 00044 /** 00045 * Initialize the object with the required QuO system conditions by calling 00046 * bindSysCond on the given kernel object. 00047 * 00048 * @param kernel The quo::QuoKernel that will be the source of any system 00049 * conditions. 00050 * @exception CORBA::SystemException descendant if something goes wrong 00051 * while interacting with the kernel. 00052 */ 00053 virtual void initSysconds(const quo::QuoKernel_ptr &kernel) 00054 throw (CORBA::SystemException); 00055 00056 /** 00057 * Creates a new BasicTaskCallbackImpl object and installs it in the 00058 * myCallback field. 00059 * 00060 * @param orb Unused. 00061 */ 00062 virtual void initCallbacks(const CORBA::ORB_ptr &orb) 00063 throw (CORBA::SystemException); 00064 00065 /** @copydoc Qosket::Basic::BasicTaskQosket::DeadlinesMissed */ 00066 virtual quo::ValueSC_ptr DeadlinesMissed(void) 00067 throw (CORBA::SystemException); 00068 00069 /** @copydoc Qosket::Basic::BasicTaskQosket::LastStatus */ 00070 virtual quo::ValueSC_ptr LastStatus(void) 00071 throw (CORBA::SystemException); 00072 00073 /** @copydoc Qosket::Basic::BasicTaskQosket::Callback */ 00074 virtual quo::Callback_ptr Callback(void) 00075 throw (CORBA::SystemException); 00076 00077 /** @copydoc Qosket::Basic::BasicTaskQosket::RUsage */ 00078 virtual CORBA::ULongLong RUsage(void) 00079 throw (CORBA::SystemException); 00080 00081 }; 00082 00083 #endif