cpp: fix automake dependencies and make ProcessorTest.cpp compilable again
diff --git a/lib/cpp/test/Makefile.am b/lib/cpp/test/Makefile.am
index 4d61e37..e404b40 100755
--- a/lib/cpp/test/Makefile.am
+++ b/lib/cpp/test/Makefile.am
@@ -30,6 +30,8 @@
 	gen-cpp/Recursive_types.h \
 	gen-cpp/ThriftTest_types.cpp \
 	gen-cpp/ThriftTest_types.h \
+	gen-cpp/ThriftTest_constants.cpp \
+	gen-cpp/ThriftTest_constants.h \
 	gen-cpp/TypedefTest_types.cpp \
 	gen-cpp/TypedefTest_types.h \
 	ThriftTest_extras.cpp \
@@ -48,7 +50,9 @@
 
 libtestgencpp_la_LIBADD = $(top_builddir)/lib/cpp/libthrift.la
 
-noinst_PROGRAMS = Benchmark
+noinst_PROGRAMS = Benchmark \
+	processor_test \
+	concurrency_test
 
 Benchmark_SOURCES = \
 	Benchmark.cpp
@@ -71,9 +75,6 @@
 	link_test \
 	OpenSSLManualInitTest \
 	EnumTest
-# disable these test ... too strong
-#       processor_test
-#	concurrency_test
 
 TESTS_ENVIRONMENT= \
 	BOOST_TEST_LOG_SINK=tests.xml \
@@ -264,7 +265,7 @@
 gen-cpp/SecondService.cpp gen-cpp/ThriftTest_constants.cpp gen-cpp/ThriftTest.cpp gen-cpp/ThriftTest_types.cpp gen-cpp/ThriftTest_types.h: $(top_srcdir)/test/ThriftTest.thrift
 	$(THRIFT) --gen cpp:dense $<
 
-gen-cpp/ChildService.cpp: processor/proc.thrift
+gen-cpp/ChildService.cpp gen-cpp/ParentService.cpp gen-cpp/proc_types.cpp: processor/proc.thrift
 	$(THRIFT) --gen cpp:templates,cob_style $<
 
 AM_CPPFLAGS = $(BOOST_CPPFLAGS) -I$(top_srcdir)/lib/cpp/src
diff --git a/lib/cpp/test/processor/ProcessorTest.cpp b/lib/cpp/test/processor/ProcessorTest.cpp
index 58b82fb..0283d20 100644
--- a/lib/cpp/test/processor/ProcessorTest.cpp
+++ b/lib/cpp/test/processor/ProcessorTest.cpp
@@ -58,13 +58,13 @@
  public:
   typedef TSimpleServer ServerType;
 
-  shared_ptr<TSimpleServer> createServer(
-      const shared_ptr<TProcessor>& processor,
+  boost::shared_ptr<TSimpleServer> createServer(
+      const boost::shared_ptr<TProcessor>& processor,
       uint16_t port,
-      const shared_ptr<TTransportFactory>& transportFactory,
-      const shared_ptr<TProtocolFactory>& protocolFactory) {
-    shared_ptr<TServerSocket> socket(new TServerSocket(port));
-    return shared_ptr<TSimpleServer>(new TSimpleServer(
+      const boost::shared_ptr<TTransportFactory>& transportFactory,
+      const boost::shared_ptr<TProtocolFactory>& protocolFactory) {
+    boost::shared_ptr<TServerSocket> socket(new TServerSocket(port));
+    return boost::shared_ptr<TSimpleServer>(new TSimpleServer(
           processor, socket, transportFactory, protocolFactory));
   }
 };
@@ -73,13 +73,13 @@
  public:
   typedef TThreadedServer ServerType;
 
-  shared_ptr<TThreadedServer> createServer(
-      const shared_ptr<TProcessor>& processor,
+  boost::shared_ptr<TThreadedServer> createServer(
+      const boost::shared_ptr<TProcessor>& processor,
       uint16_t port,
-      const shared_ptr<TTransportFactory>& transportFactory,
-      const shared_ptr<TProtocolFactory>& protocolFactory) {
-    shared_ptr<TServerSocket> socket(new TServerSocket(port));
-    return shared_ptr<TThreadedServer>(new TThreadedServer(
+      const boost::shared_ptr<TTransportFactory>& transportFactory,
+      const boost::shared_ptr<TProtocolFactory>& protocolFactory) {
+    boost::shared_ptr<TServerSocket> socket(new TServerSocket(port));
+    return boost::shared_ptr<TThreadedServer>(new TThreadedServer(
           processor, socket, transportFactory, protocolFactory));
   }
 };
@@ -88,20 +88,20 @@
  public:
   typedef TThreadPoolServer ServerType;
 
-  shared_ptr<TThreadPoolServer> createServer(
-      const shared_ptr<TProcessor>& processor,
+  boost::shared_ptr<TThreadPoolServer> createServer(
+      const boost::shared_ptr<TProcessor>& processor,
       uint16_t port,
-      const shared_ptr<TTransportFactory>& transportFactory,
-      const shared_ptr<TProtocolFactory>& protocolFactory) {
-    shared_ptr<TServerSocket> socket(new TServerSocket(port));
+      const boost::shared_ptr<TTransportFactory>& transportFactory,
+      const boost::shared_ptr<TProtocolFactory>& protocolFactory) {
+    boost::shared_ptr<TServerSocket> socket(new TServerSocket(port));
 
-    shared_ptr<PosixThreadFactory> threadFactory(new PosixThreadFactory);
-    shared_ptr<ThreadManager> threadManager =
+    boost::shared_ptr<PosixThreadFactory> threadFactory(new PosixThreadFactory);
+    boost::shared_ptr<ThreadManager> threadManager =
       ThreadManager::newSimpleThreadManager(8);
     threadManager->threadFactory(threadFactory);
     threadManager->start();
 
-    return shared_ptr<TThreadPoolServer>(new TThreadPoolServer(
+    return boost::shared_ptr<TThreadPoolServer>(new TThreadPoolServer(
           processor, socket, transportFactory, protocolFactory,
           threadManager));
   }
@@ -111,11 +111,11 @@
  public:
   typedef TNonblockingServer ServerType;
 
-  shared_ptr<TNonblockingServer> createServer(
-      const shared_ptr<TProcessor>& processor,
+  boost::shared_ptr<TNonblockingServer> createServer(
+      const boost::shared_ptr<TProcessor>& processor,
       uint16_t port,
-      const shared_ptr<TTransportFactory>& transportFactory,
-      const shared_ptr<TProtocolFactory>& protocolFactory) {
+      const boost::shared_ptr<TTransportFactory>& transportFactory,
+      const boost::shared_ptr<TProtocolFactory>& protocolFactory) {
     // TNonblockingServer automatically uses TFramedTransport.
     // Raise an exception if the supplied transport factory is not a
     // TFramedTransportFactory
@@ -125,13 +125,13 @@
       throw TException("TNonblockingServer must use TFramedTransport");
     }
 
-    shared_ptr<PosixThreadFactory> threadFactory(new PosixThreadFactory);
-    shared_ptr<ThreadManager> threadManager =
+    boost::shared_ptr<PosixThreadFactory> threadFactory(new PosixThreadFactory);
+    boost::shared_ptr<ThreadManager> threadManager =
       ThreadManager::newSimpleThreadManager(8);
     threadManager->threadFactory(threadFactory);
     threadManager->start();
 
-    return shared_ptr<TNonblockingServer>(new TNonblockingServer(
+    return boost::shared_ptr<TNonblockingServer>(new TNonblockingServer(
           processor, protocolFactory, port, threadManager));
   }
 };
@@ -140,11 +140,11 @@
  public:
   typedef TNonblockingServer ServerType;
 
-  shared_ptr<TNonblockingServer> createServer(
-      const shared_ptr<TProcessor>& processor,
+  boost::shared_ptr<TNonblockingServer> createServer(
+      const boost::shared_ptr<TProcessor>& processor,
       uint16_t port,
-      const shared_ptr<TTransportFactory>& transportFactory,
-      const shared_ptr<TProtocolFactory>& protocolFactory) {
+      const boost::shared_ptr<TTransportFactory>& transportFactory,
+      const boost::shared_ptr<TProtocolFactory>& protocolFactory) {
     // TNonblockingServer automatically uses TFramedTransport.
     // Raise an exception if the supplied transport factory is not a
     // TFramedTransportFactory
@@ -155,8 +155,8 @@
     }
 
     // Use a NULL ThreadManager
-    shared_ptr<ThreadManager> threadManager;
-    return shared_ptr<TNonblockingServer>(new TNonblockingServer(
+    boost::shared_ptr<ThreadManager> threadManager;
+    return boost::shared_ptr<TNonblockingServer>(new TNonblockingServer(
           processor, protocolFactory, port, threadManager));
   }
 };
@@ -246,13 +246,13 @@
     processor_->setEventHandler(processorEventHandler_);
   }
 
-  shared_ptr<TServer> createServer(uint16_t port) {
+  boost::shared_ptr<TServer> createServer(uint16_t port) {
     ServerTraits_ serverTraits;
     return serverTraits.createServer(processor_, port, transportFactory_,
                                      protocolFactory_);
   }
 
-  shared_ptr<TServerEventHandler> getServerEventHandler() {
+  boost::shared_ptr<TServerEventHandler> getServerEventHandler() {
     return serverEventHandler_;
   }
 
@@ -264,42 +264,42 @@
     return port_;
   }
 
-  const shared_ptr<EventLog>& getLog() const {
+  const boost::shared_ptr<EventLog>& getLog() const {
     return log_;
   }
 
-  const shared_ptr<Handler>& getHandler() const {
+  const boost::shared_ptr<Handler>& getHandler() const {
     return handler_;
   }
 
-  shared_ptr<Client> createClient() {
+  boost::shared_ptr<Client> createClient() {
     typedef typename ServiceTraits_::Protocol Protocol;
 
-    shared_ptr<TSocket> socket(new TSocket("127.0.0.1", port_));
-    shared_ptr<Transport_> transport(new Transport_(socket));
-    shared_ptr<Protocol> protocol(new Protocol(transport));
+    boost::shared_ptr<TSocket> socket(new TSocket("127.0.0.1", port_));
+    boost::shared_ptr<Transport_> transport(new Transport_(socket));
+    boost::shared_ptr<Protocol> protocol(new Protocol(transport));
     transport->open();
 
-    shared_ptr<Client> client(new Client(protocol));
+    boost::shared_ptr<Client> client(new Client(protocol));
     return client;
   }
 
  private:
   uint16_t port_;
-  shared_ptr<EventLog> log_;
-  shared_ptr<Handler> handler_;
-  shared_ptr<Processor> processor_;
-  shared_ptr<TTransportFactory> transportFactory_;
-  shared_ptr<TProtocolFactory> protocolFactory_;
-  shared_ptr<TServerEventHandler> serverEventHandler_;
-  shared_ptr<TProcessorEventHandler> processorEventHandler_;
+  boost::shared_ptr<EventLog> log_;
+  boost::shared_ptr<Handler> handler_;
+  boost::shared_ptr<Processor> processor_;
+  boost::shared_ptr<TTransportFactory> transportFactory_;
+  boost::shared_ptr<TProtocolFactory> protocolFactory_;
+  boost::shared_ptr<TServerEventHandler> serverEventHandler_;
+  boost::shared_ptr<TProcessorEventHandler> processorEventHandler_;
 };
 
 
 /**
  * Check that there are no more events in the log
  */
-void checkNoEvents(const shared_ptr<EventLog>& log) {
+void checkNoEvents(const boost::shared_ptr<EventLog>& log) {
   // Wait for an event with a very short timeout period.  We don't expect
   // anything to be present, so we will normally wait for the full timeout.
   // On the other hand, a non-zero timeout is nice since it does give a short
@@ -313,7 +313,7 @@
  *
  * Returns the connection ID allocated by the server.
  */
-uint32_t checkNewConnEvents(const shared_ptr<EventLog>& log) {
+uint32_t checkNewConnEvents(const boost::shared_ptr<EventLog>& log) {
   // Check for an ET_CONN_CREATED event
   Event event = log->waitForEvent();
   BOOST_CHECK_EQUAL(EventLog::ET_CONN_CREATED, event.type);
@@ -328,7 +328,7 @@
 /**
  * Check for the events that should be logged when a connection is closed.
  */
-void checkCloseEvents(const shared_ptr<EventLog>& log, uint32_t connId) {
+void checkCloseEvents(const boost::shared_ptr<EventLog>& log, uint32_t connId) {
   // Check for an ET_CONN_DESTROYED event
   Event event = log->waitForEvent();
   BOOST_CHECK_EQUAL(EventLog::ET_CONN_DESTROYED, event.type);
@@ -346,7 +346,7 @@
  *
  * Returns the call ID allocated by the server.
  */
-uint32_t checkCallHandlerEvents(const shared_ptr<EventLog>& log,
+uint32_t checkCallHandlerEvents(const boost::shared_ptr<EventLog>& log,
                                 uint32_t connId,
                                 EventType callType,
                                 const string& callName) {
@@ -383,7 +383,7 @@
 /**
  * Check for the events that should be after a handler returns.
  */
-void checkCallPostHandlerEvents(const shared_ptr<EventLog>& log,
+void checkCallPostHandlerEvents(const boost::shared_ptr<EventLog>& log,
                                 uint32_t connId,
                                 uint32_t callId,
                                 const string& callName) {
@@ -423,7 +423,7 @@
  *
  * Returns the call ID allocated by the server.
  */
-uint32_t checkCallEvents(const shared_ptr<EventLog>& log,
+uint32_t checkCallEvents(const boost::shared_ptr<EventLog>& log,
                          uint32_t connId,
                          EventType callType,
                          const string& callName) {
@@ -438,8 +438,8 @@
  */
 
 template<typename State_>
-void testParentService(const shared_ptr<State_>& state) {
-  shared_ptr<typename State_::Client> client = state->createClient();
+void testParentService(const boost::shared_ptr<State_>& state) {
+  boost::shared_ptr<typename State_::Client> client = state->createClient();
 
   int32_t gen = client->getGeneration();
   int32_t newGen = client->incrementGeneration();
@@ -460,8 +460,8 @@
 }
 
 template<typename State_>
-void testChildService(const shared_ptr<State_>& state) {
-  shared_ptr<typename State_::Client> client = state->createClient();
+void testChildService(const boost::shared_ptr<State_>& state) {
+  boost::shared_ptr<typename State_::Client> client = state->createClient();
 
   // Test calling some of the parent methids via the a child client
   int32_t gen = client->getGeneration();
@@ -483,7 +483,7 @@
     State;
 
   // Start the server
-  shared_ptr<State> state(new State);
+  boost::shared_ptr<State> state(new State);
   ServerThread serverThread(state, true);
 
   testParentService(state);
@@ -495,7 +495,7 @@
     State;
 
   // Start the server
-  shared_ptr<State> state(new State);
+  boost::shared_ptr<State> state(new State);
   ServerThread serverThread(state, true);
 
   testParentService(state);
@@ -517,10 +517,10 @@
     State;
 
   // Start the server
-  shared_ptr<State> state(new State);
+  boost::shared_ptr<State> state(new State);
   ServerThread serverThread(state, true);
 
-  const shared_ptr<EventLog>& log = state->getLog();
+  const boost::shared_ptr<EventLog>& log = state->getLog();
 
   // Make sure we're at the end of the log
   checkNoEvents(log);
@@ -529,7 +529,7 @@
 
   // Make sure createContext() is called after a connection has been
   // established.  We open a plain socket instead of creating a client.
-  shared_ptr<TSocket> socket(new TSocket("127.0.0.1", state->getPort()));
+  boost::shared_ptr<TSocket> socket(new TSocket("127.0.0.1", state->getPort()));
   socket->open();
 
   // Make sure the proper events occurred after a new connection
@@ -651,19 +651,19 @@
     State;
 
   // Start the server
-  shared_ptr<State> state(new State);
+  boost::shared_ptr<State> state(new State);
   ServerThread serverThread(state, true);
 
-  const shared_ptr<EventLog>& log = state->getLog();
+  const boost::shared_ptr<EventLog>& log = state->getLog();
 
   // Create a client
-  shared_ptr<typename State::Client> client1 = state->createClient();
+  boost::shared_ptr<typename State::Client> client1 = state->createClient();
 
   // Make sure the expected events were logged
   uint32_t client1Id = checkNewConnEvents(log);
 
   // Create a second client
-  shared_ptr<typename State::Client> client2 = state->createClient();
+  boost::shared_ptr<typename State::Client> client2 = state->createClient();
 
   // Make sure the expected events were logged
   uint32_t client2Id = checkNewConnEvents(log);
@@ -701,13 +701,13 @@
     State;
 
   // Start the server
-  shared_ptr<State> state(new State);
+  boost::shared_ptr<State> state(new State);
   ServerThread serverThread(state, true);
 
-  const shared_ptr<EventLog>& log = state->getLog();
+  const boost::shared_ptr<EventLog>& log = state->getLog();
 
   // Create a client
-  shared_ptr<typename State::Client> client = state->createClient();
+  boost::shared_ptr<typename State::Client> client = state->createClient();
   uint32_t connId = checkNewConnEvents(log);
 
   // Make a oneway call
@@ -756,13 +756,13 @@
     State;
 
   // Start the server
-  shared_ptr<State> state(new State);
+  boost::shared_ptr<State> state(new State);
   ServerThread serverThread(state, true);
 
-  const shared_ptr<EventLog>& log = state->getLog();
+  const boost::shared_ptr<EventLog>& log = state->getLog();
 
   // Create a client
-  shared_ptr<typename State::Client> client = state->createClient();
+  boost::shared_ptr<typename State::Client> client = state->createClient();
   uint32_t connId = checkNewConnEvents(log);
 
   // Send the exceptionWait() call
@@ -811,13 +811,13 @@
     State;
 
   // Start the server
-  shared_ptr<State> state(new State);
+  boost::shared_ptr<State> state(new State);
   ServerThread serverThread(state, true);
 
-  const shared_ptr<EventLog>& log = state->getLog();
+  const boost::shared_ptr<EventLog>& log = state->getLog();
 
   // Create a client
-  shared_ptr<typename State::Client> client = state->createClient();
+  boost::shared_ptr<typename State::Client> client = state->createClient();
   uint32_t connId = checkNewConnEvents(log);
 
   // Send the unexpectedExceptionWait() call
@@ -925,10 +925,10 @@
 DEFINE_TNONBLOCKINGSERVER_TESTS(TNonblockingServerNoThreads, Templated)
 DEFINE_TNONBLOCKINGSERVER_TESTS(TNonblockingServerNoThreads, Untemplated)
 
-DEFINE_SIMPLE_TESTS(TSimpleServer, Templated);
-DEFINE_SIMPLE_TESTS(TSimpleServer, Untemplated);
-DEFINE_NOFRAME_TESTS(TSimpleServer, Templated);
-DEFINE_NOFRAME_TESTS(TSimpleServer, Untemplated);
+DEFINE_SIMPLE_TESTS(TSimpleServer, Templated)
+DEFINE_SIMPLE_TESTS(TSimpleServer, Untemplated)
+DEFINE_NOFRAME_TESTS(TSimpleServer, Templated)
+DEFINE_NOFRAME_TESTS(TSimpleServer, Untemplated)
 
 // TODO: We should test TEventServer in the future.
 // For now, it is known not to work correctly with TProcessorEventHandler.
diff --git a/test/cpp/Makefile.am b/test/cpp/Makefile.am
index 51380ab..33e71a3 100755
--- a/test/cpp/Makefile.am
+++ b/test/cpp/Makefile.am
@@ -94,7 +94,7 @@
 gen-cpp/ThriftTest.cpp gen-cpp/ThriftTest_types.cpp gen-cpp/ThriftTest_constants.cpp: $(top_srcdir)/test/ThriftTest.thrift
 	$(THRIFT) --gen cpp:templates,cob_style -r $<
 
-gen-cpp/StressTest_types.cpp gen-cpp/StressTest_constants.cpp: $(top_srcdir)/test/StressTest.thrift
+gen-cpp/StressTest_types.cpp gen-cpp/StressTest_constants.cpp gen-cpp/Service.cpp: $(top_srcdir)/test/StressTest.thrift
 	$(THRIFT) --gen cpp $<
 
 AM_CPPFLAGS = $(BOOST_CPPFLAGS) $(LIBEVENT_CPPFLAGS) -I$(top_srcdir)/lib/cpp/src -Igen-cpp
diff --git a/tutorial/cpp/Makefile.am b/tutorial/cpp/Makefile.am
index e895b03..9768c51 100755
--- a/tutorial/cpp/Makefile.am
+++ b/tutorial/cpp/Makefile.am
@@ -60,7 +60,7 @@
 #
 THRIFT = $(top_builddir)/compiler/cpp/thrift
 
-gen-cpp/Calculator.cpp gen-cpp/tutorial_types.cpp gen-cpp/tutorial_constants.cpp: $(top_srcdir)/tutorial/tutorial.thrift
+gen-cpp/Calculator.cpp gen-cpp/SharedService.cpp gen-cpp/shared_constants.cpp gen-cpp/shared_types.cpp gen-cpp/tutorial_constants.cpp gen-cpp/tutorial_types.cpp: $(top_srcdir)/tutorial/tutorial.thrift
 	$(THRIFT) --gen cpp -r $<
 
 AM_CPPFLAGS = $(BOOST_CPPFLAGS) $(LIBEVENT_CPPFLAGS) -I$(top_srcdir)/lib/cpp/src -Igen-cpp