Rev 30 | Blame | Compare with Previous | Last modification | View Log | RSS feed
#!/usr/bin/env perl## Licensed to the Apache Software Foundation (ASF) under one# or more contributor license agreements. See the NOTICE file# distributed with this work for additional information# regarding copyright ownership. The ASF licenses this file# to you under the Apache License, Version 2.0 (the# "License"); you may not use this file except in compliance# with the License. You may obtain a copy of the License at## http://www.apache.org/licenses/LICENSE-2.0## Unless required by applicable law or agreed to in writing,# software distributed under the License is distributed on an# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY# KIND, either express or implied. See the License for the# specific language governing permissions and limitations# under the License.#use strict;use warnings;use lib '../../lib/perl/lib';use lib '../gen-perl';use Thrift;use Thrift::BinaryProtocol;use Thrift::Socket;use Thrift::BufferedTransport;use shared::SharedService;use tutorial::Calculator;use shared::Types;use tutorial::Types;use Data::Dumper;my $socket = new Thrift::Socket('localhost',9090);my $transport = new Thrift::BufferedTransport($socket,1024,1024);my $protocol = new Thrift::BinaryProtocol($transport);my $client = new tutorial::CalculatorClient($protocol);eval{$transport->open();$client->ping();print "ping()\n";my $sum = $client->add(1,1);print "1+1=$sum\n";my $work = new tutorial::Work();$work->op(tutorial::Operation::DIVIDE);$work->num1(1);$work->num2(0);eval {$client->calculate(1, $work);print "Whoa! We can divide by zero?\n";}; if($@) {warn "InvalidOperation: ".Dumper($@);}$work->op(tutorial::Operation::SUBTRACT);$work->num1(15);$work->num2(10);my $diff = $client->calculate(1, $work);print "15-10=$diff\n";my $log = $client->getStruct(1);print "Log: $log->{value}\n";$transport->close();}; if($@){warn(Dumper($@));}