auser-poolparty 1.3.0 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION.yml +1 -1
- data/examples/monitored_cloud.rb +1 -1
- data/examples/thrift/thrift_example.rb +1 -1
- data/lib/proto/command_interface_handler.rb +1 -1
- data/vendor/gems/thrift/CHANGES +35 -0
- data/vendor/gems/thrift/CONTRIBUTORS +77 -0
- data/vendor/gems/thrift/DISCLAIMER +6 -0
- data/vendor/gems/thrift/LICENSE +202 -0
- data/vendor/gems/thrift/Makefile.am +28 -0
- data/vendor/gems/thrift/NEWS +79 -0
- data/vendor/gems/thrift/NOTICE +26 -0
- data/vendor/gems/thrift/README +137 -0
- data/vendor/gems/thrift/aclocal/ax_boost_base.m4 +198 -0
- data/vendor/gems/thrift/aclocal/ax_javac_and_java.m4 +107 -0
- data/vendor/gems/thrift/aclocal/ax_lib_event.m4 +194 -0
- data/vendor/gems/thrift/aclocal/ax_lib_zlib.m4 +173 -0
- data/vendor/gems/thrift/aclocal/ax_signed_right_shift.m4 +127 -0
- data/vendor/gems/thrift/aclocal/ax_thrift_internal.m4 +39 -0
- data/vendor/gems/thrift/bootstrap.sh +35 -0
- data/vendor/gems/thrift/cleanup.sh +58 -0
- data/vendor/gems/thrift/compiler/cpp/Makefile.am +136 -0
- data/vendor/gems/thrift/compiler/cpp/README +39 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_cocoa_generator.cc +2331 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_cpp_generator.cc +3003 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_csharp_generator.cc +1700 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_erl_generator.cc +932 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_generator.cc +173 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_generator.h +321 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_hs_generator.cc +1445 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_html_generator.cc +637 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_java_generator.cc +3069 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_ocaml_generator.cc +1673 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_oop_generator.h +77 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_perl_generator.cc +1812 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_php_generator.cc +2281 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_py_generator.cc +2310 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_rb_generator.cc +1114 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_st_generator.cc +1071 -0
- data/vendor/gems/thrift/compiler/cpp/src/generate/t_xsd_generator.cc +354 -0
- data/vendor/gems/thrift/compiler/cpp/src/globals.h +117 -0
- data/vendor/gems/thrift/compiler/cpp/src/main.cc +1207 -0
- data/vendor/gems/thrift/compiler/cpp/src/main.h +103 -0
- data/vendor/gems/thrift/compiler/cpp/src/md5.c +381 -0
- data/vendor/gems/thrift/compiler/cpp/src/md5.h +91 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_base_type.h +137 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_const.h +59 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_const_value.h +121 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_container.h +56 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_doc.h +51 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_enum.h +59 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_enum_value.h +64 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_field.h +150 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_function.h +93 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_list.h +56 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_map.h +64 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_program.h +223 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_scope.h +86 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_service.h +68 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_set.h +55 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_struct.h +127 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_type.h +176 -0
- data/vendor/gems/thrift/compiler/cpp/src/parse/t_typedef.h +70 -0
- data/vendor/gems/thrift/compiler/cpp/src/platform.h +36 -0
- data/vendor/gems/thrift/compiler/cpp/src/thriftl.ll +303 -0
- data/vendor/gems/thrift/compiler/cpp/src/thrifty.yy +1140 -0
- data/vendor/gems/thrift/configure.ac +255 -0
- data/vendor/gems/thrift/contrib/fb303/LICENSE +16 -0
- data/vendor/gems/thrift/contrib/fb303/Makefile.am +31 -0
- data/vendor/gems/thrift/contrib/fb303/README +37 -0
- data/vendor/gems/thrift/contrib/fb303/acinclude.m4 +258 -0
- data/vendor/gems/thrift/contrib/fb303/aclocal/ax_boost_base.m4 +198 -0
- data/vendor/gems/thrift/contrib/fb303/bootstrap.sh +26 -0
- data/vendor/gems/thrift/contrib/fb303/configure.ac +115 -0
- data/vendor/gems/thrift/contrib/fb303/cpp/FacebookBase.cpp +124 -0
- data/vendor/gems/thrift/contrib/fb303/cpp/FacebookBase.h +103 -0
- data/vendor/gems/thrift/contrib/fb303/cpp/Makefile.am +84 -0
- data/vendor/gems/thrift/contrib/fb303/cpp/ServiceTracker.cpp +481 -0
- data/vendor/gems/thrift/contrib/fb303/cpp/ServiceTracker.h +215 -0
- data/vendor/gems/thrift/contrib/fb303/global_footer.mk +21 -0
- data/vendor/gems/thrift/contrib/fb303/global_header.mk +38 -0
- data/vendor/gems/thrift/contrib/fb303/if/fb303.thrift +112 -0
- data/vendor/gems/thrift/contrib/fb303/java/FacebookBase.java +103 -0
- data/vendor/gems/thrift/contrib/fb303/java/build.xml +84 -0
- data/vendor/gems/thrift/contrib/fb303/php/FacebookBase.php +89 -0
- data/vendor/gems/thrift/contrib/fb303/py/Makefile.am +44 -0
- data/vendor/gems/thrift/contrib/fb303/py/fb303/FacebookBase.py +82 -0
- data/vendor/gems/thrift/contrib/fb303/py/fb303_scripts/__init__.py +20 -0
- data/vendor/gems/thrift/contrib/fb303/py/fb303_scripts/fb303_simple_mgmt.py +195 -0
- data/vendor/gems/thrift/contrib/fb303/py/setup.py +27 -0
- data/vendor/gems/thrift/contrib/thrift.el +126 -0
- data/vendor/gems/thrift/contrib/thrift.spec +206 -0
- data/vendor/gems/thrift/contrib/thrift.vim +91 -0
- data/vendor/gems/thrift/contrib/thrift_dump.cpp +91 -0
- data/vendor/gems/thrift/doc/lgpl-2.1.txt +504 -0
- data/vendor/gems/thrift/doc/otp-base-license.txt +20 -0
- data/vendor/gems/thrift/doc/thrift.bnf +96 -0
- data/vendor/gems/thrift/doc/thrift.tex +1057 -0
- data/vendor/gems/thrift/lib/Makefile.am +55 -0
- data/vendor/gems/thrift/lib/cocoa/README +21 -0
- data/vendor/gems/thrift/lib/cocoa/src/TApplicationException.h +44 -0
- data/vendor/gems/thrift/lib/cocoa/src/TApplicationException.m +130 -0
- data/vendor/gems/thrift/lib/cocoa/src/TException.h +34 -0
- data/vendor/gems/thrift/lib/cocoa/src/TException.m +64 -0
- data/vendor/gems/thrift/lib/cocoa/src/TProcessor.h +29 -0
- data/vendor/gems/thrift/lib/cocoa/src/TProcessorFactory.h +27 -0
- data/vendor/gems/thrift/lib/cocoa/src/TSharedProcessorFactory.h +27 -0
- data/vendor/gems/thrift/lib/cocoa/src/TSharedProcessorFactory.m +51 -0
- data/vendor/gems/thrift/lib/cocoa/src/protocol/TBinaryProtocol.h +51 -0
- data/vendor/gems/thrift/lib/cocoa/src/protocol/TBinaryProtocol.m +477 -0
- data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocol.h +148 -0
- data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolException.h +25 -0
- data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolException.m +23 -0
- data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolFactory.h +29 -0
- data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolUtil.h +29 -0
- data/vendor/gems/thrift/lib/cocoa/src/protocol/TProtocolUtil.m +104 -0
- data/vendor/gems/thrift/lib/cocoa/src/server/TSocketServer.h +50 -0
- data/vendor/gems/thrift/lib/cocoa/src/server/TSocketServer.m +153 -0
- data/vendor/gems/thrift/lib/cocoa/src/transport/THTTPClient.h +42 -0
- data/vendor/gems/thrift/lib/cocoa/src/transport/THTTPClient.m +159 -0
- data/vendor/gems/thrift/lib/cocoa/src/transport/TNSFileHandleTransport.h +35 -0
- data/vendor/gems/thrift/lib/cocoa/src/transport/TNSFileHandleTransport.m +91 -0
- data/vendor/gems/thrift/lib/cocoa/src/transport/TNSStreamTransport.h +38 -0
- data/vendor/gems/thrift/lib/cocoa/src/transport/TNSStreamTransport.m +89 -0
- data/vendor/gems/thrift/lib/cocoa/src/transport/TSocketClient.h +32 -0
- data/vendor/gems/thrift/lib/cocoa/src/transport/TSocketClient.m +58 -0
- data/vendor/gems/thrift/lib/cocoa/src/transport/TTransport.h +36 -0
- data/vendor/gems/thrift/lib/cocoa/src/transport/TTransportException.h +30 -0
- data/vendor/gems/thrift/lib/cocoa/src/transport/TTransportException.m +43 -0
- data/vendor/gems/thrift/lib/cpp/Makefile.am +158 -0
- data/vendor/gems/thrift/lib/cpp/README +67 -0
- data/vendor/gems/thrift/lib/cpp/src/TLogging.h +163 -0
- data/vendor/gems/thrift/lib/cpp/src/TProcessor.h +53 -0
- data/vendor/gems/thrift/lib/cpp/src/TReflectionLocal.h +96 -0
- data/vendor/gems/thrift/lib/cpp/src/Thrift.cpp +148 -0
- data/vendor/gems/thrift/lib/cpp/src/Thrift.h +191 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Exception.h +60 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/FunctionRunner.h +77 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Monitor.cpp +137 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Monitor.h +84 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Mutex.cpp +160 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Mutex.h +114 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/PosixThreadFactory.cpp +314 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/PosixThreadFactory.h +130 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Thread.h +125 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/ThreadManager.cpp +493 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/ThreadManager.h +169 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/TimerManager.cpp +284 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/TimerManager.h +122 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Util.cpp +55 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/Util.h +100 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/test/Tests.cpp +155 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/test/ThreadFactoryTests.h +354 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/test/ThreadManagerTests.h +379 -0
- data/vendor/gems/thrift/lib/cpp/src/concurrency/test/TimerManagerTests.h +155 -0
- data/vendor/gems/thrift/lib/cpp/src/processor/PeekProcessor.cpp +122 -0
- data/vendor/gems/thrift/lib/cpp/src/processor/PeekProcessor.h +77 -0
- data/vendor/gems/thrift/lib/cpp/src/processor/StatsProcessor.h +264 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TBase64Utils.cpp +79 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TBase64Utils.h +42 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TBinaryProtocol.cpp +394 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TBinaryProtocol.h +254 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TCompactProtocol.cpp +736 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TCompactProtocol.h +279 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TDebugProtocol.cpp +346 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TDebugProtocol.h +225 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TDenseProtocol.cpp +762 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TDenseProtocol.h +253 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TJSONProtocol.cpp +998 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TJSONProtocol.h +340 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TOneWayProtocol.h +304 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TProtocol.h +438 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TProtocolException.h +104 -0
- data/vendor/gems/thrift/lib/cpp/src/protocol/TProtocolTap.h +187 -0
- data/vendor/gems/thrift/lib/cpp/src/server/TNonblockingServer.cpp +750 -0
- data/vendor/gems/thrift/lib/cpp/src/server/TNonblockingServer.h +435 -0
- data/vendor/gems/thrift/lib/cpp/src/server/TServer.cpp +38 -0
- data/vendor/gems/thrift/lib/cpp/src/server/TServer.h +213 -0
- data/vendor/gems/thrift/lib/cpp/src/server/TSimpleServer.cpp +118 -0
- data/vendor/gems/thrift/lib/cpp/src/server/TSimpleServer.h +70 -0
- data/vendor/gems/thrift/lib/cpp/src/server/TThreadPoolServer.cpp +217 -0
- data/vendor/gems/thrift/lib/cpp/src/server/TThreadPoolServer.h +79 -0
- data/vendor/gems/thrift/lib/cpp/src/server/TThreadedServer.cpp +243 -0
- data/vendor/gems/thrift/lib/cpp/src/server/TThreadedServer.h +74 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TBufferTransports.cpp +370 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TBufferTransports.h +667 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TFDTransport.cpp +77 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TFDTransport.h +73 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TFileTransport.cpp +953 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TFileTransport.h +442 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/THttpClient.cpp +348 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/THttpClient.h +111 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TServerSocket.cpp +368 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TServerSocket.h +76 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TServerTransport.h +92 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TShortReadTransport.h +96 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TSimpleFileTransport.cpp +54 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TSimpleFileTransport.h +41 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TSocket.cpp +591 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TSocket.h +242 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TSocketPool.cpp +235 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TSocketPool.h +191 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TTransport.h +224 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TTransportException.cpp +31 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TTransportException.h +117 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TTransportUtils.cpp +178 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TTransportUtils.h +287 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TZlibTransport.cpp +299 -0
- data/vendor/gems/thrift/lib/cpp/src/transport/TZlibTransport.h +219 -0
- data/vendor/gems/thrift/lib/cpp/thrift-nb.pc.in +30 -0
- data/vendor/gems/thrift/lib/cpp/thrift-z.pc.in +30 -0
- data/vendor/gems/thrift/lib/cpp/thrift.pc.in +29 -0
- data/vendor/gems/thrift/lib/csharp/Makefile.am +70 -0
- data/vendor/gems/thrift/lib/csharp/README +26 -0
- data/vendor/gems/thrift/lib/csharp/ThriftMSBuildTask/Properties/AssemblyInfo.cs +55 -0
- data/vendor/gems/thrift/lib/csharp/ThriftMSBuildTask/ThriftBuild.cs +242 -0
- data/vendor/gems/thrift/lib/csharp/ThriftMSBuildTask/ThriftMSBuildTask.csproj +62 -0
- data/vendor/gems/thrift/lib/csharp/src/Collections/THashSet.cs +142 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TBase.cs +34 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TBinaryProtocol.cs +392 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TField.cs +58 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TList.cs +50 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TMap.cs +58 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TMessage.cs +58 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TMessageType.cs +31 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocol.cs +87 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocolException.cs +61 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocolFactory.cs +29 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TProtocolUtil.cs +94 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TSet.cs +50 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TStruct.cs +42 -0
- data/vendor/gems/thrift/lib/csharp/src/Protocol/TType.cs +40 -0
- data/vendor/gems/thrift/lib/csharp/src/Server/TServer.cs +135 -0
- data/vendor/gems/thrift/lib/csharp/src/Server/TSimpleServer.cs +148 -0
- data/vendor/gems/thrift/lib/csharp/src/Server/TThreadPoolServer.cs +186 -0
- data/vendor/gems/thrift/lib/csharp/src/Server/TThreadedServer.cs +234 -0
- data/vendor/gems/thrift/lib/csharp/src/TApplicationException.cs +131 -0
- data/vendor/gems/thrift/lib/csharp/src/TProcessor.cs +29 -0
- data/vendor/gems/thrift/lib/csharp/src/Thrift.csproj +73 -0
- data/vendor/gems/thrift/lib/csharp/src/Thrift.sln +35 -0
- data/vendor/gems/thrift/lib/csharp/src/Transport/TBufferedTransport.cs +100 -0
- data/vendor/gems/thrift/lib/csharp/src/Transport/TServerSocket.cs +157 -0
- data/vendor/gems/thrift/lib/csharp/src/Transport/TServerTransport.cs +39 -0
- data/vendor/gems/thrift/lib/csharp/src/Transport/TSocket.cs +144 -0
- data/vendor/gems/thrift/lib/csharp/src/Transport/TStreamTransport.cs +103 -0
- data/vendor/gems/thrift/lib/csharp/src/Transport/TTransport.cs +66 -0
- data/vendor/gems/thrift/lib/csharp/src/Transport/TTransportException.cs +64 -0
- data/vendor/gems/thrift/lib/csharp/src/Transport/TTransportFactory.cs +38 -0
- data/vendor/gems/thrift/lib/erl/Makefile +37 -0
- data/vendor/gems/thrift/lib/erl/README +56 -0
- data/vendor/gems/thrift/lib/erl/build/beamver +59 -0
- data/vendor/gems/thrift/lib/erl/build/buildtargets.mk +15 -0
- data/vendor/gems/thrift/lib/erl/build/colors.mk +24 -0
- data/vendor/gems/thrift/lib/erl/build/docs.mk +12 -0
- data/vendor/gems/thrift/lib/erl/build/mime.types +98 -0
- data/vendor/gems/thrift/lib/erl/build/otp.mk +146 -0
- data/vendor/gems/thrift/lib/erl/build/otp_subdir.mk +85 -0
- data/vendor/gems/thrift/lib/erl/build/raw_test.mk +29 -0
- data/vendor/gems/thrift/lib/erl/include/thrift_constants.hrl +54 -0
- data/vendor/gems/thrift/lib/erl/include/thrift_protocol.hrl +31 -0
- data/vendor/gems/thrift/lib/erl/src/Makefile +116 -0
- data/vendor/gems/thrift/lib/erl/src/test_handler.erl +26 -0
- data/vendor/gems/thrift/lib/erl/src/test_service.erl +29 -0
- data/vendor/gems/thrift/lib/erl/src/thrift.app.src +44 -0
- data/vendor/gems/thrift/lib/erl/src/thrift.appup.src +1 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_base64_transport.erl +64 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_binary_protocol.erl +325 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_buffered_transport.erl +180 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_client.erl +384 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_disk_log_transport.erl +118 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_file_transport.erl +87 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_framed_transport.erl +208 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_http_transport.erl +199 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_memory_buffer.erl +164 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_processor.erl +188 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_protocol.erl +356 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_server.erl +183 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_service.erl +25 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_socket_server.erl +249 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_socket_transport.erl +119 -0
- data/vendor/gems/thrift/lib/erl/src/thrift_transport.erl +57 -0
- data/vendor/gems/thrift/lib/erl/vsn.mk +1 -0
- data/vendor/gems/thrift/lib/hs/README +82 -0
- data/vendor/gems/thrift/lib/hs/Setup.lhs +23 -0
- data/vendor/gems/thrift/lib/hs/TODO +2 -0
- data/vendor/gems/thrift/lib/hs/Thrift.cabal +20 -0
- data/vendor/gems/thrift/lib/hs/src/Thrift.hs +111 -0
- data/vendor/gems/thrift/lib/hs/src/Thrift/Protocol.hs +191 -0
- data/vendor/gems/thrift/lib/hs/src/Thrift/Protocol/Binary.hs +147 -0
- data/vendor/gems/thrift/lib/hs/src/Thrift/Server.hs +65 -0
- data/vendor/gems/thrift/lib/hs/src/Thrift/Transport.hs +60 -0
- data/vendor/gems/thrift/lib/hs/src/Thrift/Transport/Handle.hs +58 -0
- data/vendor/gems/thrift/lib/java/Makefile.am +38 -0
- data/vendor/gems/thrift/lib/java/README +43 -0
- data/vendor/gems/thrift/lib/java/build.xml +195 -0
- data/vendor/gems/thrift/lib/java/ivy.xml +8 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/IntRangeSet.java +171 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TApplicationException.java +123 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TBase.java +66 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TBaseHelper.java +102 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TByteArrayOutputStream.java +46 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TDeserializer.java +94 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TException.java +45 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TFieldRequirementType.java +30 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TProcessor.java +32 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TProcessorFactory.java +39 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/TSerializer.java +110 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/FieldMetaData.java +69 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/FieldValueMetaData.java +42 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/ListMetaData.java +29 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/MapMetaData.java +31 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/SetMetaData.java +29 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/meta_data/StructMetaData.java +31 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TBase64Utils.java +128 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TBinaryProtocol.java +331 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TCompactProtocol.java +741 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TField.java +48 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TJSONProtocol.java +927 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TList.java +38 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TMap.java +40 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TMessage.java +48 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TMessageType.java +31 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocol.java +146 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocolException.java +81 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocolFactory.java +30 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TProtocolUtil.java +158 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TSet.java +42 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TSimpleJSONProtocol.java +384 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TStruct.java +36 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/protocol/TType.java +40 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/THsHaServer.java +304 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TNonblockingServer.java +772 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TServer.java +126 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TSimpleServer.java +145 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/server/TThreadPoolServer.java +271 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TFramedTransport.java +126 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/THttpClient.java +157 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TIOStreamTransport.java +159 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TMemoryBuffer.java +98 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingServerSocket.java +160 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingServerTransport.java +31 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingSocket.java +213 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TNonblockingTransport.java +31 -0
- data/vendor/gems/thrift/lib/java/src/org/apache/thrift/transport/TServerSocket.java +145 -0
- metadata +348 -37
- data/vendor/gems/trollop/FAQ.txt +0 -35
- data/vendor/gems/trollop/History.txt +0 -84
- data/vendor/gems/trollop/Manifest.txt +0 -7
- data/vendor/gems/trollop/README.txt +0 -38
- data/vendor/gems/trollop/Rakefile +0 -36
- data/vendor/gems/trollop/lib/trollop.rb +0 -695
- data/vendor/gems/trollop/release-script.txt +0 -13
- data/vendor/gems/trollop/test/test_trollop.rb +0 -957
- data/vendor/gems/trollop/www/index.html +0 -167
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Licensed to the Apache Software Foundation (ASF) under one
|
|
3
|
+
* or more contributor license agreements. See the NOTICE file
|
|
4
|
+
* distributed with this work for additional information
|
|
5
|
+
* regarding copyright ownership. The ASF licenses this file
|
|
6
|
+
* to you under the Apache License, Version 2.0 (the
|
|
7
|
+
* "License"); you may not use this file except in compliance
|
|
8
|
+
* with the License. You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing,
|
|
13
|
+
* software distributed under the License is distributed on an
|
|
14
|
+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
15
|
+
* KIND, either express or implied. See the License for the
|
|
16
|
+
* specific language governing permissions and limitations
|
|
17
|
+
* under the License.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
#include "t_generator.h"
|
|
21
|
+
using namespace std;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Top level program generation function. Calls the generator subclass methods
|
|
25
|
+
* for preparing file streams etc. then iterates over all the parts of the
|
|
26
|
+
* program to perform the correct actions.
|
|
27
|
+
*
|
|
28
|
+
* @param program The thrift program to compile into C++ source
|
|
29
|
+
*/
|
|
30
|
+
void t_generator::generate_program() {
|
|
31
|
+
// Initialize the generator
|
|
32
|
+
init_generator();
|
|
33
|
+
|
|
34
|
+
// Generate enums
|
|
35
|
+
vector<t_enum*> enums = program_->get_enums();
|
|
36
|
+
vector<t_enum*>::iterator en_iter;
|
|
37
|
+
for (en_iter = enums.begin(); en_iter != enums.end(); ++en_iter) {
|
|
38
|
+
generate_enum(*en_iter);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// Generate typedefs
|
|
42
|
+
vector<t_typedef*> typedefs = program_->get_typedefs();
|
|
43
|
+
vector<t_typedef*>::iterator td_iter;
|
|
44
|
+
for (td_iter = typedefs.begin(); td_iter != typedefs.end(); ++td_iter) {
|
|
45
|
+
generate_typedef(*td_iter);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// Generate constants
|
|
49
|
+
vector<t_const*> consts = program_->get_consts();
|
|
50
|
+
generate_consts(consts);
|
|
51
|
+
|
|
52
|
+
// Generate structs and exceptions in declared order
|
|
53
|
+
vector<t_struct*> objects = program_->get_objects();
|
|
54
|
+
vector<t_struct*>::iterator o_iter;
|
|
55
|
+
for (o_iter = objects.begin(); o_iter != objects.end(); ++o_iter) {
|
|
56
|
+
if ((*o_iter)->is_xception()) {
|
|
57
|
+
generate_xception(*o_iter);
|
|
58
|
+
} else {
|
|
59
|
+
generate_struct(*o_iter);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// Generate services
|
|
64
|
+
vector<t_service*> services = program_->get_services();
|
|
65
|
+
vector<t_service*>::iterator sv_iter;
|
|
66
|
+
for (sv_iter = services.begin(); sv_iter != services.end(); ++sv_iter) {
|
|
67
|
+
service_name_ = get_service_name(*sv_iter);
|
|
68
|
+
generate_service(*sv_iter);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// Close the generator
|
|
72
|
+
close_generator();
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
string t_generator::escape_string(const string &in) const {
|
|
76
|
+
string result = "";
|
|
77
|
+
for (string::const_iterator it = in.begin(); it < in.end(); it++) {
|
|
78
|
+
std::map<char, std::string>::const_iterator res = escape_.find(*it);
|
|
79
|
+
if (res != escape_.end()) {
|
|
80
|
+
result.append(res->second);
|
|
81
|
+
} else {
|
|
82
|
+
result.push_back(*it);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return result;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
void t_generator::generate_consts(vector<t_const*> consts) {
|
|
89
|
+
vector<t_const*>::iterator c_iter;
|
|
90
|
+
for (c_iter = consts.begin(); c_iter != consts.end(); ++c_iter) {
|
|
91
|
+
generate_const(*c_iter);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
void t_generator::generate_docstring_comment(ofstream& out,
|
|
96
|
+
const string& comment_start,
|
|
97
|
+
const string& line_prefix,
|
|
98
|
+
const string& contents,
|
|
99
|
+
const string& comment_end) {
|
|
100
|
+
if (comment_start != "") indent(out) << comment_start;
|
|
101
|
+
stringstream docs(contents, ios_base::in);
|
|
102
|
+
while (!docs.eof()) {
|
|
103
|
+
char line[1024];
|
|
104
|
+
docs.getline(line, 1024);
|
|
105
|
+
if (strlen(line) > 0 || !docs.eof()) { // skip the empty last line
|
|
106
|
+
indent(out) << line_prefix << line << std::endl;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
if (comment_end != "") indent(out) << comment_end;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
void t_generator_registry::register_generator(t_generator_factory* factory) {
|
|
114
|
+
gen_map_t& the_map = get_generator_map();
|
|
115
|
+
if (the_map.find(factory->get_short_name()) != the_map.end()) {
|
|
116
|
+
failure("Duplicate generators for language \"%s\"!\n", factory->get_short_name().c_str());
|
|
117
|
+
}
|
|
118
|
+
the_map[factory->get_short_name()] = factory;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
t_generator* t_generator_registry::get_generator(t_program* program,
|
|
122
|
+
const string& options) {
|
|
123
|
+
string::size_type colon = options.find(':');
|
|
124
|
+
string language = options.substr(0, colon);
|
|
125
|
+
|
|
126
|
+
map<string, string> parsed_options;
|
|
127
|
+
if (colon != string::npos) {
|
|
128
|
+
string::size_type pos = colon+1;
|
|
129
|
+
while (pos != string::npos && pos < options.size()) {
|
|
130
|
+
string::size_type next_pos = options.find(',', pos);
|
|
131
|
+
string option = options.substr(pos, next_pos-pos);
|
|
132
|
+
pos = ((next_pos == string::npos) ? next_pos : next_pos+1);
|
|
133
|
+
|
|
134
|
+
string::size_type separator = option.find('=');
|
|
135
|
+
string key, value;
|
|
136
|
+
if (separator == string::npos) {
|
|
137
|
+
key = option;
|
|
138
|
+
value = "";
|
|
139
|
+
} else {
|
|
140
|
+
key = option.substr(0, separator);
|
|
141
|
+
value = option.substr(separator+1);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
parsed_options[key] = value;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
gen_map_t& the_map = get_generator_map();
|
|
149
|
+
gen_map_t::iterator iter = the_map.find(language);
|
|
150
|
+
|
|
151
|
+
if (iter == the_map.end()) {
|
|
152
|
+
return NULL;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
return iter->second->get_generator(program, parsed_options, options);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
t_generator_registry::gen_map_t& t_generator_registry::get_generator_map() {
|
|
159
|
+
// http://www.parashift.com/c++-faq-lite/ctors.html#faq-10.12
|
|
160
|
+
static gen_map_t* the_map = new gen_map_t();
|
|
161
|
+
return *the_map;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
t_generator_factory::t_generator_factory(
|
|
165
|
+
const std::string& short_name,
|
|
166
|
+
const std::string& long_name,
|
|
167
|
+
const std::string& documentation)
|
|
168
|
+
: short_name_(short_name)
|
|
169
|
+
, long_name_(long_name)
|
|
170
|
+
, documentation_(documentation)
|
|
171
|
+
{
|
|
172
|
+
t_generator_registry::register_generator(this);
|
|
173
|
+
}
|
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Licensed to the Apache Software Foundation (ASF) under one
|
|
3
|
+
* or more contributor license agreements. See the NOTICE file
|
|
4
|
+
* distributed with this work for additional information
|
|
5
|
+
* regarding copyright ownership. The ASF licenses this file
|
|
6
|
+
* to you under the Apache License, Version 2.0 (the
|
|
7
|
+
* "License"); you may not use this file except in compliance
|
|
8
|
+
* with the License. You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing,
|
|
13
|
+
* software distributed under the License is distributed on an
|
|
14
|
+
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
15
|
+
* KIND, either express or implied. See the License for the
|
|
16
|
+
* specific language governing permissions and limitations
|
|
17
|
+
* under the License.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
#ifndef T_GENERATOR_H
|
|
21
|
+
#define T_GENERATOR_H
|
|
22
|
+
|
|
23
|
+
#include <string>
|
|
24
|
+
#include <iostream>
|
|
25
|
+
#include <fstream>
|
|
26
|
+
#include <sstream>
|
|
27
|
+
#include "parse/t_program.h"
|
|
28
|
+
#include "globals.h"
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Base class for a thrift code generator. This class defines the basic
|
|
32
|
+
* routines for code generation and contains the top level method that
|
|
33
|
+
* dispatches code generation across various components.
|
|
34
|
+
*
|
|
35
|
+
*/
|
|
36
|
+
class t_generator {
|
|
37
|
+
public:
|
|
38
|
+
t_generator(t_program* program) {
|
|
39
|
+
tmp_ = 0;
|
|
40
|
+
indent_ = 0;
|
|
41
|
+
program_ = program;
|
|
42
|
+
program_name_ = get_program_name(program);
|
|
43
|
+
escape_['\n'] = "\\n";
|
|
44
|
+
escape_['\r'] = "\\r";
|
|
45
|
+
escape_['\t'] = "\\t";
|
|
46
|
+
escape_['"'] = "\\\"";
|
|
47
|
+
escape_['\\'] = "\\\\";
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
virtual ~t_generator() {}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Framework generator method that iterates over all the parts of a program
|
|
54
|
+
* and performs general actions. This is implemented by the base class and
|
|
55
|
+
* should not normally be overwritten in the subclasses.
|
|
56
|
+
*/
|
|
57
|
+
virtual void generate_program();
|
|
58
|
+
|
|
59
|
+
const t_program* get_program() const { return program_; }
|
|
60
|
+
|
|
61
|
+
void generate_docstring_comment(std::ofstream& out,
|
|
62
|
+
const std::string& comment_start,
|
|
63
|
+
const std::string& line_prefix,
|
|
64
|
+
const std::string& contents,
|
|
65
|
+
const std::string& comment_end);
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Escape string to use one in generated sources.
|
|
69
|
+
*/
|
|
70
|
+
virtual std::string escape_string(const std::string &in) const;
|
|
71
|
+
|
|
72
|
+
std::string get_escaped_string(t_const_value* constval) {
|
|
73
|
+
return escape_string(constval->get_string());
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
protected:
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Optional methods that may be imlemented by subclasses to take necessary
|
|
80
|
+
* steps at the beginning or end of code generation.
|
|
81
|
+
*/
|
|
82
|
+
|
|
83
|
+
virtual void init_generator() {}
|
|
84
|
+
virtual void close_generator() {}
|
|
85
|
+
|
|
86
|
+
virtual void generate_consts(std::vector<t_const*> consts);
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Pure virtual methods implemented by the generator subclasses.
|
|
90
|
+
*/
|
|
91
|
+
|
|
92
|
+
virtual void generate_typedef (t_typedef* ttypedef) = 0;
|
|
93
|
+
virtual void generate_enum (t_enum* tenum) = 0;
|
|
94
|
+
virtual void generate_const (t_const* tconst) {}
|
|
95
|
+
virtual void generate_struct (t_struct* tstruct) = 0;
|
|
96
|
+
virtual void generate_service (t_service* tservice) = 0;
|
|
97
|
+
virtual void generate_xception (t_struct* txception) {
|
|
98
|
+
// By default exceptions are the same as structs
|
|
99
|
+
generate_struct(txception);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Method to get the program name, may be overridden
|
|
104
|
+
*/
|
|
105
|
+
virtual std::string get_program_name(t_program* tprogram) {
|
|
106
|
+
return tprogram->get_name();
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Method to get the service name, may be overridden
|
|
111
|
+
*/
|
|
112
|
+
virtual std::string get_service_name(t_service* tservice) {
|
|
113
|
+
return tservice->get_name();
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Get the current output directory
|
|
118
|
+
*/
|
|
119
|
+
virtual std::string get_out_dir() const {
|
|
120
|
+
return program_->get_out_path() + out_dir_base_ + "/";
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Creates a unique temporary variable name, which is just "name" with a
|
|
125
|
+
* number appended to it (i.e. name35)
|
|
126
|
+
*/
|
|
127
|
+
std::string tmp(std::string name) {
|
|
128
|
+
std::ostringstream out;
|
|
129
|
+
out << name << tmp_++;
|
|
130
|
+
return out.str();
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/**
|
|
134
|
+
* Indentation level modifiers
|
|
135
|
+
*/
|
|
136
|
+
|
|
137
|
+
void indent_up(){
|
|
138
|
+
++indent_;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
void indent_down() {
|
|
142
|
+
--indent_;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Indentation print function
|
|
147
|
+
*/
|
|
148
|
+
std::string indent() {
|
|
149
|
+
std::string ind = "";
|
|
150
|
+
int i;
|
|
151
|
+
for (i = 0; i < indent_; ++i) {
|
|
152
|
+
ind += " ";
|
|
153
|
+
}
|
|
154
|
+
return ind;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Indentation utility wrapper
|
|
159
|
+
*/
|
|
160
|
+
std::ostream& indent(std::ostream &os) {
|
|
161
|
+
return os << indent();
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* Capitalization helpers
|
|
166
|
+
*/
|
|
167
|
+
std::string capitalize(std::string in) {
|
|
168
|
+
in[0] = toupper(in[0]);
|
|
169
|
+
return in;
|
|
170
|
+
}
|
|
171
|
+
std::string decapitalize(std::string in) {
|
|
172
|
+
in[0] = tolower(in[0]);
|
|
173
|
+
return in;
|
|
174
|
+
}
|
|
175
|
+
std::string lowercase(std::string in) {
|
|
176
|
+
for (size_t i = 0; i < in.size(); ++i) {
|
|
177
|
+
in[i] = tolower(in[i]);
|
|
178
|
+
}
|
|
179
|
+
return in;
|
|
180
|
+
}
|
|
181
|
+
std::string underscore(std::string in) {
|
|
182
|
+
in[0] = tolower(in[0]);
|
|
183
|
+
for (size_t i = 1; i < in.size(); ++i) {
|
|
184
|
+
if (isupper(in[i])) {
|
|
185
|
+
in[i] = tolower(in[i]);
|
|
186
|
+
in.insert(i, "_");
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
return in;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Get the true type behind a series of typedefs.
|
|
194
|
+
*/
|
|
195
|
+
static t_type* get_true_type(t_type* type) {
|
|
196
|
+
while (type->is_typedef()) {
|
|
197
|
+
type = ((t_typedef*)type)->get_type();
|
|
198
|
+
}
|
|
199
|
+
return type;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
protected:
|
|
203
|
+
/**
|
|
204
|
+
* The program being generated
|
|
205
|
+
*/
|
|
206
|
+
t_program* program_;
|
|
207
|
+
|
|
208
|
+
/**
|
|
209
|
+
* Quick accessor for formatted program name that is currently being
|
|
210
|
+
* generated.
|
|
211
|
+
*/
|
|
212
|
+
std::string program_name_;
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* Quick accessor for formatted service name that is currently being
|
|
216
|
+
* generated.
|
|
217
|
+
*/
|
|
218
|
+
std::string service_name_;
|
|
219
|
+
|
|
220
|
+
/**
|
|
221
|
+
* Output type-specifc directory name ("gen-*")
|
|
222
|
+
*/
|
|
223
|
+
std::string out_dir_base_;
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* Map of characters to escape in string literals.
|
|
227
|
+
*/
|
|
228
|
+
std::map<char, std::string> escape_;
|
|
229
|
+
|
|
230
|
+
private:
|
|
231
|
+
/**
|
|
232
|
+
* Current code indentation level
|
|
233
|
+
*/
|
|
234
|
+
int indent_;
|
|
235
|
+
|
|
236
|
+
/**
|
|
237
|
+
* Temporary variable counter, for making unique variable names
|
|
238
|
+
*/
|
|
239
|
+
int tmp_;
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
/**
|
|
244
|
+
* A factory for producing generator classes of a particular language.
|
|
245
|
+
*
|
|
246
|
+
* This class is also responsible for:
|
|
247
|
+
* - Registering itself with the generator registry.
|
|
248
|
+
* - Providing documentation for the generators it produces.
|
|
249
|
+
*/
|
|
250
|
+
class t_generator_factory {
|
|
251
|
+
public:
|
|
252
|
+
t_generator_factory(const std::string& short_name,
|
|
253
|
+
const std::string& long_name,
|
|
254
|
+
const std::string& documentation);
|
|
255
|
+
|
|
256
|
+
virtual ~t_generator_factory() {}
|
|
257
|
+
|
|
258
|
+
virtual t_generator* get_generator(
|
|
259
|
+
// The program to generate.
|
|
260
|
+
t_program* program,
|
|
261
|
+
// Note: parsed_options will not exist beyond the call to get_generator.
|
|
262
|
+
const std::map<std::string, std::string>& parsed_options,
|
|
263
|
+
// Note: option_string might not exist beyond the call to get_generator.
|
|
264
|
+
const std::string& option_string)
|
|
265
|
+
= 0;
|
|
266
|
+
|
|
267
|
+
std::string get_short_name() { return short_name_; }
|
|
268
|
+
std::string get_long_name() { return long_name_; }
|
|
269
|
+
std::string get_documentation() { return documentation_; }
|
|
270
|
+
|
|
271
|
+
private:
|
|
272
|
+
std::string short_name_;
|
|
273
|
+
std::string long_name_;
|
|
274
|
+
std::string documentation_;
|
|
275
|
+
};
|
|
276
|
+
|
|
277
|
+
template <typename generator>
|
|
278
|
+
class t_generator_factory_impl : public t_generator_factory {
|
|
279
|
+
public:
|
|
280
|
+
t_generator_factory_impl(const std::string& short_name,
|
|
281
|
+
const std::string& long_name,
|
|
282
|
+
const std::string& documentation)
|
|
283
|
+
: t_generator_factory(short_name, long_name, documentation)
|
|
284
|
+
{}
|
|
285
|
+
|
|
286
|
+
virtual t_generator* get_generator(
|
|
287
|
+
t_program* program,
|
|
288
|
+
const std::map<std::string, std::string>& parsed_options,
|
|
289
|
+
const std::string& option_string) {
|
|
290
|
+
return new generator(program, parsed_options, option_string);
|
|
291
|
+
}
|
|
292
|
+
};
|
|
293
|
+
|
|
294
|
+
class t_generator_registry {
|
|
295
|
+
public:
|
|
296
|
+
static void register_generator(t_generator_factory* factory);
|
|
297
|
+
|
|
298
|
+
static t_generator* get_generator(t_program* program,
|
|
299
|
+
const std::string& options);
|
|
300
|
+
|
|
301
|
+
typedef std::map<std::string, t_generator_factory*> gen_map_t;
|
|
302
|
+
static gen_map_t& get_generator_map();
|
|
303
|
+
|
|
304
|
+
private:
|
|
305
|
+
t_generator_registry();
|
|
306
|
+
t_generator_registry(const t_generator_registry&);
|
|
307
|
+
};
|
|
308
|
+
|
|
309
|
+
#define THRIFT_REGISTER_GENERATOR(language, long_name, doc) \
|
|
310
|
+
class t_##language##_generator_factory_impl \
|
|
311
|
+
: public t_generator_factory_impl<t_##language##_generator> \
|
|
312
|
+
{ \
|
|
313
|
+
public: \
|
|
314
|
+
t_##language##_generator_factory_impl() \
|
|
315
|
+
: t_generator_factory_impl<t_##language##_generator>( \
|
|
316
|
+
#language, long_name, doc) \
|
|
317
|
+
{} \
|
|
318
|
+
}; \
|
|
319
|
+
static t_##language##_generator_factory_impl _registerer;
|
|
320
|
+
|
|
321
|
+
#endif
|