00001 00002 #ifndef _mpqcinit_h 00003 #define _mpqcinit_h 00004 00005 #include <scconfig.h> 00006 #include <util/options/GetLongOpt.h> 00007 #include <util/keyval/keyval.h> 00008 #include <util/group/message.h> 00009 #include <util/group/thread.h> 00010 #include <util/group/memory.h> 00011 #include <string> 00012 00013 namespace sc { 00014 00016 class MPQCInit { 00017 GetLongOpt& opt_; 00018 char **argv_; 00019 int &argc_; 00020 public: 00025 MPQCInit(GetLongOpt&opt, int &argc, char **argv); 00026 ~MPQCInit(); 00028 void init_fp(); 00030 void init_limits(); 00032 sc::Ref<sc::MessageGrp> init_messagegrp(); 00034 sc::Ref<sc::KeyVal> init_keyval(const sc::Ref<sc::MessageGrp> &grp, 00035 const std::string &filename); 00037 sc::Ref<sc::ThreadGrp> 00038 init_threadgrp(const sc::Ref<sc::KeyVal>&keyval); 00040 sc::Ref<sc::MemoryGrp> 00041 init_memorygrp(sc::Ref<sc::KeyVal> &keyval); 00043 void init_io(const sc::Ref<sc::MessageGrp> &grp); 00045 void init_integrals(const Ref<KeyVal> &keyval); 00047 void init_timer(const Ref<MessageGrp> &grp, const Ref<KeyVal>&keyval); 00049 void init_basename(const std::string &input_filename, 00050 const std::string &output_filename = ""); 00054 sc::Ref<sc::KeyVal> init(const std::string &input_filename, 00055 const std::string &output_filename = ""); 00058 void finalize(); 00059 }; 00060 00061 } 00062 00063 #endif