54 #ifndef GAMS_UTILITY_ARGUMENT_PARSER_H_
55 #define GAMS_UTILITY_ARGUMENT_PARSER_H_
60 #include "madara/utility/Utility.h"
61 #include "madara/knowledge/KnowledgeBase.h"
78 bool operator()(
const std::string &lhs,
const std::string &rhs)
const
80 size_t lsz = lhs.size(), rsz = rhs.size();
86 return std::less<std::string>()(lhs, rhs);
98 inline madara::knowledge::KnowledgeVector
kmap2kvec(
99 const madara::knowledge::KnowledgeMap &kmap)
101 using namespace madara::knowledge;
102 std::map<std::string, KnowledgeRecord,
103 RadixLess> map(kmap.begin(), kmap.end());
105 for (KnowledgeMap::const_iterator i = map.begin(); i != map.end(); ++i)
107 char c = i->first[0];
108 if (c >=
'0' && c <=
'9')
109 ret.push_back(i->second);
123 template<
class map_iterator>
125 std::input_iterator_tag, typename map_iterator::value_type >
207 return !(*
this == o);
215 it_k_->second.to_string();
218 typename value_type::second_type
value()
const
220 return it_v_->second;
231 char c =
it_k_->first[0];
232 if (c >=
'0' && c <=
'9')
251 cache()->~value_type();
311 const madara::knowledge::KnowledgeMap *
kmap_;
char cache_[sizeof(value_type)]
const value_type * operator->()
bool is_old_style() const
my_iterator operator++(int)
value_type::second_type value() const
bool name_is_old_style() const
const value_type & operator*() const
my_iterator & operator=(const my_iterator &o)
my_iterator & operator++()
my_iterator(const ArgumentParser &parent)
my_iterator::value_type value_type
bool operator==(const my_iterator &o) const
const ArgumentParser * parent_
bool operator!=(const my_iterator &o) const
value_type * cache() const
my_iterator(const my_iterator &o)
my_iterator< madara::knowledge::KnowledgeMap::iterator > iterator
my_iterator< madara::knowledge::KnowledgeMap::const_iterator > const_iterator
static const_iterator end()
const_iterator begin() const
ArgumentParser(const madara::knowledge::KnowledgeMap &kmap)
const madara::knowledge::KnowledgeMap * kmap_
Compare object suitable for use with standard library.
bool operator()(const std::string &lhs, const std::string &rhs) const
madara::knowledge::KnowledgeVector kmap2kvec(const madara::knowledge::KnowledgeMap &kmap)
Converts a knowledge map into a knowledge vector by adding the values from the map in numerical order...
Contains all GAMS-related tools, classes and code.