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

ExecutionSpecs.hpp

Go to the documentation of this file.
00001 #ifndef ExecutionSpecs_HPP
00002 #define ExecutionSpecs_HPP
00003 
00004 #include <string>
00005 #include <vector>
00006 
00007 #include "utils/c++/StringTokenizer.hpp"
00008 
00009 
00010 using namespace std;
00011 
00018  class ExecutionSpecs{
00019 
00020   private:
00021 
00022     string requestingAsctIor_; 
00023     string requestId_;         
00024     string grmIor_;            
00025     string deniedExecution_;   
00026     string appId_;             
00029     string appArgs_;           
00030     string appConstraints_;    
00031     string appPreferences_;    
00032     vector<string> inputFiles_;      
00033     vector<string> outputFiles_;      
00036   public:
00037 
00038 
00039     //Named parameter idiom---------------------------------------------------
00040 
00041     ExecutionSpecs & requestingAsctIor(const string & aRequestingAsctIor){
00042       requestingAsctIor_= aRequestingAsctIor;
00043       return (*this);
00044     }
00045 
00046     ExecutionSpecs & requestId(const string & aRequestId){
00047       requestId_= aRequestId;
00048       return (*this);
00049     }
00050 
00051     ExecutionSpecs & grmIor(const string & aGrmIor){
00052       grmIor_= aGrmIor;
00053       return (*this);
00054     }
00055 
00056     ExecutionSpecs & deniedExecution(const string & aDeniedExecution){
00057       deniedExecution_= aDeniedExecution;
00058       return (*this);
00059     }
00060 
00061     ExecutionSpecs & appId(const string & aAppId){
00062       appId_= aAppId;
00063       return (*this);
00064     }
00065 
00066     ExecutionSpecs & appArgs(const string & aAppArgs){
00067       appArgs_= aAppArgs;
00068       return (*this);
00069     }
00070 
00071     ExecutionSpecs & appConstraints(const string & aAppConstraints){
00072       appConstraints_= aAppConstraints;
00073       return (*this);
00074     }
00075 
00076     ExecutionSpecs & appPreferences(const string & aAppPreferences){
00077       appPreferences_= aAppPreferences;
00078       return (*this);
00079     }
00080 
00081     //This method assumes that filenames are separated by whitespace.
00082     ExecutionSpecs & inputFiles(const string & aInputFiles){
00083       StringTokenizer st(aInputFiles);
00084       while(st.hasMoreTokens())
00085        inputFiles_.push_back(st.nextToken());
00086       return (*this);
00087     }
00088 
00089     ExecutionSpecs & inputFiles(vector<string> aInputFiles){
00090       inputFiles_ = aInputFiles;
00091       return (*this);
00092     }
00093 
00094     ExecutionSpecs & outputFiles(vector<string> aOutputFiles){
00095       outputFiles_ = aOutputFiles;
00096       return (*this);
00097     }
00098 
00099 
00100    //getters-------------------------------------------------------------
00101    const string & requestingAsctIor() const{return requestingAsctIor_;}
00102    const string & requestId() const{return  requestId_;}
00103    const string & grmIor() const{return  grmIor_;}
00104    const string & deniedExecution() const{return  deniedExecution_;}
00105    const string & appId() const{return   appId_;}
00106    const string & appArgs() const{return   appArgs_;}
00107    const string & appConstraints() const{return  appConstraints_;}
00108    const string & appPreferences() const{return  appPreferences_;}
00109    const vector<string> & inputFiles() const{return inputFiles_;}
00110    const vector<string> & outputFiles() const{return outputFiles_;}
00111 
00112    //Other---------------------------------------------------------------
00113    void addRequestFile(const string & filename){ inputFiles_.push_back(filename); }
00114    void addReturnFile(const string & filename){ outputFiles_.push_back(filename); }
00115 
00116  };
00117 
00118 
00119 #endif//ExecutionSpecs_HPP
00120 

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