00001 /* 00002 * ContractDelegate.cc 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 ContractDelegate.cc 00014 * 00015 * The implementation of the ContractDelegate class. 00016 */ 00017 00018 #include "config.h" 00019 00020 #include <assert_pp.h> 00021 00022 #include "ContractDelegate.hh" 00023 00024 ContractDelegate::ContractDelegate(quo::Contract_ptr contract, 00025 const char *name, 00026 unsigned long period, 00027 unsigned long deadline) : 00028 BasicDelegate(name, period, deadline), 00029 cd_Contract(contract) 00030 { 00031 require(!CORBA::is_nil(contract)); 00032 00033 } 00034 00035 rk_stub_precall_retval_t ContractDelegate::precall(void) 00036 { 00037 rk_stub_precall_retval_t retval; 00038 00039 this->cd_Contract->eval(); 00040 retval = this->BasicDelegate::precall(); 00041 this->cd_Contract->eval(); 00042 return( retval ); 00043 } 00044 00045 void ContractDelegate::postcall(void) 00046 { 00047 this->cd_Contract->eval(); 00048 this->BasicDelegate::postcall(); 00049 this->cd_Contract->eval(); 00050 }