30 bool t_type::has_annotation(
bool check_self,
31 const std::vector<t_field*> &members,
33 bool has_annotation =
false;
36 has_annotation = t_type::has_key_annotation();
38 return has_annotation;
42 std::vector<t_field*>::const_iterator m_iter;
43 for (m_iter = members.begin(); m_iter != members.end(); ++m_iter) {
44 if (((*m_iter)->get_type())->
is_struct()) {
45 const char *sname = ((*m_iter)->get_type())->
get_name().c_str();
46 t_struct *cstruct = program->get_struct(sname);
49 const std::vector<t_program*>& includes = program->
get_includes();
50 std::vector<t_program*>::const_iterator iter;
51 for (iter = includes.begin(); iter != includes.end(); ++iter) {
52 cstruct = (*iter)->get_struct(sname);
59 throw "compiler error: CANNOT FIND struct: " + std::string(sname);
61 has_annotation = cstruct->has_key_annotation();
63 has_annotation = (*m_iter)->has_key_annotation();
66 return has_annotation;
69 return has_annotation;
72 bool t_struct::has_key_annotation()
const {
void md5_init(md5_state_t *pms)
uint8_t fingerprint_[fingerprint_len]
const std::vector< t_program * > & get_includes() const
virtual std::string get_fingerprint_material() const =0
virtual bool is_typedef() const
void md5_finish(md5_state_t *pms, md5_byte_t digest[16])
virtual void generate_fingerprint()
virtual const std::string & get_name() const
virtual bool has_key_annotation() const
virtual bool is_struct() const
void md5_append(md5_state_t *pms, const md5_byte_t *data, int nbytes)