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

ResourceManagement.idl

Go to the documentation of this file.
00001 //FIXME: Removed oneway, leaving only void to deal with current O^2 limitation
00002 //FIXME: Uncomment modules when O^2 adds support for nested modules
00003 //FIXME: uncomment block comments when O^2 adds support for them
00004 //FIXME: Separate in different IDL files when supported by O^2
00005 
00006   //--------------------------------------------------------------------------------------
00007   module subsubtypes{
00008 
00009     typedef sequence<string> FileNameSeq; 
00010     typedef sequence<octet> File;         
00011 
00012   };
00013 
00014   //--------------------------------------------------------------------------------------
00015   module subtypes{
00016 
00020     struct FileStruct{
00021       string filename;        
00022       subsubtypes::File file; 
00023     };
00024   };
00025 
00026   //--------------------------------------------------------------------------------------
00027   module types{
00028 
00029     typedef sequence<subtypes::FileStruct> FileSeq;
00030 
00034     struct StaticInfo{
00035       string hostName;      
00036       string osName;        
00037       string osVersion;     
00038       string processorName; 
00039       long processorMhz;    
00040       long totalRAM;        
00041       long totalSwap;       
00042     };
00043 
00047     struct DynamicInfo{
00048       long freeRAM;    
00049       long freeSwap;   
00050       long fsFree;     
00051       long filesFree;  
00052       string cpuUsage; 
00053       long fsTotal;    
00054       long filesTotal; 
00055     };
00056 
00060     struct OfferSpecs{
00061       string lrmIor;
00062       string requestId;
00063       string lrmRequestId;
00064     };
00065 
00070     struct CommonExecutionSpecs{
00071       string requestingAsctIor;      
00072       string requestId;              
00073 
00074       string grmIor;                 
00075       string applicationId;          
00076 
00077       string applicationConstraints; 
00078 
00079       string applicationPreferences; 
00080 
00081       string deniedExecution;        
00082     };
00083 
00088     struct DistinctExecutionSpecs{
00089       string applicationArgs;              
00090       subsubtypes::FileNameSeq inputFiles; 
00091       subsubtypes::FileNameSeq outputFiles;
00092     };
00093 
00097     struct ExecutionSpecs{
00098       string requestingAsctIor;       
00099       string requestId;               
00100 
00101       string grmIor;                  
00102       string deniedExecution;         
00103       string applicationId;           
00104 
00105       string applicationArgs;         
00106       string applicationConstraints;  
00107 
00108       string applicationPreferences;  
00109 
00110       subsubtypes::FileNameSeq inputFiles; 
00111       subsubtypes::FileNameSeq outputFiles;
00112     };
00113 
00118     struct BspInfo{
00119       boolean isProcessZero; 
00120       string processZeroIor; 
00121     };
00122 
00123   };//types
00124 
00125   //--------------------------------------------------------------------------------------
00126   module yetAnotherType{
00127 
00128     typedef sequence<types::DistinctExecutionSpecs> DistExecSpecsSeq; 
00129 
00130   };
00131 
00132   //--------------------------------------------------------------------------------------
00133   module interfaces{
00134 
00140     interface Lrm{
00141 
00148       void setSampleInterval(in long seconds);
00149 
00155       void setKeepAliveInterval(in long seconds);
00156 
00160       void ping();
00161 
00169       void remoteExecutionRequest(in types::ExecutionSpecs execSpecs);
00170 
00176       types::FileSeq requestOutputFiles(in string appId);
00177 
00183       string getStatus(in string appId);
00184 
00190       void kill(in string appId);
00191 
00192     };//Lrm
00193 
00199     interface Grm{
00200 
00207       void registerLrm (in string lrmId, in types::StaticInfo staticInfo);
00208 
00215       void sendUpdate (in string lrmId,in types::DynamicInfo dynamicInfo);
00216 
00229       void remoteExecutionRequest(in types::CommonExecutionSpecs commonSpecs,
00230                                   in yetAnotherType::DistExecSpecsSeq distinctSpecs,
00231                                   in boolean forceDifferentMachines);
00232 
00233     };//interface Grm
00234 
00240     interface Asct{
00241 
00251       void acceptedExecutionRequest(in types::OfferSpecs offSpecs);
00252 
00262       void refusedExecutionRequest(in string requestId);
00263 
00271       subsubtypes::File requestInputFiles(in string paths);
00272 
00278       void appFinished(in string appId);
00279 
00289       types::BspInfo registerBspNode(in string appId, in string bspProxyIor);
00290 
00291     };//Asct
00292 
00293 
00294 
00295 }; //Interfaces

Generated on Mon Sep 6 16:12:48 2004 by doxygen 1.3.3