Thrift compiler improvements, two modes for PHP
Summary: Complete PHP generator and CPP generator to new formats, and offer PHP generator that generates inline code free of any TProtocol abstraction
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664771 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/compiler/cpp/src/parse/t_struct.h b/compiler/cpp/src/parse/t_struct.h
index 6e87c8c..a365cd4 100644
--- a/compiler/cpp/src/parse/t_struct.h
+++ b/compiler/cpp/src/parse/t_struct.h
@@ -9,22 +9,41 @@
class t_struct : public t_type {
public:
- t_struct() {}
- t_struct(const std::string& name) : t_type(name) {}
+ 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; }
+ 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); }
+ void append(t_field* elem) {
+ members_.push_back(elem);
+ }
- const std::vector<t_field*>& get_members() { return members_; }
- bool is_struct() const { return true; }
+ 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