1 /* Copyright (C) 2011-2013 Codership Oy <info@codership.com> */
2 
3 #ifndef _GARB_CONFIG_HPP_
4 #define _GARB_CONFIG_HPP_
5 
6 #include <string>
7 #include <iostream>
8 
9 namespace garb
10 {
11 
12 class Config
13 {
14 public:
15 
16     static std::string const DEFAULT_SST; // default (empty) SST request
17 
18     Config (int argc, char* argv[]);
~Config()19     ~Config () {}
20 
daemon() const21     bool               daemon()  const { return daemon_ ; }
name() const22     const std::string& name()    const { return name_   ; }
address() const23     const std::string& address() const { return address_; }
group() const24     const std::string& group()   const { return group_  ; }
sst() const25     const std::string& sst()     const { return sst_    ; }
donor() const26     const std::string& donor()   const { return donor_  ; }
options() const27     const std::string& options() const { return options_; }
cfg() const28     const std::string& cfg()     const { return cfg_    ; }
log() const29     const std::string& log()     const { return log_    ; }
exit() const30     bool               exit()    const { return exit_   ; }
31 
32 private:
33 
34     bool        daemon_;
35     std::string name_;
36     std::string address_;
37     std::string group_;
38     std::string sst_;
39     std::string donor_;
40     std::string options_;
41     std::string log_;
42     std::string cfg_;
43     bool exit_; /* Exit on --help or --version */
44 
45 }; /* class Config */
46 
47 std::ostream& operator << (std::ostream&, const Config&);
48 
49 } /* namespace garb */
50 
51 #endif /* _GARB_CONFIG_HPP_ */
52