~percona-dev/percona-server/release-5.5.11-20.2-fix-bug-764138

« back to all changes in this revision

Viewing changes to HandlerSocket-Plugin-for-MySQL/libhsclient/config.cpp

  • Committer: Ignacio Nin
  • Date: 2011-03-13 17:18:23 UTC
  • mfrom: (33.3.17 release-5.5.8-20)
  • Revision ID: ignacio.nin@percona.com-20110313171823-m06xs104nekulywb
Merge changes from release-5.5.8-20 to 5.5.9

Merge changes from the release branch of 5.5.8 to 5.5.9. These include
the HandlerSocket and UDF directories and the building scripts.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
// vim:sw=2:ai
 
3
 
 
4
/*
 
5
 * Copyright (C) 2010 DeNA Co.,Ltd.. All rights reserved.
 
6
 * See COPYRIGHT.txt for details.
 
7
 */
 
8
 
 
9
#include <stdlib.h>
 
10
#include <stdio.h>
 
11
#include <string.h>
 
12
 
 
13
#include "config.hpp"
 
14
 
 
15
namespace dena {
 
16
 
 
17
unsigned int verbose_level = 0;
 
18
 
 
19
std::string
 
20
config::get_str(const std::string& key, const std::string& def) const
 
21
{
 
22
  const_iterator iter = this->find(key);
 
23
  if (iter == this->end()) {
 
24
    DENA_VERBOSE(10, fprintf(stderr, "CONFIG: %s=%s(default)\n", key.c_str(),
 
25
      def.c_str()));
 
26
    return def;
 
27
  }
 
28
  DENA_VERBOSE(10, fprintf(stderr, "CONFIG: %s=%s\n", key.c_str(),
 
29
    iter->second.c_str()));
 
30
  return iter->second;
 
31
}
 
32
 
 
33
long long
 
34
config::get_int(const std::string& key, long long def) const
 
35
{
 
36
  const_iterator iter = this->find(key);
 
37
  if (iter == this->end()) {
 
38
    DENA_VERBOSE(10, fprintf(stderr, "CONFIG: %s=%lld(default)\n", key.c_str(),
 
39
      def));
 
40
    return def;
 
41
  }
 
42
  const long long r = atoll(iter->second.c_str());
 
43
  DENA_VERBOSE(10, fprintf(stderr, "CONFIG: %s=%lld\n", key.c_str(), r));
 
44
  return r;
 
45
}
 
46
 
 
47
void
 
48
parse_args(int argc, char **argv, config& conf)
 
49
{
 
50
  for (int i = 1; i < argc; ++i) {
 
51
    const char *const arg = argv[i];
 
52
    const char *const eq = strchr(arg, '=');
 
53
    if (eq == 0) {
 
54
      continue;
 
55
    }
 
56
    const std::string key(arg, eq - arg);
 
57
    const std::string val(eq + 1);
 
58
    conf[key] = val;
 
59
  }
 
60
  config::const_iterator iter = conf.find("verbose");
 
61
  if (iter != conf.end()) {
 
62
    verbose_level = atoi(iter->second.c_str());
 
63
  }
 
64
}
 
65
 
 
66
};
 
67