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; } |