summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Meier <roger@apache.org>2011-11-23 21:02:46 +0000
committerRoger Meier <roger@apache.org>2011-11-23 21:02:46 +0000
commit94519b394374391b4d026163f227dec43863e9bd (patch)
tree8a5e7bed52cb9ce143e08c5d4c487e34798b6112
parent289cbb2e4c3550caf1011548bda1996383100c7c (diff)
downloadthrift-94519b394374391b4d026163f227dec43863e9bd.tar.gz
THRIFT-1434 Node.js Thrift compiler fails to generate server code using inheritance
Patch: Wade Simmons git-svn-id: https://svn.apache.org/repos/asf/thrift/trunk@1205592 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--compiler/cpp/src/generate/t_js_generator.cc11
1 files changed, 10 insertions, 1 deletions
diff --git a/compiler/cpp/src/generate/t_js_generator.cc b/compiler/cpp/src/generate/t_js_generator.cc
index d7d83bfba..6a27886eb 100644
--- a/compiler/cpp/src/generate/t_js_generator.cc
+++ b/compiler/cpp/src/generate/t_js_generator.cc
@@ -741,7 +741,9 @@ void t_js_generator::generate_service(t_service* tservice) {
"var " << tservice->get_extends()->get_name() <<
" = require('./" << tservice->get_extends()->get_name() << "')" << endl <<
"var " << tservice->get_extends()->get_name() << "Client = " <<
- tservice->get_extends()->get_name() << ".Client" << endl;
+ tservice->get_extends()->get_name() << ".Client" << endl <<
+ "var " << tservice->get_extends()->get_name() << "Processor = " <<
+ tservice->get_extends()->get_name() << ".Processor" << endl;
}
@@ -779,6 +781,13 @@ void t_js_generator::generate_service_processor(t_service* tservice) {
scope_down(f_service_);
+ if (tservice->get_extends() != NULL) {
+ indent(f_service_) << "Thrift.inherits(" <<
+ js_namespace(tservice->get_program()) <<
+ service_name_ << "Processor, " <<
+ tservice->get_extends()->get_name() << "Processor)" << endl;
+ }
+
// Generate the server implementation
indent(f_service_) <<
js_namespace(tservice->get_program()) << service_name_ << "Processor.prototype.process = function(input, output) ";