Uploaded image for project: 'Thrift'
  1. Thrift
  2. THRIFT-1316

thrift: update server classes to accept

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • None
    • 0.8
    • C++ - Library
    • None

    Description

      From d645a23c026536598f7a922d2ebaeb599f4dcfdc Mon Sep 17 00:00:00 2001
      From: Adam Simpkins <simpkins@fb.com>
      Date: Mon, 19 Apr 2010 19:09:25 +0000
      Subject: [PATCH 27/33] thrift: update server classes to accept
      TProcessorFactory objects

      Summary:
      Update TSimpleServer, TThreadedServer, TThreadPoolServer, and
      TNonblockingServer constructors to accept either a TProcessorFactory or
      a TProcessor.

      Unfortunately, using boost::shared_ptr makes this somewhat more
      annoying, since shared_ptr's are no help for overload resolution:
      each shared_ptr type defines a template constructor that accepts any
      other arbitrary pointer type. (The constructor is defined, it is just
      an error to actually try an instantiate it with an inconvertible pointer
      type. However, because it is defined, it is still treated as valid for
      overload resolution.) Therefore we define a THRIFT_OVERLOAD_IF helper
      macro to force overload resolution to occur properly.

      Test Plan:
      Ran the test code from [fb unittest], although that only tests singleton
      factories. I also have an example program that demonstrates using real
      processor factories. I'll check that in separately.

      Revert Plan:
      OK

      Conflicts:

      lib/cpp/src/Thrift.h

      lib/cpp/src/Thrift.h | 25 ++++++++
      lib/cpp/src/server/TNonblockingServer.h | 66 +++++++++++++++++++--
      lib/cpp/src/server/TServer.h | 92 +++++++++++++++++++++++++----
      lib/cpp/src/server/TSimpleServer.h | 51 +++++++++++++---
      lib/cpp/src/server/TThreadPoolServer.cpp | 22 -------
      lib/cpp/src/server/TThreadPoolServer.h | 73 +++++++++++++++++++----
      lib/cpp/src/server/TThreadedServer.cpp | 22 ++------
      lib/cpp/src/server/TThreadedServer.h | 91 ++++++++++++++++++++++++++---
      8 files changed, 351 insertions, 91 deletions

      Attachments

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            davejwatson@fb Dave Watson
            davejwatson@fb Dave Watson
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Issue deployment