Commit Graph

1493 Commits

Author SHA1 Message Date
Mark Slee
f5f2be46a3 Thrift: standardize coding style
Summary: Standardize indentation, spacing, #defines etc.


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664784 13f79535-47bb-0310-9956-ffa450edef68
2006-09-05 21:05:31 +00:00
Mark Slee
c9676569ad Thrift Python server code generation
Summary: Yep, it's up and running. We now have full client/server support in all of C++ Java PHP and Python. Well, not quite... there's no PHP server, but honestly who wants one? Actually, if we do want one the framework will support writing is as a PHP file that can be served in apache like a web service (i.e. restserver.php would be thriftserver.php). But now that's rambling and nothing to do with this commit.

Notes: cheever, let's chat about porting your multithreaded Pillar Python server over to Thrift


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664783 13f79535-47bb-0310-9956-ffa450edef68
2006-09-05 17:34:52 +00:00
Mark Slee
4ecbebc099 Add multiserver generation to C++ Thrift
Summary: Autogen server that can encapsulates multiple server instances

Reviewed By: aditya


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664782 13f79535-47bb-0310-9956-ffa450edef68
2006-09-05 00:14:21 +00:00
Mark Slee
fc89d39917 Thrift and Python: Made to be together
Summary: Python client code generation for Thrift... HOTNESS!

Notes: Servers and asynchronous clients are coming soon...


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664779 13f79535-47bb-0310-9956-ffa450edef68
2006-09-04 00:04:39 +00:00
Mark Slee
cde2b61c5e Implementation of the basic Thrift stack in Python
Summary: Framework, install script, base classes, TSocket, TBinaryProtocol

Notes: Code-gen is coming around the bend...


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664778 13f79535-47bb-0310-9956-ffa450edef68
2006-09-03 21:13:07 +00:00
Mark Slee
78f58e2559 Thrift generation for Java
Summary: Java works, benchmark roundtrip at around 3ms, so right in between C++ and PHP


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664775 13f79535-47bb-0310-9956-ffa450edef68
2006-09-02 04:17:07 +00:00
Mark Slee
cfc0193d46 Thrift library updates, remove unsigned types
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664772 13f79535-47bb-0310-9956-ffa450edef68
2006-09-01 22:18:16 +00:00
Mark Slee
632f323f6c Move Thrift StressTest code into test top-level folder
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664770 13f79535-47bb-0310-9956-ffa450edef68
2006-08-30 17:23:52 +00:00
Marc Slemko
d97eb61120 Fixed handling of signed 64bit integers to support 32bit and 64bit architectures
Fixed a few bugs with php code generation

Initial stab at setting absolute thrift php require_once paths at configure time in order to guarantee APC caching.  Needswork.  It's hard to get automake to allow post-processing of installed files.

Lightly reviewed by mark slee



	


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664768 13f79535-47bb-0310-9956-ffa450edef68
2006-08-24 23:37:36 +00:00
Marc Slemko
b09f58838f Uber configure.ac/Makefile.am and configure.ac/Makefile.am for lib/php and compiler
Modified TProtocol.h et al to take collection size as unsigned int.  This removes need to cast STL's default size_t to signed int and is more correct, since collection sizes cannot be < 0 by definition

Moved compiler/Makefile to compiler/cpp.mk so it doesn't get trashed by automake

    


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664766 13f79535-47bb-0310-9956-ffa450edef68
2006-08-23 22:03:34 +00:00
Marc Slemko
056f9ba9a0 Print out results of stress test
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664764 13f79535-47bb-0310-9956-ffa450edef68
2006-08-17 02:59:05 +00:00
Marc Slemko
e18890f8dc straggler
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664763 13f79535-47bb-0310-9956-ffa450edef68
2006-08-17 01:23:12 +00:00
Marc Slemko
3ea0033770 Added stress test for thrift benchmarks
Modified TServer - made it a subclass of concurrency::Runnable to allow servers to be handed directly to concurreny::ThreadFactory when creating server threads.
    


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664759 13f79535-47bb-0310-9956-ffa450edef68
2006-08-17 01:11:13 +00:00
Marc Slemko
e6889de36f Fixed a few typos - test client and server samples now working with new code generation
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664753 13f79535-47bb-0310-9956-ffa450edef68
2006-08-12 00:32:53 +00:00
Marc Slemko
91f674823a Added function name to read/writeMessageBegin args
Added cpp generator for master server message processor


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664752 13f79535-47bb-0310-9956-ffa450edef68
2006-08-11 23:58:57 +00:00
Marc Slemko
5b126d6c85 Groundwork for exception support:
Auto generate result structs that combine return type and any thrown exceptions
     Add __isset struct to all user defined and auto defined struct to mark fields that are explicilty read
     Modified client and server generation code to marshal result structs

     Added base facebook::thrift::Exception class 


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664750 13f79535-47bb-0310-9956-ffa450edef68
2006-08-11 23:03:42 +00:00
Marc Slemko
0b4ffa9d4c Added read/write I16, U16 and Bool methods to TProtocol
Modified code generation to define structs and io methods for function argument lists and server process call implementations


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664749 13f79535-47bb-0310-9956-ffa450edef68
2006-08-11 02:49:29 +00:00
Marc Slemko
d42a2c2bf9 Rationalized include-directory schema
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664747 13f79535-47bb-0310-9956-ffa450edef68
2006-08-10 03:30:18 +00:00
Marc Slemko
c09a65aa4b fixed test build
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664743 13f79535-47bb-0310-9956-ffa450edef68
2006-08-09 01:20:16 +00:00
Mark Slee
530fd662c0 Java Thrift libraries no longer use specially defined UInt32 etc. classes
Summary: There was really no need for these now that we are getting rid of unsigned, they should all just use the builtin int and long types





git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664741 13f79535-47bb-0310-9956-ffa450edef68
2006-08-09 00:05:18 +00:00
Marc Slemko
1669885931 More boosification of thrift driver, server, transport and protocol code
Modified TestServer to use thread-pool manager 


	


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664737 13f79535-47bb-0310-9956-ffa450edef68
2006-08-04 03:16:10 +00:00
Marc Slemko
35452346e6 Converted concurrency classes to use boost::shared_ptr and boost::weak_ptr:
Wrapped all thrift code in facebook::thrift:: namespace


	


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664736 13f79535-47bb-0310-9956-ffa450edef68
2006-08-03 19:01:37 +00:00
Marc Slemko
6f038a7b60 Converted concurrency classes to use boost::shared_ptr and boost::weak_ptr:
Wrapped all thrift code in facebook::thrift:: namespace


	


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664735 13f79535-47bb-0310-9956-ffa450edef68
2006-08-03 18:58:09 +00:00
Marc Slemko
03eafbeac9 Added BNF describing proposed logical wire format for Thrift message streams
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664734 13f79535-47bb-0310-9956-ffa450edef68
2006-08-02 20:01:22 +00:00
Marc Slemko
c778297bd0 autoconf/automake/libtool-ized thrift cpp bits:
Fixed to build on solaris.
    Used clock_gettime() where available
    Fixed rounding of time to ms

			       


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664733 13f79535-47bb-0310-9956-ffa450edef68
2006-07-25 02:26:35 +00:00
Marc Slemko
e03da189af autoconf/automake:
Fixed handling of bits/socket.h MSG_NODELAY
	


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664732 13f79535-47bb-0310-9956-ffa450edef68
2006-07-21 21:32:36 +00:00
Marc Slemko
9d4a3e2a78 autoconf/automake/libtool-ized thrift cpp bits:
Moved the original Makefile => Makefile.slee

			       


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664731 13f79535-47bb-0310-9956-ffa450edef68
2006-07-21 19:53:48 +00:00
Marc Slemko
9f0ba255a9 autoconf/automake line noise for linux/osx builds
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664730 13f79535-47bb-0310-9956-ffa450edef68
2006-07-21 03:53:13 +00:00
Marc Slemko
fe5ba12e4a More test code added...
more bugs found

facebook::thrift::concurrency::ThreadManager::add
	Fixed dispatch error that resulted in only one of N worker threads ever getting notified of work

facebook::thrift::concurrency::ThreadManager
	Cleaned up addWorker/removeWorker and stop logic so that adding/removing workers doesn't wake up 
	all blocked workers.

facebook::thrift::concurrency::Thread
facebook::thrift::concurrency::Runnable
	Fixed initialization logic so that runnable can return the thread that runs it


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664729 13f79535-47bb-0310-9956-ffa450edef68
2006-07-20 21:16:27 +00:00
Marc Slemko
03dedd9bd5 Fixed a few problems found on linux x86_64 version
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664728 13f79535-47bb-0310-9956-ffa450edef68
2006-07-20 00:58:47 +00:00
Marc Slemko
740343dad2 Forgot this one
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664727 13f79535-47bb-0310-9956-ffa450edef68
2006-07-20 00:31:02 +00:00
Marc Slemko
525c202df4 Forgot this one
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664726 13f79535-47bb-0310-9956-ffa450edef68
2006-07-20 00:29:35 +00:00
Marc Slemko
d466b211fd Bring up of thread manager
facebook::thrift::concurrency::test.ThreadManagerTest::test00
	Launch N tasks that block for time T, verify they all complete and that the thread manager cleans up properly
	when it goes out of scope
	


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664725 13f79535-47bb-0310-9956-ffa450edef68
2006-07-20 00:04:18 +00:00
Marc Slemko
9f27a4eb7d More bullet proofing of timer manager
facebook::thrift::concurrency::TimerManager::stop
	Added proper cleanup of unprocessed tasks and shutdown of dispatcher thread to stop

facebook::thrift::concurrency::TimerManager::~TimerManager
	Call stop if manager wasn't explicitly stopped

facebook::thrift::concurrency::test.TimerManagerTest
	Calculate error margin for timeout expiration and verify it's within bounds
	Verify manager stops properly when it goes out of scope
	


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664724 13f79535-47bb-0310-9956-ffa450edef68
2006-07-19 20:02:22 +00:00
Marc Slemko
8a40a76b27 Added thread factory test - problems in thread
Fixed stupid typo in  TimerManager::start


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664723 13f79535-47bb-0310-9956-ffa450edef68
2006-07-19 17:46:50 +00:00
Marc Slemko
0e53ccdb8b Another checkpoint of initial cut at thread pool manager for thrift and related concurrency classes.
Added TimerManager -  I can't live without one after all.

Added Util - handy place for common time operations et al.

Initial test code


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664722 13f79535-47bb-0310-9956-ffa450edef68
2006-07-17 23:51:05 +00:00
Marc Slemko
66949879ff Checkpoint of initial cut at thread pool manager for thrift and related concurrency classes.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664721 13f79535-47bb-0310-9956-ffa450edef68
2006-07-15 01:52:39 +00:00
Mark Slee
6e53644ce5 Thrift now works in PHP, hot stuff
Summary: End to end communication working in Thrift with PHP

Problem: It's a bit slower than pillar still. Need to find out why.

Reviewed By: aditya

Test Plan: Unit tests are in the test directory. Get lucas on the PHP case...




git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664720 13f79535-47bb-0310-9956-ffa450edef68
2006-06-30 18:28:50 +00:00
Mark Slee
4e0d962693 Thrift: move /lib/cpp code into /lib/cpp/src
Summary: Clean separation of src and buildfiles etc. is key

Reviewed By: aditya





git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664719 13f79535-47bb-0310-9956-ffa450edef68
2006-06-26 23:56:08 +00:00
Mark Slee
f3c322b4a3 Thrift: getting rid of U32s for map/list/set/string lengths and field ids etc.
Summary: U32s are on the out. Make way for the I32.

Reviewed By: aditya





git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664718 13f79535-47bb-0310-9956-ffa450edef68
2006-06-26 23:52:22 +00:00
Mark Slee
83c52a8d7a Java libraries for Thrift
Summary: The basic Thrift stack implemented in Java, still in need of a lot of work but fully functional.

Reviewed By: aditya

Test Plan: Unit tests are the NEXT checkin, I swear

Notes: Perf on the Java stuff actually isn't that bad, and it's far from optimized at the moment. Barely any tweaking has been done. Testing shows that a Java server with the C++ client has RPC performance within 2x of the pure C++ implementations. This is pretty sweet, since this cost will be eclipsed by the cost of whatever processing is being done on an actual server doing real work.




git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664715 13f79535-47bb-0310-9956-ffa450edef68
2006-06-07 06:51:18 +00:00
Mark Slee
8d7e1f62a8 Update Thrift CPP libraries to work with new generated source, change underlying buffers to use uint8_t* instead of std::string
Summary: Major overhaul to the CPP libraries.

Reviewed By: aditya

Test Plan: Again, keep an eye out for the unit tests commit

Notes: Initial perf tests show that Thrift is not only more robust than Pillar, but its implementation is actually around 10-20% faster. We can do about 10 RPC function calls with small data payloads in under 2ms. THAT IS FAST. THAT IS THRIFTY.




git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664714 13f79535-47bb-0310-9956-ffa450edef68
2006-06-07 06:48:56 +00:00
Mark Slee
e8540637aa Rev 2 of Thrift, the Pillar successor
Summary: End-to-end communications and serialization in C++ is working

Reviewed By: aditya

Test Plan: See the new top-level test/ folder. It vaguely resembles a unit test, though it could be more automated.

Revert Plan: Revertible

Notes: Still a LOT of optimization work to be done on the generated C++ code, which should be using dynamic memory in a number of places. Next major task is writing the PHP/Java/Python generators.




git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664712 13f79535-47bb-0310-9956-ffa450edef68
2006-05-30 09:24:40 +00:00