Back to index

im-sdk  12.3.91
IMSvrArg.hh
Go to the documentation of this file.
00001 #ifndef IMSVRARG_HH_
00002 #define IMSVRARG_HH_
00003 #include <map>
00004 #include <string>
00005 #include "basictype.hh"
00006 #include "IMSvrCfg.hh"
00007 #include "IMSvrXMLConf.hh"
00008 #include "IMNSMapConf.hh"
00009 
00010 class IMSvrArg : public IMSvrCfg
00011 {
00012     bool valid_flag;
00013     IMSvrXMLConf *pxmlsvrcfg;
00014     IIIMLEXMLConf *pxmllecfg;
00015     IMNSMapConf *pnsmapcfg;
00016 
00017     struct ArgVal {
00018        enum IMSvrCfg::IMSvrCfgOpt opt;
00019        bool specified;
00020        struct {
00021            bool b;
00022            int n;
00023            string s;
00024        } arg;
00025        ArgVal(
00026            enum IMSvrCfg::IMSvrCfgOpt x_opt
00027        ) :  opt(x_opt)
00028        {
00029            specified = false;
00030        }
00031     };
00032 
00033     typedef map<const char*, ArgVal, Functor_strcmp> IMSvrArgMap;
00034     IMSvrArgMap optmap;
00035     void show_usage();
00036 
00037     void addopt(
00038        enum IMSvrCfgOpt opt,
00039        const char* option
00040     );
00041 
00042     void initialize();
00043     bool parse_arguments(
00044        int argc,
00045        char **argv
00046     );
00047     bool set_argopt();
00048 
00049   public:
00050     virtual bool configure(
00051        IMSvr *pimsvr
00052     );
00053 
00054     IMSvrArg(
00055        int argc,
00056        char **argv
00057     );
00058     virtual ~IMSvrArg();
00059 };
00060 
00061 #endif /* not IMSVRARG_HH_ */
00062 
00063 /* Local Variables: */
00064 /* c-file-style: "iiim-project" */
00065 /* End: */