blob: 93e14d84aa28c1c530d980a98ac6f26bb923f02a [file] [log] [blame]
Mark Slee31985722006-05-24 21:45:31 +00001#ifndef T_FIELD_H
2#define T_FIELD_H
3
4#include <string>
5
6/**
Mark Sleef5377b32006-10-10 01:42:59 +00007 * Class to represent a field in a thrift structure. A field has a data type,
8 * a symbolic name, and a numeric identifier.
Mark Slee31985722006-05-24 21:45:31 +00009 *
10 * @author Mark Slee <mcslee@facebook.com>
11 */
12class t_field {
13 public:
Mark Sleeb15a68b2006-06-07 06:46:24 +000014 t_field(t_type* type, std::string name) :
Mark Sleef5377b32006-10-10 01:42:59 +000015 type_(type),
16 name_(name),
17 key_(0) {}
Mark Sleeb15a68b2006-06-07 06:46:24 +000018
Mark Slee9cb7c612006-09-01 22:17:45 +000019 t_field(t_type* type, std::string name, int32_t key) :
Mark Sleef5377b32006-10-10 01:42:59 +000020 type_(type),
21 name_(name),
22 key_(key) {}
Mark Slee31985722006-05-24 21:45:31 +000023
24 ~t_field() {}
25
Mark Sleef5377b32006-10-10 01:42:59 +000026 t_type* get_type() const {
27 return type_;
28 }
29
30 const std::string& get_name() const {
31 return name_;
32 }
33
34 int32_t get_key() const {
35 return key_;
36 }
Mark Slee31985722006-05-24 21:45:31 +000037
38 private:
39 t_type* type_;
40 std::string name_;
Mark Slee9cb7c612006-09-01 22:17:45 +000041 int32_t key_;
Mark Slee31985722006-05-24 21:45:31 +000042};
43
44#endif