summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorColin Patrick McCabe <cmccabe@alumni.cmu.edu>2011-09-06 12:01:39 -0700
committerColin Patrick McCabe <cmccabe@alumni.cmu.edu>2011-09-06 15:28:45 -0700
commit316dd910b160d809d2407b63f93323cb2389bc23 (patch)
tree103e6995068a999d600740123d6d967bb217934a
parent39538d73eb4b28f52349f45d08c3e94384eb9abe (diff)
downloadceph-316dd910b160d809d2407b63f93323cb2389bc23.tar.gz
Add ceph_argparse_withlonglong
Signed-off-by: Colin McCabe <colin.mccabe@dreamhost.com>
-rw-r--r--src/common/ceph_argparse.cc23
-rw-r--r--src/common/ceph_argparse.h3
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();