#ifndef T_STRUCT_H | |
#define T_STRUCT_H | |
#include <vector> | |
#include <string> | |
#include "t_type.h" | |
#include "t_field.h" | |
class t_struct : public t_type { | |
public: | |
t_struct() : is_xception_(false) {} | |
t_struct(const std::string& name) : t_type(name), is_xception_(false) {} | |
~t_struct() {} | |
/** Set the struct name */ | |
void set_name(const std::string& name) { | |
name_ = name; | |
} | |
/** Mark as an exception */ | |
void set_xception(bool is_xception) { | |
is_xception_ = is_xception; | |
} | |
/** Add a new field to the list */ | |
void append(t_field* elem) { | |
members_.push_back(elem); | |
} | |
const std::vector<t_field*>& get_members() { | |
return members_; | |
} | |
bool is_struct() const { | |
return !is_xception_; | |
} | |
bool is_xception() const { | |
return is_xception_; | |
} | |
private: | |
std::vector<t_field*> members_; | |
bool is_xception_; | |
}; | |
#endif |