You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by dr...@apache.org on 2010/08/31 00:05:41 UTC

svn commit: r990988 - in /incubator/thrift/trunk/test/erl/src: test_client.erl test_server.erl

Author: dreiss
Date: Mon Aug 30 22:05:41 2010
New Revision: 990988

URL: http://svn.apache.org/viewvc?rev=990988&view=rev
Log:
erlang: test_{client,server}: Allow framed_transport to be used

Modified:
    incubator/thrift/trunk/test/erl/src/test_client.erl
    incubator/thrift/trunk/test/erl/src/test_server.erl

Modified: incubator/thrift/trunk/test/erl/src/test_client.erl
URL: http://svn.apache.org/viewvc/incubator/thrift/trunk/test/erl/src/test_client.erl?rev=990988&r1=990987&r2=990988&view=diff
==============================================================================
--- incubator/thrift/trunk/test/erl/src/test_client.erl (original)
+++ incubator/thrift/trunk/test/erl/src/test_client.erl Mon Aug 30 22:05:41 2010
@@ -23,11 +23,34 @@
 
 -include("thriftTest_types.hrl").
 
-start() -> start(["9090"]).
-start([PortStr]) ->
-  Port = list_to_integer(PortStr),
+-record(options, {port = 9090,
+                  client_opts = []}).
+
+parse_args(Args) -> parse_args(Args, #options{}).
+parse_args([], Opts) -> Opts;
+parse_args([Head | Rest], Opts) ->
+    NewOpts =
+        case catch list_to_integer(Head) of
+            Port when is_integer(Port) ->
+                Opts#options{port = Port};
+            _Else ->
+                case Head of
+                    "framed" ->
+                        Opts#options{client_opts = [{framed, true} | Opts#options.client_opts]};
+                    "" ->
+                        Opts;
+                    _Else ->
+                        erlang:error({bad_arg, Head})
+                end
+        end,
+    parse_args(Rest, NewOpts).
+
+
+start() -> start([]).
+start(Args) ->
+  #options{port = Port, client_opts = ClientOpts} = parse_args(Args),
   {ok, Client0} = thrift_client_util:new(
-    "127.0.0.1", Port, thriftTest_thrift, []),
+    "127.0.0.1", Port, thriftTest_thrift, ClientOpts),
 
   DemoXtruct = #xtruct{
     string_thing = <<"Zero">>,

Modified: incubator/thrift/trunk/test/erl/src/test_server.erl
URL: http://svn.apache.org/viewvc/incubator/thrift/trunk/test/erl/src/test_server.erl?rev=990988&r1=990987&r2=990988&view=diff
==============================================================================
--- incubator/thrift/trunk/test/erl/src/test_server.erl (original)
+++ incubator/thrift/trunk/test/erl/src/test_server.erl Mon Aug 30 22:05:41 2010
@@ -19,14 +19,42 @@
 
 -module(test_server).
 
--export([start_link/1, handle_function/2]).
+-export([go/0, go/1, start_link/2, handle_function/2]).
 
 -include("thriftTest_types.hrl").
 
-start_link(Port) ->
+-record(options, {port = 9090,
+                  server_opts = []}).
+
+parse_args(Args) -> parse_args(Args, #options{}).
+parse_args([], Opts) -> Opts;
+parse_args([Head | Rest], Opts) ->
+    NewOpts =
+        case catch list_to_integer(Head) of
+            Port when is_integer(Port) ->
+                Opts#options{port = Port};
+            _Else ->
+                case Head of
+                    "framed" ->
+                        Opts#options{server_opts = [{framed, true} | Opts#options.server_opts]};
+                    "" ->
+                        Opts;
+                    _Else ->
+                        erlang:error({bad_arg, Head})
+                end
+        end,
+    parse_args(Rest, NewOpts).
+
+go() -> go([]).
+go(Args) ->
+    #options{port = Port, server_opts = ServerOpts} = parse_args(Args),
+    spawn(fun() -> start_link(Port, ServerOpts), receive after infinity -> ok end end).
+
+start_link(Port, ServerOpts) ->
     thrift_socket_server:start([{handler, ?MODULE},
                                 {service, thriftTest_thrift},
-                                {port, Port}]).
+                                {port, Port}] ++
+                               ServerOpts).
 
 
 handle_function(testVoid, {}) ->