Commit Graph

3550 Commits

Author SHA1 Message Date
Marc Slemko
71d4e47e81 Cleaned up test code for thrift exception throwing
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664758 13f79535-47bb-0310-9956-ffa450edef68
2006-08-15 22:34:04 +00:00
Marc Slemko
bf4fd19963 Modified C++ code-gen to create default constructors for all non-string primitives so that auto variable instances of structs aren't populated with
garbage.  This matters because, given thrift's loosey-goosey argument and result lists, structs may only be sparsely filled.
    


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664757 13f79535-47bb-0310-9956-ffa450edef68
2006-08-15 21:29:39 +00:00
Marc Slemko
aeb36f840b Added namespace declaration
Added namespace declaration to thrift grammar
    
    Modified C++ code generator to produce equivalent C++ namespace for thrift namespace if specified
    


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664756 13f79535-47bb-0310-9956-ffa450edef68
2006-08-15 00:21:45 +00:00
Marc Slemko
1785985754 Added namespace declaration
Added namespace declaration to thrift grammar
    
    Modified C++ code generator to produce equivalent C++ namespace for thrift namespace if specified
    


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664755 13f79535-47bb-0310-9956-ffa450edef68
2006-08-15 00:21:31 +00:00
Marc Slemko
d8b1051800 You scream, I scream, We all scream for exceptions
Added exception defintions and specifiers to thrift grammar
    
    Modified C++ code generator to to catch and serialize exceptions on the server side and unmarshall and throw them on the client side.
    
Modified grammar to require ","  after each service function declaration to keep it consistent with struct declaration syntax

    This checkin officially breaks the old parser


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664754 13f79535-47bb-0310-9956-ffa450edef68
2006-08-14 23:30:37 +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
66d67d8e11 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@664751 13f79535-47bb-0310-9956-ffa450edef68
2006-08-11 23:33:08 +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
27340eb5cd Fixed parser to ensure that map key-type and set value-type are comparable (ie primivitive or a typedef that resolves to a primitive) at parse-time
to avoid unsightly errors at stub/skel compilation time.


			       


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664748 13f79535-47bb-0310-9956-ffa450edef68
2006-08-10 20:45:55 +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
c4eb9e8889 Fixed serialization logic for collections containing typedefs or enums
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664746 13f79535-47bb-0310-9956-ffa450edef68
2006-08-10 03:29:29 +00:00
Marc Slemko
db14e17a33 Modified cpp code generation to build read/write methods for each non-primitive type rather than inlining all serialization in client/server function handlers
Modified parser to assign negative numbers to autogenerated struct fields and function args.
			       


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664745 13f79535-47bb-0310-9956-ffa450edef68
2006-08-09 23:36:18 +00:00
Marc Slemko
c0e07a2d85 Modified cpp code generation to build read/write methods for each non-primitive type rather than inlining all serialization in client/server function handlers
Modified parser to assign negative numbers to autogenerated struct fields and function args.
			       


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664744 13f79535-47bb-0310-9956-ffa450edef68
2006-08-09 23:34:57 +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
Marc Slemko
b2039e70fe python parser for thrift using ply lalr generator
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664742 13f79535-47bb-0310-9956-ffa450edef68
2006-08-09 01:00:17 +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
Mark Slee
52f643df7c Thrift compiler support for inline PHP client code
Summary: Option to generate inline PHP code, as well as support for the async modifier keyword and the abstraction of function calls into a send and recv component




git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664740 13f79535-47bb-0310-9956-ffa450edef68
2006-08-09 00:03:43 +00:00
Marc Slemko
002e6468f3 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@664739 13f79535-47bb-0310-9956-ffa450edef68
2006-08-04 03:16:46 +00:00
Marc Slemko
6be374b55b 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@664738 13f79535-47bb-0310-9956-ffa450edef68
2006-08-04 03:16:25 +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
d173407b7f Adjust the Thrift compiler makefile to clean up after the obj/ folder that it builds into
Summary: I am super nitpicky, and after make clean I don't like seeing:
$ svn st
?   obj/

Problem: make clean didn't remove the generated obj/ dir

Solution: Kill it!

Reviewed By: aditya

Test Plan: Do make clean in compiler directory followed by svn st. You should see nothing!





git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664717 13f79535-47bb-0310-9956-ffa450edef68
2006-06-07 06:57:01 +00:00
Mark Slee
9577100f3c Thrift test code
Summary: Did I promise you this or what?! Interoperable test servers and clients in both C++ and Java that you can use to check that they all work, all perform well, and that they all actually talk to each other!

Problem: How we gon' test this Thrift bizniss?

Solution: Write some test scenarios in each language.

Reviewed By: aditya

Test Plan: This IS the test plan.

Notes: These tools are actually pretty easy to use, so long as you remember to type 'ant' in the java directory instead of 'make'.





git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664716 13f79535-47bb-0310-9956-ffa450edef68
2006-06-07 06:53:25 +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
b15a68bd89 Thrift compiler now compiles both native Java and C++ code
Summary: Compiles to both C++ and Java, plus a host of other cool options like command line control over which languages to output code in

Reviewed By: aditya

Test Plan: The unit test checkins are coming momentarily...




git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664713 13f79535-47bb-0310-9956-ffa450edef68
2006-06-07 06:46:24 +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
Mark Slee
319857233b Baseline commit for thrift, which is pillar v2
Reviewed By: aditya




git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664711 13f79535-47bb-0310-9956-ffa450edef68
2006-05-24 21:45:31 +00:00
David Reiss
a68c74e9b9 Adding dummy thrift and trunk directories.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664710 13f79535-47bb-0310-9956-ffa450edef68
2008-05-11 20:54:23 +00:00
Doug Cutting
c06bbbfe75 initialize thrift repo
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@657196 13f79535-47bb-0310-9956-ffa450edef68
2008-05-16 20:33:47 +00:00