diff options
| author | Joe Zhao <ztuowen@gmail.com> | 2015-04-26 22:24:01 +0800 | 
|---|---|---|
| committer | Joe Zhao <ztuowen@gmail.com> | 2015-04-26 22:24:01 +0800 | 
| commit | be756a55086b5a8f62b979b456475c86ec2cfb61 (patch) | |
| tree | da362505f4b5a65885db948f8acb719202e2bcd5 | |
| parent | c7152b8843fadd0961ce8fe20c1eac6403f0275d (diff) | |
| download | ranksvm-be756a55086b5a8f62b979b456475c86ec2cfb61.tar.gz ranksvm-be756a55086b5a8f62b979b456475c86ec2cfb61.tar.bz2 ranksvm-be756a55086b5a8f62b979b456475c86ec2cfb61.zip  | |
restructure
func pointer & dataprovider pointer
| -rw-r--r-- | main.cpp | 19 | 
1 files changed, 12 insertions, 7 deletions
@@ -14,10 +14,11 @@ namespace po = boost::program_options;  po::variables_map vm; -int train() { +typedef int (*mainFunc)(DataProvider &dp); + +int train(DataProvider &dp) {      RSVM *rsvm;      rsvm = RSVM::loadModel(vm["model"].as<std::string>()); -    FileDP dp(vm["feature"].as<std::string>());      dp.open();      DataList D; @@ -39,10 +40,9 @@ int train() {      return 0;  } -int predict() { +int predict(DataProvider &dp) {      RSVM *rsvm;      rsvm = RSVM::loadModel(vm["model"].as<std::string>().c_str()); -    FileDP dp(vm["feature"].as<std::string>().c_str());      dp.open();      DataList D; @@ -99,12 +99,17 @@ int main(int argc, char **argv) {          std::cout << desc;          return 0;      } - +    mainFunc mainf;      if (vm.count("train")) { -        train(); +        mainf = &train;      }      else if (vm.count("validate")||vm.count("predict")) { -        predict(); +        mainf = &predict;      } +    else return 0; +    DataProvider* dp; +    dp = new FileDP(vm["feature"].as<std::string>()); +    mainf(*dp); +    delete dp;      return 0;  }  | 
