Arguments.h

00001 #ifndef SCTSERVICE_ARGUMENTS_H
00002 #define SCTSERVICE_ARGUMENTS_H
00003 #include <iostream>
00004 #include <string>
00005 #include <list>
00006 
00007 namespace SctService {
00008 
00010 class Arguments{
00011  public:
00012   class Subscription;
00017   Arguments(int argc, char** argv);
00021   unsigned getNWorkers() const;
00025   void setNWorkers(const unsigned n);
00029   std::string getOutputISServer() const;
00033   void setOutputISServer(const std::string& name);
00038   std::list<Subscription> getInputISServers() const;
00042   bool recoveryMode() const;
00046   void setRecoveryMode(const bool);
00050   void setInstanceName(const std::string& value); 
00054   std::string instanceName() const;
00058   std::string getISStatusName() const;
00062   void setISStatusName(const std::string&);
00066   virtual void print(std::ostream& os) const;
00070   virtual std::string print() const;
00074   virtual void printHelp(std::ostream& os) const;
00078   virtual std::string printHelp() const;
00082   virtual ~Arguments();
00086   static std::list<std::string> makeList(int argc, char** argv);
00087  protected:
00091   void parse();
00099   std::string next(std::list<std::string>::iterator& it) const;
00100   std::list<std::string> m_list; //< record of list of arguments
00101 
00102   class Subscription{
00103   public:
00104     Subscription(std::string server, std::string regexp);
00105     std::string server;
00106     std::string regexp;
00107   protected:
00108     Subscription();
00109   };
00110  private:
00111   Arguments();
00112   unsigned m_nworkers;
00113   std::string m_options;
00114   std::string m_output;
00115   std::list<Subscription> m_input;
00116   bool m_recovery;
00117   std::string m_instanceName;
00118   std::string m_status_name;
00119   const static unsigned MAX_WORKERS=10;
00120 };
00121 
00122 }
00123 #endif

Generated on Mon Feb 6 14:01:17 2006 for SCT DAQ/DCS Software - C++ by  doxygen 1.4.6