46 const std::map<std::string, std::string>& parsed_options,
47 const std::string& option_string)
50 (void) parsed_options;
52 out_dir_base_ =
"gen-html";
55 void generate_program();
61 void generate_field_xml(
t_field * tfl);
62 void generate_struct_xml(
const string& stname);
63 void generate_sandesh_xml(
t_sandesh* tsnd);
69 void generate_sandesh (
t_sandesh* tsandesh) {}
77 vector<t_struct*> objects = program_->get_objects();
78 vector<t_struct*>::iterator o_iter;
79 for (o_iter = objects.begin(); o_iter != objects.end(); ++o_iter) {
81 const string & sname = tstruct->
get_name();
82 if (0 == sname.compare(stname)){
83 f_out_ <<
"<" << sname <<
">";
85 vector<t_field*>::iterator mem_iter = members.begin();
86 for ( ; mem_iter != members.end(); mem_iter++) {
87 generate_field_xml(*mem_iter);
89 f_out_ <<
"</" << sname <<
">";
100 f_out_ <<
"<" << fdname <<
" type=\"" << fdtype->
get_name() <<
101 "\">0</" << fdname <<
">";
102 }
else if (fdtype->
is_list()) {
107 f_out_ <<
"<td><table border=\"1\"><tr>" << endl;
109 vector<t_field*>::iterator smem_iter = smem.begin();
110 for ( ; smem_iter != smem.end(); smem_iter++) {
111 f_out_ <<
"<th>" << (*smem_iter)->get_name() <<
"</th>" << endl;
113 f_out_ <<
"</tr><xsl:apply-templates select=\"" <<
114 fdname <<
"/list/" << ts->
get_name() <<
"\"/></table></td>" ;
116 f_out_ <<
"<td style=\"color:blue\"><xsl:value-of select=\"" <<
117 fdname <<
"\"/></td>" << endl;
121 f_out_ <<
"<" << fdname <<
" type=\"struct\">";
122 generate_struct_xml(fdtype->
get_name());
123 f_out_ <<
"</" << fdname <<
">";
129 f_out_ <<
"<" << name <<
" type=\"sandesh\">" << endl;
131 vector<t_field*>::iterator mem_iter = members.begin();
132 for ( ; mem_iter != members.end(); mem_iter++) {
133 if ((*mem_iter)->get_auto_generated())
continue;
134 generate_field_xml(*mem_iter);
136 f_out_ <<
"</" << name <<
">" << endl;
141 MKDIR(get_out_dir().c_str());
142 string fname = get_out_dir() + program_->get_name() +
".xml";
143 f_out_.open(fname.c_str());
145 "<?xml-stylesheet type=\"text/xsl\" href=\"/universal_parse.xsl\"?>" <<
147 f_out_ <<
"<" << program_->get_name() <<
" type=\"rlist\">" << endl;
150 if (!program_->get_sandeshs().empty()) {
151 vector<t_sandesh*> sandeshs = program_->get_sandeshs();
152 vector<t_sandesh*>::iterator s_iter;
153 for (s_iter = sandeshs.begin(); s_iter != sandeshs.end(); ++s_iter) {
154 if (static_cast<const t_base_type*>((*s_iter)->get_type())->get_base() ==
155 t_base_type::TYPE_SANDESH_REQUEST)
156 generate_sandesh_xml(*s_iter);
160 f_out_ <<
"</" << program_->get_name() <<
">" << endl;
const std::string & get_name() const
void generate_field_xml(t_field *tfl)
t_type * get_type() const
virtual bool is_base_type() const
const members_type & get_members()
t_html_generator(t_program *program, const std::map< std::string, std::string > &parsed_options, const std::string &option_string)
void generate_sandesh_xml(t_sandesh *tsnd)
void generate_service(t_service *tservice)
t_type * get_elem_type() const
virtual const std::string & get_name() const
virtual bool is_list() const
void generate_typedef(t_typedef *ttypedef)
virtual bool is_struct() const
void generate_struct(t_struct *tstruct)
void generate_struct_xml(const string &stname)
void generate_const(t_const *tconst)
#define THRIFT_REGISTER_GENERATOR(language, long_name, doc)
void generate_enum(t_enum *tenum)