~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/lex_string.h

  • Committer: Mark Atwood
  • Date: 2011-12-11 22:56:39 UTC
  • mfrom: (2465.1.1 drizzle)
  • Revision ID: me@mark.atwood.name-20111211225639-3d8ype7g2y82dci5
mergeĀ lp:~brianaker/drizzle/libdrizzle-breakout

Show diffs side-by-side

added added

removed removed

Lines of Context:
20
20
#pragma once
21
21
 
22
22
#include <cstddef>
 
23
#include <drizzled/util/data_ref.h>
23
24
 
24
25
namespace drizzled {
25
26
 
32
33
{
33
34
  const char* begin() const
34
35
  {
35
 
    return str;
 
36
    return data();
36
37
  }
37
38
 
38
39
  const char* end() const
39
40
  {
40
 
    return str + length;
41
 
  }
42
 
 
43
 
  char* str;
44
 
  size_t length;
 
41
    return data() + size();
 
42
  }
 
43
 
 
44
  const char* data() const
 
45
  {
 
46
    return str_;
 
47
  }
 
48
 
 
49
  size_t size() const
 
50
  {
 
51
    return length_;
 
52
  }
 
53
 
 
54
  void assign(const char* d, size_t s)
 
55
  {
 
56
    str_= const_cast<char*>(d);
 
57
    length_ = s;
 
58
  }
 
59
 
 
60
  void operator=(str_ref v)
 
61
  {
 
62
    assign(v.data(), v.size());
 
63
  }
 
64
 
 
65
  char* str_;
 
66
  size_t length_;
45
67
};
46
68
 
47
69
inline const lex_string_t &null_lex_string()
61
83
    return is_variable;
62
84
  }
63
85
 
64
 
  void set(const lex_string_t& ptr, bool is_variable_arg= false)
 
86
  void set(const lex_string_t& s, bool is_variable_arg= false)
65
87
  {
66
88
    is_variable= is_variable_arg;
67
 
    str= ptr.str;
68
 
    length= ptr.length;
 
89
    static_cast<lex_string_t&>(*this) = s;
69
90
  }
70
91
 
71
92
};