~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/constrained_value.h

  • Committer: Lee Bieber
  • Date: 2010-11-23 05:05:31 UTC
  • mfrom: (1945.1.8 bug675670)
  • Revision ID: kalebral@gmail.com-20101123050531-sf6ma8he7s47yryd
Merge Monty - fix bug 675670: Drizzle falsely reporting conflicts with tmp/mysql.socket but starts normally

Show diffs side-by-side

added added

removed removed

Lines of Context:
93
93
  }
94
94
};
95
95
 
 
96
namespace
 
97
{
 
98
template<class T, T min_val>
 
99
bool less_than_min(T val_to_check)
 
100
{
 
101
  return val_to_check < min_val;
 
102
}
 
103
 
 
104
template<>
 
105
inline bool less_than_min<uint16_t, 0>(uint16_t)
 
106
{
 
107
  return false;
 
108
}
 
109
 
 
110
template<>
 
111
inline bool less_than_min<uint32_t, 0>(uint32_t)
 
112
{
 
113
  return false;
 
114
}
 
115
 
 
116
template<>
 
117
inline bool less_than_min<uint64_t, 0>(uint64_t)
 
118
{
 
119
  return false;
 
120
}
 
121
 
 
122
template<class T, T min_val>
 
123
bool greater_than_max(T val_to_check)
 
124
{
 
125
  return val_to_check > min_val;
 
126
}
 
127
 
 
128
template<>
 
129
inline bool greater_than_max<uint16_t, UINT16_MAX>(uint16_t)
 
130
{
 
131
  return false;
 
132
}
 
133
 
 
134
template<>
 
135
inline bool greater_than_max<uint32_t, UINT32_MAX>(uint32_t)
 
136
{
 
137
  return false;
 
138
}
 
139
 
 
140
template<>
 
141
inline bool greater_than_max<uint64_t, UINT64_MAX>(uint64_t)
 
142
{
 
143
  return false;
 
144
}
 
145
 
146
 
96
147
template<class T,
97
148
  T MAXVAL,
98
149
  T MINVAL, unsigned int ALIGN= 1>
112
163
 
113
164
  constrained_value<T>& set_value(T rhs)
114
165
  {
115
 
    if ((rhs > MAXVAL) || (rhs < MINVAL))
 
166
    if (greater_than_max<T,MAXVAL>(rhs) || less_than_min<T,MINVAL>(rhs))
116
167
    {
117
168
      boost::throw_exception(boost::program_options::invalid_option_value(boost::lexical_cast<std::string>(rhs)));
118
169
    }