| -module(client). |
| |
| -include("thrift.hrl"). |
| -include("transport/tSocket.hrl"). |
| -include("protocol/tBinaryProtocol.hrl"). |
| |
| -include("calculator_thrift.hrl"). |
| |
| -export([go/0]). |
| |
| p(X) -> |
| io:format("~p~n", [X]), |
| ok. |
| |
| t() -> |
| thrift:start(), |
| Host = "dev020", |
| Port = 9999, |
| |
| try |
| _Sock = oop:start_new(tSocket, [Host, Port]), |
| Trans = oop:start_new(tBufferedTransport, [_Sock]), |
| Prot = oop:start_new(tBinaryProtocol, [Trans]), |
| |
| ?R0(Trans, effectful_open), |
| |
| Client = calculator_thrift:new(Prot), |
| |
| calculator_thrift:ping(Client), |
| io:format("ping~n", []), |
| |
| Sum = calculator_thrift:add(Client, 1, 1), |
| io:format("1+1=~p~n", [Sum]), |
| |
| Sum1 = calculator_thrift:add(Client, 1, 4), |
| io:format("1+4=~p~n", [Sum1]), |
| |
| Work = #work{op=?tutorial_SUBTRACT, |
| num1=15, |
| num2=10}, |
| Diff = calculator_thrift:calculate(Client, 1, Work), |
| io:format("15-10=~p~n", [Diff]), |
| |
| %% xxx inheritance doesn't work |
| %% Log = sharedService_thrift:getStruct(Client, 1), |
| %% io:format("Log: ~p~n", [Log]), |
| |
| %% xxx neither do exceptions :( |
| try |
| Work1 = #work{op=?tutorial_DIVIDE, |
| num1=1, |
| num2=0}, |
| _Quot = (calculator_thrift:calculate(Client, 1, Work1)), |
| |
| io:format("LAME: exception handling is broken~n", []) |
| catch |
| Z -> |
| p(Z) |
| %% rescue InvalidOperation => io |
| %% print "InvalidOperation: ", io.why, "\n" |
| %% end |
| end, |
| |
| calculator_thrift:zip(Client), |
| io:format("zip~n", []), |
| |
| ?R0(Trans, effectful_close) |
| |
| catch |
| Y -> |
| p(Y) |
| end, |
| ok. |