diff options
author | Colin Patrick McCabe <cmccabe@alumni.cmu.edu> | 2011-09-06 12:01:39 -0700 |
---|---|---|
committer | Colin Patrick McCabe <cmccabe@alumni.cmu.edu> | 2011-09-06 15:28:45 -0700 |
commit | 316dd910b160d809d2407b63f93323cb2389bc23 (patch) | |
tree | 103e6995068a999d600740123d6d967bb217934a | |
parent | 39538d73eb4b28f52349f45d08c3e94384eb9abe (diff) | |
download | ceph-316dd910b160d809d2407b63f93323cb2389bc23.tar.gz |
Add ceph_argparse_withlonglong
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
-rw-r--r-- | src/common/ceph_argparse.cc | 23 | ||||
-rw-r--r-- | src/common/ceph_argparse.h | 3 |
2 files changed, 26 insertions, 0 deletions
diff --git a/src/common/ceph_argparse.cc b/src/common/ceph_argparse.cc index 8b39c6698ff..9c2703ab354 100644 --- a/src/common/ceph_argparse.cc +++ b/src/common/ceph_argparse.cc @@ -425,6 +425,29 @@ bool ceph_argparse_withint(std::vector<const char*> &args, return true; } +bool ceph_argparse_withlonglong(std::vector<const char*> &args, + std::vector<const char*>::iterator &i, long long *ret, + std::ostringstream *oss, ...) +{ + bool r; + va_list ap; + std::string str; + va_start(ap, oss); + r = va_ceph_argparse_witharg(args, i, &str, ap); + va_end(ap); + if (!r) { + return false; + } + + std::string err; + long long myret = strict_strtoll(str.c_str(), 10, &err); + *ret = myret; + if (!err.empty()) { + *oss << err; + } + return true; +} + CephInitParameters ceph_argparse_early_args (std::vector<const char*>& args, uint32_t module_type, int flags, std::string *conf_file_list) diff --git a/src/common/ceph_argparse.h b/src/common/ceph_argparse.h index ece8b8ae169..075e2df6d38 100644 --- a/src/common/ceph_argparse.h +++ b/src/common/ceph_argparse.h @@ -107,6 +107,9 @@ extern CephInitParameters ceph_argparse_early_args extern bool ceph_argparse_withint(std::vector<const char*> &args, std::vector<const char*>::iterator &i, int *ret, std::ostringstream *oss, ...); +extern bool ceph_argparse_withlonglong(std::vector<const char*> &args, + std::vector<const char*>::iterator &i, long long *ret, + std::ostringstream *oss, ...); extern void generic_server_usage(); extern void generic_client_usage(); |