You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by he...@apache.org on 2014/04/09 20:57:37 UTC
git commit: THRIFT-2421: Tree/Recursive struct support in thrift
Client: cpp
Repository: thrift
Updated Branches:
refs/heads/master 524b924f6 -> bcc0f1aa7
THRIFT-2421: Tree/Recursive struct support in thrift
Client: cpp
also fix mixed tabs and ignore RecursiveTest binary
Project: http://git-wip-us.apache.org/repos/asf/thrift/repo
Commit: http://git-wip-us.apache.org/repos/asf/thrift/commit/bcc0f1aa
Tree: http://git-wip-us.apache.org/repos/asf/thrift/tree/bcc0f1aa
Diff: http://git-wip-us.apache.org/repos/asf/thrift/diff/bcc0f1aa
Branch: refs/heads/master
Commit: bcc0f1aa732974aaf14a88b5ba1e180c66440949
Parents: 524b924
Author: henrique <he...@apache.org>
Authored: Wed Apr 9 20:52:11 2014 +0200
Committer: henrique <he...@apache.org>
Committed: Wed Apr 9 20:57:17 2014 +0200
----------------------------------------------------------------------
.gitignore | 6 ++-
compiler/cpp/src/generate/t_cpp_generator.cc | 46 +++++++++++------------
2 files changed, 27 insertions(+), 25 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/thrift/blob/bcc0f1aa/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
index 90d5308..bff0826 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,14 +19,15 @@
*.swp
*.m4
*~
+
+.*project
+junit*.properties
gen-*
Makefile
Makefile.in
autom4te.cache
node_modules
-.project
-.pydevproject
.sonar
.DS_Store
.svn
@@ -75,6 +76,7 @@ node_modules
/lib/cpp/test/OptionalRequiredTest
/lib/cpp/test/SpecializationTest
/lib/cpp/test/ReflectionTest
+/lib/cpp/test/RecursiveTest
/lib/cpp/test/TFDTransportTest
/lib/cpp/test/TFileTransportTest
/lib/cpp/test/TPipedTransportTest
http://git-wip-us.apache.org/repos/asf/thrift/blob/bcc0f1aa/compiler/cpp/src/generate/t_cpp_generator.cc
----------------------------------------------------------------------
diff --git a/compiler/cpp/src/generate/t_cpp_generator.cc b/compiler/cpp/src/generate/t_cpp_generator.cc
index c9a44ef..92eab2f 100755
--- a/compiler/cpp/src/generate/t_cpp_generator.cc
+++ b/compiler/cpp/src/generate/t_cpp_generator.cc
@@ -157,7 +157,7 @@ class t_cpp_generator : public t_oop_generator {
void generate_deserialize_struct (std::ofstream& out,
t_struct* tstruct,
std::string prefix="",
- bool pointer=false);
+ bool pointer=false);
void generate_deserialize_container (std::ofstream& out,
t_type* ttype,
@@ -185,7 +185,7 @@ class t_cpp_generator : public t_oop_generator {
void generate_serialize_struct (std::ofstream& out,
t_struct* tstruct,
std::string prefix="",
- bool pointer=false);
+ bool pointer=false);
void generate_serialize_container (std::ofstream& out,
t_type* ttype,
@@ -864,7 +864,7 @@ void t_cpp_generator::generate_assignment_operator(
indent(out) << "if (this == &" << tmp_name << ") return *this;" << endl;
indent(out) << "if (" << (*f_iter)->get_name() << ") {" << endl;
indent(out) << " *" << (*f_iter)->get_name() << " = *" << tmp_name << "." <<
- (*f_iter)->get_name() << ";" << endl;
+ (*f_iter)->get_name() << ";" << endl;
indent(out) << "} else {" << endl;
indent(out) << " " << (*f_iter)->get_name() << " = new " << type << "(*" << tmp_name << "." <<
(*f_iter)->get_name() << ");" << endl;
@@ -1137,8 +1137,8 @@ void t_cpp_generator::generate_struct_declaration(ofstream& out,
}
void t_cpp_generator::generate_struct_definition(ofstream& out,
- t_struct* tstruct,
- bool setters) {
+ t_struct* tstruct,
+ bool setters) {
// Get members
vector<t_field*>::const_iterator m_iter;
const vector<t_field*>& members = tstruct->get_members();
@@ -1153,8 +1153,8 @@ void t_cpp_generator::generate_struct_definition(ofstream& out,
for (m_iter = members.begin(); m_iter != members.end(); ++m_iter) {
if (is_reference(*m_iter)) {
- out << indent() <<
- "delete " << (*m_iter)->get_name() << ";" << endl;
+ out << indent() <<
+ "delete " << (*m_iter)->get_name() << ";" << endl;
}
}
@@ -1166,20 +1166,20 @@ void t_cpp_generator::generate_struct_definition(ofstream& out,
if (setters) {
for (m_iter = members.begin(); m_iter != members.end(); ++m_iter) {
out <<
- endl <<
- indent() << "void " << tstruct->get_name() << "::__set_" << (*m_iter)->get_name() <<
+ endl <<
+ indent() << "void " << tstruct->get_name() << "::__set_" << (*m_iter)->get_name() <<
"(" << type_name((*m_iter)->get_type(), false, true);
out << " val) {" << endl;
indent_up();
if (is_reference((*m_iter))) {
- std::string type = type_name((*m_iter)->get_type());
- indent(out) << "if (" << (*m_iter)->get_name() << ") {" << endl;
- indent(out) << " *" << (*m_iter)->get_name() << " = val;" << endl;
- indent(out) << "} else {" << endl;
- indent(out) << " " << (*m_iter)->get_name() << " = new " << type << "(val);" << endl;
- indent(out) << "}" << endl;
+ std::string type = type_name((*m_iter)->get_type());
+ indent(out) << "if (" << (*m_iter)->get_name() << ") {" << endl;
+ indent(out) << " *" << (*m_iter)->get_name() << " = val;" << endl;
+ indent(out) << "} else {" << endl;
+ indent(out) << " " << (*m_iter)->get_name() << " = new " << type << "(val);" << endl;
+ indent(out) << "}" << endl;
} else {
- out << indent() << (*m_iter)->get_name() << " = val;" << endl;
+ out << indent() << (*m_iter)->get_name() << " = val;" << endl;
}
indent_down();
@@ -1187,12 +1187,12 @@ void t_cpp_generator::generate_struct_definition(ofstream& out,
// for optional fields change __isset.name to true
bool is_optional = (*m_iter)->get_req() == t_field::T_OPTIONAL;
if (is_optional) {
- out <<
- indent() <<
- indent() << "__isset." << (*m_iter)->get_name() << " = true;" << endl;
+ out <<
+ indent() <<
+ indent() << "__isset." << (*m_iter)->get_name() << " = true;" << endl;
}
out <<
- indent()<< "}" << endl;
+ indent()<< "}" << endl;
}
}
out << endl;
@@ -4075,7 +4075,7 @@ void t_cpp_generator::generate_deserialize_field(ofstream& out,
void t_cpp_generator::generate_deserialize_struct(ofstream& out,
t_struct* tstruct,
string prefix,
- bool pointer) {
+ bool pointer) {
if (pointer) {
indent(out) << "if (!" << prefix << ") { " << endl;
indent(out) << " " << prefix << " = new " << type_name(tstruct) << ";" << endl;
@@ -4247,7 +4247,7 @@ void t_cpp_generator::generate_serialize_field(ofstream& out,
generate_serialize_struct(out,
(t_struct*)type,
name,
- is_reference(tfield));
+ is_reference(tfield));
} else if (type->is_container()) {
generate_serialize_container(out, type, name);
} else if (type->is_base_type() || type->is_enum()) {
@@ -4311,7 +4311,7 @@ void t_cpp_generator::generate_serialize_field(ofstream& out,
void t_cpp_generator::generate_serialize_struct(ofstream& out,
t_struct* tstruct,
string prefix,
- bool pointer) {
+ bool pointer) {
if (pointer) {
indent(out) << "if (" << prefix << ") {" << endl;
indent(out) << " xfer += " << prefix << "->write(oprot); " << endl;