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

Delegate.idl

Go to the documentation of this file.
00001 /*
00002  * Delegate.idl
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 Delegate.idl
00014  *
00015  * IDL for delegate objects.
00016  */
00017 
00018 #ifndef _delegate_idl
00019 #define _delegate_idl
00020 
00021 #include "Broker.idl"
00022 #include "StrictPolicy.idl"
00023 
00024 /**
00025  * Name space for broker delegates.
00026  */
00027 module BrokerDelegates
00028 {
00029     /**
00030      * Interface for objects that will delegate method calls to another object.
00031      */
00032     interface Delegate
00033     {
00034         /**
00035          * Set an attribute on a delegate.
00036          *
00037          * @param id The attribute identifier.
00038          * @param value The new attribute value.
00039          */
00040         void SetDelegateAttribute(in string id, in any value);
00041         
00042         /**
00043          * Get an attribute from a delegate.
00044          *
00045          * @param id The attribute identifier.
00046          * @return The attribute's current value.
00047          */
00048         any GetDelegateAttribute(in string id);
00049         
00050         /* XXX BEGIN HACK MODE */
00051         void SetDelegateAttributeObject(in string id, in Object value);
00052         Object GetDelegateAttributeObject(in string id);
00053         /* XXX END HACK MODE */
00054     };
00055     
00056     /**
00057      * Delegate for Broker::Task objects.
00058      */
00059     interface TaskDelegate : Broker::Task, Delegate
00060     {
00061     };
00062     
00063     /**
00064      * Delegate for Broker::RealTimeTask objects.
00065      */
00066     interface RealTimeTaskDelegate : Broker::RealTimeTask, Delegate
00067     {
00068     };
00069     
00070     /**
00071      * Delegate for BrokerPolicies::StrictPolicy objects.
00072      */
00073     interface StrictPolicyDelegate : BrokerPolicies::StrictPolicy, Delegate
00074     {
00075     };
00076 };
00077 
00078 #endif

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