Missing file in thrift parser, sorry d00dz!
Summary: Forgot to svn add
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664885 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/compiler/cpp/src/parse/t_const_value.h b/compiler/cpp/src/parse/t_const_value.h
new file mode 100644
index 0000000..3d99c85
--- /dev/null
+++ b/compiler/cpp/src/parse/t_const_value.h
@@ -0,0 +1,94 @@
+#ifndef T_CONST_VALUE_H
+#define T_CONST_VALUE_H
+
+#include "t_const.h"
+#include <map>
+#include <vector>
+
+/**
+ * A const value is something parsed that could be a map, set, list, struct
+ * or whatever.
+ *
+ * @author Mark Slee <mcslee@facebook.com>
+ */
+class t_const_value {
+ public:
+
+ enum t_const_value_type {
+ CV_INTEGER,
+ CV_DOUBLE,
+ CV_STRING,
+ CV_MAP,
+ CV_LIST
+ };
+
+ t_const_value() {}
+
+ void set_string(std::string val) {
+ valType_ = CV_STRING;
+ stringVal_ = val;
+ }
+
+ std::string get_string() const {
+ return stringVal_;
+ }
+
+ void set_integer(int val) {
+ valType_ = CV_INTEGER;
+ intVal_ = val;
+ }
+
+ int get_integer() const {
+ return intVal_;
+ }
+
+ void set_double(double val) {
+ valType_ = CV_DOUBLE;
+ doubleVal_ = val;
+ }
+
+ double get_double() const {
+ return doubleVal_;
+ }
+
+ void set_map() {
+ valType_ = CV_MAP;
+ }
+
+ void add_map(t_const_value* key, t_const_value* val) {
+ mapVal_[key] = val;
+ }
+
+ const std::map<t_const_value*, t_const_value*>& get_map() const {
+ return mapVal_;
+ }
+
+ void set_list() {
+ valType_ = CV_LIST;
+ }
+
+ void add_list(t_const_value* val) {
+ listVal_.push_back(val);
+ }
+
+ const std::vector<t_const_value*>& get_list() const {
+ return listVal_;
+ }
+
+ t_const_value_type get_type() const {
+ return valType_;
+ }
+
+ private:
+ std::map<t_const_value*, t_const_value*> mapVal_;
+ std::vector<t_const_value*> listVal_;
+ std::string stringVal_;
+ int intVal_;
+ double doubleVal_;
+
+ t_const_value_type valType_;
+
+};
+
+#endif
+