[thrift] Erlang Thrift changes, take 3
Summary: svn ci missed a bunch of paths ... blew away the whole thing and copied from the git repo. this is getting ridiculous.
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665285 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/lib/erl/src/thrift_sup.erl b/lib/erl/src/thrift_sup.erl
new file mode 100644
index 0000000..8f6eaf7
--- /dev/null
+++ b/lib/erl/src/thrift_sup.erl
@@ -0,0 +1,40 @@
+%%% Copyright (c) 2007- Facebook
+%%% Distributed under the Thrift Software License
+%%%
+%%% See accompanying file LICENSE or visit the Thrift site at:
+%%% http://developers.facebook.com/thrift/
+
+-module(thrift_sup).
+
+-behaviour(supervisor).
+
+-include("thrift.hrl").
+
+-export([start_link/3, init/1, thrift_start_link/7]).
+
+-define(SERVER, ?MODULE).
+
+start_link(Port, Handler, Processor) ->
+ Args = [Port, Handler, Processor],
+ supervisor:start_link({local, ?SERVER}, ?MODULE, Args).
+
+init([Port, Handler, Processor]) ->
+ TF = tBufferedTransportFactory,
+ PF = tBinaryProtocolFactory,
+ ST = tErlAcceptor,
+ SF = tErlServer,
+
+ ThriftModules = [TF, PF, ST, SF],
+
+ Args = [SF, Port, Handler, Processor, ST, TF, PF],
+
+ ThriftServer = {thrift_server, {?MODULE, thrift_start_link, Args},
+ permanent, 2000, worker, ThriftModules},
+
+ {ok, {{one_for_one, 10, 1}, [ThriftServer]}}.
+
+thrift_start_link(SF = tErlServer, Port, Hnd, Pr, ST, TF, PF) ->
+ Args = [Port, Hnd, Pr, ST, TF:new(), PF:new()],
+ Pid = oop:start_new(SF, Args),
+ ?R0(Pid, effectful_serve),
+ {ok, Pid}.