Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations bkrike on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Registering client

Status
Not open for further replies.

arun10427

Programmer
Oct 24, 2009
29
US
Hi all,

I was trying to solve Battleship puzzle using perl. But I wanna know how to register client..When I checked the other thrift compiler generated files(other languages), client can be registered using Battleship::Client->new($socket)..

But I dont find any such modules in Battleship.pm..Any ideas?

Source of puzzle :
Thanks in advance.
 
#
# Autogenerated by Thrift
#
# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
#
require 5.6.0;
use strict;
use warnings;
use Thrift;

use Types;

# HELPER FUNCTIONS AND STRUCTURES

package Battleship2_registerClient_args;
use base qw(Class::Accessor);
Battleship2_registerClient_args->mk_accessors( qw( email ) );

sub new {
my $classname = shift;
my $self = {};
my $vals = shift || {};
$self->{email} = undef;
if (UNIVERSAL::isa($vals,'HASH')) {
if (defined $vals->{email}) {
$self->{email} = $vals->{email};
}
}
return bless ($self, $classname);
}

sub getName {
return 'Battleship2_registerClient_args';
}

sub read {
my ($self, $input) = @_;
my $xfer = 0;
my $fname;
my $ftype = 0;
my $fid = 0;
$xfer += $input->readStructBegin(\$fname);
while (1)
{
$xfer += $input->readFieldBegin(\$fname, \$ftype, \$fid);
if ($ftype == TType::STOP) {
last;
}
SWITCH: for($fid)
{
/^1$/ && do{ if ($ftype == TType::STRING) {
$xfer += $input->readString(\$self->{email});
} else {
$xfer += $input->skip($ftype);
}
last; };
$xfer += $input->skip($ftype);
}
$xfer += $input->readFieldEnd();
}
$xfer += $input->readStructEnd();
return $xfer;
}

sub write {
my ($self, $output) = @_;
my $xfer = 0;
$xfer += $output->writeStructBegin('Battleship2_registerClient_args');
if (defined $self->{email}) {
$xfer += $output->writeFieldBegin('email', TType::STRING, 1);
$xfer += $output->writeString($self->{email});
$xfer += $output->writeFieldEnd();
}
$xfer += $output->writeFieldStop();
$xfer += $output->writeStructEnd();
return $xfer;
}

package Battleship2_registerClient_result;
use base qw(Class::Accessor);
Battleship2_registerClient_result->mk_accessors( qw( success ) );

sub new {
my $classname = shift;
my $self = {};
my $vals = shift || {};
$self->{success} = undef;
if (UNIVERSAL::isa($vals,'HASH')) {
if (defined $vals->{success}) {
$self->{success} = $vals->{success};
}
}
return bless ($self, $classname);
}

sub getName {
return 'Battleship2_registerClient_result';
}

sub read {
my ($self, $input) = @_;
my $xfer = 0;
my $fname;
my $ftype = 0;
my $fid = 0;
$xfer += $input->readStructBegin(\$fname);
while (1)
{
$xfer += $input->readFieldBegin(\$fname, \$ftype, \$fid);
if ($ftype == TType::STOP) {
last;
}
SWITCH: for($fid)
{
/^0$/ && do{ if ($ftype == TType::I32) {
$xfer += $input->readI32(\$self->{success});
} else {
$xfer += $input->skip($ftype);
}
last; };
$xfer += $input->skip($ftype);
}
$xfer += $input->readFieldEnd();
}
$xfer += $input->readStructEnd();
return $xfer;
}

sub write {
my ($self, $output) = @_;
my $xfer = 0;
$xfer += $output->writeStructBegin('Battleship2_registerClient_result');
if (defined $self->{success}) {
$xfer += $output->writeFieldBegin('success', TType::I32, 0);
$xfer += $output->writeI32($self->{success});
$xfer += $output->writeFieldEnd();
}
$xfer += $output->writeFieldStop();
$xfer += $output->writeStructEnd();
return $xfer;
}

package Battleship2_join_args;
use base qw(Class::Accessor);
Battleship2_join_args->mk_accessors( qw( gameID email ) );

sub new {
my $classname = shift;
my $self = {};
my $vals = shift || {};
$self->{gameID} = undef;
$self->{email} = undef;
if (UNIVERSAL::isa($vals,'HASH')) {
if (defined $vals->{gameID}) {
$self->{gameID} = $vals->{gameID};
}
if (defined $vals->{email}) {
$self->{email} = $vals->{email};
}
}
return bless ($self, $classname);
}

sub getName {
return 'Battleship2_join_args';
}

sub read {
my ($self, $input) = @_;
my $xfer = 0;
my $fname;
my $ftype = 0;
my $fid = 0;
$xfer += $input->readStructBegin(\$fname);
while (1)
{
$xfer += $input->readFieldBegin(\$fname, \$ftype, \$fid);
if ($ftype == TType::STOP) {
last;
}
SWITCH: for($fid)
{
/^1$/ && do{ if ($ftype == TType::I32) {
$xfer += $input->readI32(\$self->{gameID});
} else {
$xfer += $input->skip($ftype);
}
last; };
/^2$/ && do{ if ($ftype == TType::STRING) {
$xfer += $input->readString(\$self->{email});
} else {
$xfer += $input->skip($ftype);
}
last; };
$xfer += $input->skip($ftype);
}
$xfer += $input->readFieldEnd();
}
$xfer += $input->readStructEnd();
return $xfer;
}

sub write {
my ($self, $output) = @_;
my $xfer = 0;
$xfer += $output->writeStructBegin('Battleship2_join_args');
if (defined $self->{gameID}) {
$xfer += $output->writeFieldBegin('gameID', TType::I32, 1);
$xfer += $output->writeI32($self->{gameID});
$xfer += $output->writeFieldEnd();
}
if (defined $self->{email}) {
$xfer += $output->writeFieldBegin('email', TType::STRING, 2);
$xfer += $output->writeString($self->{email});
$xfer += $output->writeFieldEnd();
}
$xfer += $output->writeFieldStop();
$xfer += $output->writeStructEnd();
return $xfer;
}

package Battleship2_join_result;
use base qw(Class::Accessor);
Battleship2_join_result->mk_accessors( qw( success ) );

sub new {
my $classname = shift;
my $self = {};
my $vals = shift || {};
$self->{success} = undef;
$self->{dee} = undef;
if (UNIVERSAL::isa($vals,'HASH')) {
if (defined $vals->{success}) {
$self->{success} = $vals->{success};
}
if (defined $vals->{dee}) {
$self->{dee} = $vals->{dee};
}
}
return bless ($self, $classname);
}

sub getName {
return 'Battleship2_join_result';
}

sub read {
my ($self, $input) = @_;
my $xfer = 0;
my $fname;
my $ftype = 0;
my $fid = 0;
$xfer += $input->readStructBegin(\$fname);
while (1)
{
$xfer += $input->readFieldBegin(\$fname, \$ftype, \$fid);
if ($ftype == TType::STOP) {
last;
}
SWITCH: for($fid)
{
/^0$/ && do{ if ($ftype == TType::BOOL) {
$xfer += $input->readBool(\$self->{success});
} else {
$xfer += $input->skip($ftype);
}
last; };
/^1$/ && do{ if ($ftype == TType::STRUCT) {
$self->{dee} = new DuplicateEmailException();
$xfer += $self->{dee}->read($input);
} else {
$xfer += $input->skip($ftype);
}
last; };
$xfer += $input->skip($ftype);
}
$xfer += $input->readFieldEnd();
}
$xfer += $input->readStructEnd();
return $xfer;
}

sub write {
my ($self, $output) = @_;
my $xfer = 0;
$xfer += $output->writeStructBegin('Battleship2_join_result');
if (defined $self->{success}) {
$xfer += $output->writeFieldBegin('success', TType::BOOL, 0);
$xfer += $output->writeBool($self->{success});
$xfer += $output->writeFieldEnd();
}
if (defined $self->{dee}) {
$xfer += $output->writeFieldBegin('dee', TType::STRUCT, 1);
$xfer += $self->{dee}->write($output);
$xfer += $output->writeFieldEnd();
}
$xfer += $output->writeFieldStop();
$xfer += $output->writeStructEnd();
return $xfer;
}

package Battleship2_isMyTurn_args;
use base qw(Class::Accessor);

sub new {
my $classname = shift;
my $self = {};
my $vals = shift || {};
return bless ($self, $classname);
}

sub getName {
return 'Battleship2_isMyTurn_args';
}

sub read {
my ($self, $input) = @_;
my $xfer = 0;
my $fname;
my $ftype = 0;
my $fid = 0;
$xfer += $input->readStructBegin(\$fname);
while (1)
{
$xfer += $input->readFieldBegin(\$fname, \$ftype, \$fid);
if ($ftype == TType::STOP) {
last;
}
SWITCH: for($fid)
{
$xfer += $input->skip($ftype);
}
$xfer += $input->readFieldEnd();
}
$xfer += $input->readStructEnd();
return $xfer;
}

sub write {
my ($self, $output) = @_;
my $xfer = 0;
$xfer += $output->writeStructBegin('Battleship2_isMyTurn_args');
$xfer += $output->writeFieldStop();
$xfer += $output->writeStructEnd();
return $xfer;
}

package Battleship2_isMyTurn_result;
use base qw(Class::Accessor);
Battleship2_isMyTurn_result->mk_accessors( qw( success ) );

sub new {
my $classname = shift;
my $self = {};
my $vals = shift || {};
$self->{success} = undef;
$self->{goe} = undef;
$self->{ue} = undef;
if (UNIVERSAL::isa($vals,'HASH')) {
if (defined $vals->{success}) {
$self->{success} = $vals->{success};
}
if (defined $vals->{goe}) {
$self->{goe} = $vals->{goe};
}
if (defined $vals->{ue}) {
$self->{ue} = $vals->{ue};
}
}
return bless ($self, $classname);
}

sub getName {
return 'Battleship2_isMyTurn_result';
}

sub read {
my ($self, $input) = @_;
my $xfer = 0;
my $fname;
my $ftype = 0;
my $fid = 0;
$xfer += $input->readStructBegin(\$fname);
while (1)
{
$xfer += $input->readFieldBegin(\$fname, \$ftype, \$fid);
if ($ftype == TType::STOP) {
last;
}
SWITCH: for($fid)
{
/^0$/ && do{ if ($ftype == TType::BOOL) {
$xfer += $input->readBool(\$self->{success});
} else {
$xfer += $input->skip($ftype);
}
last; };
/^1$/ && do{ if ($ftype == TType::STRUCT) {
$self->{goe} = new GameOverException();
$xfer += $self->{goe}->read($input);
} else {
$xfer += $input->skip($ftype);
}
last; };
/^2$/ && do{ if ($ftype == TType::STRUCT) {
$self->{ue} = new UnregisteredException();
$xfer += $self->{ue}->read($input);
} else {
$xfer += $input->skip($ftype);
}
last; };
$xfer += $input->skip($ftype);
}
$xfer += $input->readFieldEnd();
}
$xfer += $input->readStructEnd();
return $xfer;
}

sub write {
my ($self, $output) = @_;
my $xfer = 0;
$xfer += $output->writeStructBegin('Battleship2_isMyTurn_result');
if (defined $self->{success}) {
$xfer += $output->writeFieldBegin('success', TType::BOOL, 0);
$xfer += $output->writeBool($self->{success});
$xfer += $output->writeFieldEnd();
}
if (defined $self->{goe}) {
$xfer += $output->writeFieldBegin('goe', TType::STRUCT, 1);
$xfer += $self->{goe}->write($output);
$xfer += $output->writeFieldEnd();
}
if (defined $self->{ue}) {
$xfer += $output->writeFieldBegin('ue', TType::STRUCT, 2);
$xfer += $self->{ue}->write($output);
$xfer += $output->writeFieldEnd();
}
$xfer += $output->writeFieldStop();
$xfer += $output->writeStructEnd();
return $xfer;
}

package Battleship2_placePiece_args;
use base qw(Class::Accessor);
Battleship2_placePiece_args->mk_accessors( qw( piece coord horizontal ) );

sub new {
my $classname = shift;
my $self = {};
my $vals = shift || {};
$self->{piece} = undef;
$self->{coord} = undef;
$self->{horizontal} = undef;
if (UNIVERSAL::isa($vals,'HASH')) {
if (defined $vals->{piece}) {
$self->{piece} = $vals->{piece};
}
if (defined $vals->{coord}) {
$self->{coord} = $vals->{coord};
}
if (defined $vals->{horizontal}) {
$self->{horizontal} = $vals->{horizontal};
}
}
return bless ($self, $classname);
}

sub getName {
return 'Battleship2_placePiece_args';
}

sub read {
my ($self, $input) = @_;
my $xfer = 0;
my $fname;
my $ftype = 0;
my $fid = 0;
$xfer += $input->readStructBegin(\$fname);
while (1)
{
$xfer += $input->readFieldBegin(\$fname, \$ftype, \$fid);
if ($ftype == TType::STOP) {
last;
}
SWITCH: for($fid)
{
/^1$/ && do{ if ($ftype == TType::I32) {
$xfer += $input->readI32(\$self->{piece});
} else {
$xfer += $input->skip($ftype);
}
last; };
/^2$/ && do{ if ($ftype == TType::STRUCT) {
$self->{coord} = new Coordinate();
$xfer += $self->{coord}->read($input);
} else {
$xfer += $input->skip($ftype);
}
last; };
/^3$/ && do{ if ($ftype == TType::BOOL) {
$xfer += $input->readBool(\$self->{horizontal});
} else {
$xfer += $input->skip($ftype);
}
last; };
$xfer += $input->skip($ftype);
}
$xfer += $input->readFieldEnd();
}
$xfer += $input->readStructEnd();
return $xfer;
}

sub write {
my ($self, $output) = @_;
my $xfer = 0;
$xfer += $output->writeStructBegin('Battleship2_placePiece_args');
if (defined $self->{piece}) {
$xfer += $output->writeFieldBegin('piece', TType::I32, 1);
$xfer += $output->writeI32($self->{piece});
$xfer += $output->writeFieldEnd();
}
if (defined $self->{coord}) {
$xfer += $output->writeFieldBegin('coord', TType::STRUCT, 2);
$xfer += $self->{coord}->write($output);
$xfer += $output->writeFieldEnd();
}
if (defined $self->{horizontal}) {
$xfer += $output->writeFieldBegin('horizontal', TType::BOOL, 3);
$xfer += $output->writeBool($self->{horizontal});
$xfer += $output->writeFieldEnd();
}
$xfer += $output->writeFieldStop();
$xfer += $output->writeStructEnd();
return $xfer;
}

package Battleship2_placePiece_result;
use base qw(Class::Accessor);
Battleship2_placePiece_result->mk_accessors( qw( success ) );

sub new {
my $classname = shift;
my $self = {};
my $vals = shift || {};
$self->{success} = undef;
$self->{ue} = undef;
if (UNIVERSAL::isa($vals,'HASH')) {
if (defined $vals->{success}) {
$self->{success} = $vals->{success};
}
if (defined $vals->{ue}) {
$self->{ue} = $vals->{ue};
}
}
return bless ($self, $classname);
}

sub getName {
return 'Battleship2_placePiece_result';
}

sub read {
my ($self, $input) = @_;
my $xfer = 0;
my $fname;
my $ftype = 0;
my $fid = 0;
$xfer += $input->readStructBegin(\$fname);
while (1)
{
$xfer += $input->readFieldBegin(\$fname, \$ftype, \$fid);
if ($ftype == TType::STOP) {
last;
}
SWITCH: for($fid)
{
/^0$/ && do{ if ($ftype == TType::BOOL) {
$xfer += $input->readBool(\$self->{success});
} else {
$xfer += $input->skip($ftype);
}
last; };
/^1$/ && do{ if ($ftype == TType::STRUCT) {
$self->{ue} = new UnregisteredException();
$xfer += $self->{ue}->read($input);
} else {
$xfer += $input->skip($ftype);
}
last; };
$xfer += $input->skip($ftype);
}
$xfer += $input->readFieldEnd();
}
$xfer += $input->readStructEnd();
return $xfer;
}

sub write {
my ($self, $output) = @_;
my $xfer = 0;
$xfer += $output->writeStructBegin('Battleship2_placePiece_result');
if (defined $self->{success}) {
$xfer += $output->writeFieldBegin('success', TType::BOOL, 0);
$xfer += $output->writeBool($self->{success});
$xfer += $output->writeFieldEnd();
}
if (defined $self->{ue}) {
$xfer += $output->writeFieldBegin('ue', TType::STRUCT, 1);
$xfer += $self->{ue}->write($output);
$xfer += $output->writeFieldEnd();
}
$xfer += $output->writeFieldStop();
$xfer += $output->writeStructEnd();
return $xfer;
}

package Battleship2_attack_args;
use base qw(Class::Accessor);
Battleship2_attack_args->mk_accessors( qw( coord ) );

sub new {
my $classname = shift;
my $self = {};
my $vals = shift || {};
$self->{coord} = undef;
if (UNIVERSAL::isa($vals,'HASH')) {
if (defined $vals->{coord}) {
$self->{coord} = $vals->{coord};
}
}
return bless ($self, $classname);
}

sub getName {
return 'Battleship2_attack_args';
}

sub read {
my ($self, $input) = @_;
my $xfer = 0;
my $fname;
my $ftype = 0;
my $fid = 0;
$xfer += $input->readStructBegin(\$fname);
while (1)
{
$xfer += $input->readFieldBegin(\$fname, \$ftype, \$fid);
if ($ftype == TType::STOP) {
last;
}
SWITCH: for($fid)
{
/^1$/ && do{ if ($ftype == TType::STRUCT) {
$self->{coord} = new Coordinate();
$xfer += $self->{coord}->read($input);
} else {
$xfer += $input->skip($ftype);
}
last; };
$xfer += $input->skip($ftype);
}
$xfer += $input->readFieldEnd();
}
$xfer += $input->readStructEnd();
return $xfer;
}

sub write {
my ($self, $output) = @_;
my $xfer = 0;
$xfer += $output->writeStructBegin('Battleship2_attack_args');
if (defined $self->{coord}) {
$xfer += $output->writeFieldBegin('coord', TType::STRUCT, 1);
$xfer += $self->{coord}->write($output);
$xfer += $output->writeFieldEnd();
}
$xfer += $output->writeFieldStop();
$xfer += $output->writeStructEnd();
return $xfer;
}

package Battleship2_attack_result;
use base qw(Class::Accessor);
Battleship2_attack_result->mk_accessors( qw( success ) );

sub new {
my $classname = shift;
my $self = {};
my $vals = shift || {};
$self->{success} = undef;
$self->{goe} = undef;
$self->{ue} = undef;
if (UNIVERSAL::isa($vals,'HASH')) {
if (defined $vals->{success}) {
$self->{success} = $vals->{success};
}
if (defined $vals->{goe}) {
$self->{goe} = $vals->{goe};
}
if (defined $vals->{ue}) {
$self->{ue} = $vals->{ue};
}
}
return bless ($self, $classname);
}

sub getName {
return 'Battleship2_attack_result';
}

sub read {
my ($self, $input) = @_;
my $xfer = 0;
my $fname;
my $ftype = 0;
my $fid = 0;
$xfer += $input->readStructBegin(\$fname);
while (1)
{
$xfer += $input->readFieldBegin(\$fname, \$ftype, \$fid);
if ($ftype == TType::STOP) {
last;
}
SWITCH: for($fid)
{
/^0$/ && do{ if ($ftype == TType::I32) {
$xfer += $input->readI32(\$self->{success});
} else {
$xfer += $input->skip($ftype);
}
last; };
/^1$/ && do{ if ($ftype == TType::STRUCT) {
$self->{goe} = new GameOverException();
$xfer += $self->{goe}->read($input);
} else {
$xfer += $input->skip($ftype);
}
last; };
/^2$/ && do{ if ($ftype == TType::STRUCT) {
$self->{ue} = new UnregisteredException();
$xfer += $self->{ue}->read($input);
} else {
$xfer += $input->skip($ftype);
}
last; };
$xfer += $input->skip($ftype);
}
$xfer += $input->readFieldEnd();
}
$xfer += $input->readStructEnd();
return $xfer;
}

sub write {
my ($self, $output) = @_;
my $xfer = 0;
$xfer += $output->writeStructBegin('Battleship2_attack_result');
if (defined $self->{success}) {
$xfer += $output->writeFieldBegin('success', TType::I32, 0);
$xfer += $output->writeI32($self->{success});
$xfer += $output->writeFieldEnd();
}
if (defined $self->{goe}) {
$xfer += $output->writeFieldBegin('goe', TType::STRUCT, 1);
$xfer += $self->{goe}->write($output);
$xfer += $output->writeFieldEnd();
}
if (defined $self->{ue}) {
$xfer += $output->writeFieldBegin('ue', TType::STRUCT, 2);
$xfer += $self->{ue}->write($output);
$xfer += $output->writeFieldEnd();
}
$xfer += $output->writeFieldStop();
$xfer += $output->writeStructEnd();
return $xfer;
}

package Battleship2_getOpponentsLastAttack_args;
use base qw(Class::Accessor);

sub new {
my $classname = shift;
my $self = {};
my $vals = shift || {};
return bless ($self, $classname);
}

sub getName {
return 'Battleship2_getOpponentsLastAttack_args';
}

sub read {
my ($self, $input) = @_;
my $xfer = 0;
my $fname;
my $ftype = 0;
my $fid = 0;
$xfer += $input->readStructBegin(\$fname);
while (1)
{
$xfer += $input->readFieldBegin(\$fname, \$ftype, \$fid);
if ($ftype == TType::STOP) {
last;
}
SWITCH: for($fid)
{
$xfer += $input->skip($ftype);
}
$xfer += $input->readFieldEnd();
}
$xfer += $input->readStructEnd();
return $xfer;
}

sub write {
my ($self, $output) = @_;
my $xfer = 0;
$xfer += $output->writeStructBegin('Battleship2_getOpponentsLastAttack_args');
$xfer += $output->writeFieldStop();
$xfer += $output->writeStructEnd();
return $xfer;
}

package Battleship2_getOpponentsLastAttack_result;
use base qw(Class::Accessor);
Battleship2_getOpponentsLastAttack_result->mk_accessors( qw( success ) );

sub new {
my $classname = shift;
my $self = {};
my $vals = shift || {};
$self->{success} = undef;
$self->{nmme} = undef;
$self->{ue} = undef;
if (UNIVERSAL::isa($vals,'HASH')) {
if (defined $vals->{success}) {
$self->{success} = $vals->{success};
}
if (defined $vals->{nmme}) {
$self->{nmme} = $vals->{nmme};
}
if (defined $vals->{ue}) {
$self->{ue} = $vals->{ue};
}
}
return bless ($self, $classname);
}

sub getName {
return 'Battleship2_getOpponentsLastAttack_result';
}

sub read {
my ($self, $input) = @_;
my $xfer = 0;
my $fname;
my $ftype = 0;
my $fid = 0;
$xfer += $input->readStructBegin(\$fname);
while (1)
{
$xfer += $input->readFieldBegin(\$fname, \$ftype, \$fid);
if ($ftype == TType::STOP) {
last;
}
SWITCH: for($fid)
{
/^0$/ && do{ if ($ftype == TType::STRUCT) {
$self->{success} = new Coordinate();
$xfer += $self->{success}->read($input);
} else {
$xfer += $input->skip($ftype);
}
last; };
/^1$/ && do{ if ($ftype == TType::STRUCT) {
$self->{nmme} = new NoMovesMadeException();
$xfer += $self->{nmme}->read($input);
} else {
$xfer += $input->skip($ftype);
}
last; };
/^2$/ && do{ if ($ftype == TType::STRUCT) {
$self->{ue} = new UnregisteredException();
$xfer += $self->{ue}->read($input);
} else {
$xfer += $input->skip($ftype);
}
last; };
$xfer += $input->skip($ftype);
}
$xfer += $input->readFieldEnd();
}
$xfer += $input->readStructEnd();
return $xfer;
}

sub write {
my ($self, $output) = @_;
my $xfer = 0;
$xfer += $output->writeStructBegin('Battleship2_getOpponentsLastAttack_result');
if (defined $self->{success}) {
$xfer += $output->writeFieldBegin('success', TType::STRUCT, 0);
$xfer += $self->{success}->write($output);
$xfer += $output->writeFieldEnd();
}
if (defined $self->{nmme}) {
$xfer += $output->writeFieldBegin('nmme', TType::STRUCT, 1);
$xfer += $self->{nmme}->write($output);
$xfer += $output->writeFieldEnd();
}
if (defined $self->{ue}) {
$xfer += $output->writeFieldBegin('ue', TType::STRUCT, 2);
$xfer += $self->{ue}->write($output);
$xfer += $output->writeFieldEnd();
}
$xfer += $output->writeFieldStop();
$xfer += $output->writeStructEnd();
return $xfer;
}

package Battleship2_winGame_args;
use base qw(Class::Accessor);

sub new {
my $classname = shift;
my $self = {};
my $vals = shift || {};
return bless ($self, $classname);
}

sub getName {
return 'Battleship2_winGame_args';
}

sub read {
my ($self, $input) = @_;
my $xfer = 0;
my $fname;
my $ftype = 0;
my $fid = 0;
$xfer += $input->readStructBegin(\$fname);
while (1)
{
$xfer += $input->readFieldBegin(\$fname, \$ftype, \$fid);
if ($ftype == TType::STOP) {
last;
}
SWITCH: for($fid)
{
$xfer += $input->skip($ftype);
}
$xfer += $input->readFieldEnd();
}
$xfer += $input->readStructEnd();
return $xfer;
}

sub write {
my ($self, $output) = @_;
my $xfer = 0;
$xfer += $output->writeStructBegin('Battleship2_winGame_args');
$xfer += $output->writeFieldStop();
$xfer += $output->writeStructEnd();
return $xfer;
}

package Battleship2_winGame_result;
use base qw(Class::Accessor);
Battleship2_winGame_result->mk_accessors( qw( success ) );

sub new {
my $classname = shift;
my $self = {};
my $vals = shift || {};
$self->{success} = undef;
$self->{ue} = undef;
if (UNIVERSAL::isa($vals,'HASH')) {
if (defined $vals->{success}) {
$self->{success} = $vals->{success};
}
if (defined $vals->{ue}) {
$self->{ue} = $vals->{ue};
}
}
return bless ($self, $classname);
}

sub getName {
return 'Battleship2_winGame_result';
}

sub read {
my ($self, $input) = @_;
my $xfer = 0;
my $fname;
my $ftype = 0;
my $fid = 0;
$xfer += $input->readStructBegin(\$fname);
while (1)
{
$xfer += $input->readFieldBegin(\$fname, \$ftype, \$fid);
if ($ftype == TType::STOP) {
last;
}
SWITCH: for($fid)
{
/^0$/ && do{ if ($ftype == TType::STRING) {
$xfer += $input->readString(\$self->{success});
} else {
$xfer += $input->skip($ftype);
}
last; };
/^1$/ && do{ if ($ftype == TType::STRUCT) {
$self->{ue} = new UnregisteredException();
$xfer += $self->{ue}->read($input);
} else {
$xfer += $input->skip($ftype);
}
last; };
$xfer += $input->skip($ftype);
}
$xfer += $input->readFieldEnd();
}
$xfer += $input->readStructEnd();
return $xfer;
}

sub write {
my ($self, $output) = @_;
my $xfer = 0;
$xfer += $output->writeStructBegin('Battleship2_winGame_result');
if (defined $self->{success}) {
$xfer += $output->writeFieldBegin('success', TType::STRING, 0);
$xfer += $output->writeString($self->{success});
$xfer += $output->writeFieldEnd();
}
if (defined $self->{ue}) {
$xfer += $output->writeFieldBegin('ue', TType::STRUCT, 1);
$xfer += $self->{ue}->write($output);
$xfer += $output->writeFieldEnd();
}
$xfer += $output->writeFieldStop();
$xfer += $output->writeStructEnd();
return $xfer;
}

package Battleship2If;

use strict;


sub registerClient{
my $self = shift;
my $email = shift;

die 'implement interface';
}

sub join{
my $self = shift;
my $gameID = shift;
my $email = shift;

die 'implement interface';
}

sub isMyTurn{
my $self = shift;

die 'implement interface';
}

sub placePiece{
my $self = shift;
my $piece = shift;
my $coord = shift;
my $horizontal = shift;

die 'implement interface';
}

sub attack{
my $self = shift;
my $coord = shift;

die 'implement interface';
}

sub getOpponentsLastAttack{
my $self = shift;

die 'implement interface';
}

sub winGame{
my $self = shift;

die 'implement interface';
}

package Battleship2Rest;

use strict;


sub new {
my ($classname, $impl) = @_;
my $self ={ impl => $impl };

return bless($self,$classname);
}

sub registerClient{
my ($self, $request) = @_;

my $email = ($request->{'email'}) ? $request->{'email'} : undef;
return $self->{impl}->registerClient($email);
}

sub join{
my ($self, $request) = @_;

my $gameID = ($request->{'gameID'}) ? $request->{'gameID'} : undef;
my $email = ($request->{'email'}) ? $request->{'email'} : undef;
return $self->{impl}->join($gameID, $email);
}

sub isMyTurn{
my ($self, $request) = @_;

return $self->{impl}->isMyTurn();
}

sub placePiece{
my ($self, $request) = @_;

my $piece = ($request->{'piece'}) ? $request->{'piece'} : undef;
my $coord = ($request->{'coord'}) ? $request->{'coord'} : undef;
my $horizontal = ($request->{'horizontal'}) ? $request->{'horizontal'} : undef;
return $self->{impl}->placePiece($piece, $coord, $horizontal);
}

sub attack{
my ($self, $request) = @_;

my $coord = ($request->{'coord'}) ? $request->{'coord'} : undef;
return $self->{impl}->attack($coord);
}

sub getOpponentsLastAttack{
my ($self, $request) = @_;

return $self->{impl}->getOpponentsLastAttack();
}

sub winGame{
my ($self, $request) = @_;

return $self->{impl}->winGame();
}

package Battleship2Client;


use base qw(Battleship2If);
sub new {
my ($classname, $input, $output) = @_;
my $self = {};
$self->{input} = $input;
$self->{output} = defined $output ? $output : $input;
$self->{seqid} = 0;
return bless($self,$classname);
}

sub registerClient{
my $self = shift;
my $email = shift;

$self->send_registerClient($email);
return $self->recv_registerClient();
}

sub send_registerClient{
my $self = shift;
my $email = shift;

$self->{output}->writeMessageBegin('registerClient', TMessageType::CALL, $self->{seqid});
my $args = new Battleship2_registerClient_args();
$args->{email} = $email;
$args->write($self->{output});
$self->{output}->writeMessageEnd();
$self->{output}->getTransport()->flush();
}

sub recv_registerClient{
my $self = shift;

my $rseqid = 0;
my $fname;
my $mtype = 0;

$self->{input}->readMessageBegin(\$fname, \$mtype, \$rseqid);
if ($mtype == TMessageType::EXCEPTION) {
my $x = new TApplicationException();
$x->read($self->{input});
$self->{input}->readMessageEnd();
die $x;
}
my $result = new Battleship2_registerClient_result();
$result->read($self->{input});
$self->{input}->readMessageEnd();

if (defined $result->{success} ) {
return $result->{success};
}
die "registerClient failed: unknown result";
}
sub join{
my $self = shift;
my $gameID = shift;
my $email = shift;

$self->send_join($gameID, $email);
return $self->recv_join();
}

sub send_join{
my $self = shift;
my $gameID = shift;
my $email = shift;

$self->{output}->writeMessageBegin('join', TMessageType::CALL, $self->{seqid});
my $args = new Battleship2_join_args();
$args->{gameID} = $gameID;
$args->{email} = $email;
$args->write($self->{output});
$self->{output}->writeMessageEnd();
$self->{output}->getTransport()->flush();
}

sub recv_join{
my $self = shift;

my $rseqid = 0;
my $fname;
my $mtype = 0;

$self->{input}->readMessageBegin(\$fname, \$mtype, \$rseqid);
if ($mtype == TMessageType::EXCEPTION) {
my $x = new TApplicationException();
$x->read($self->{input});
$self->{input}->readMessageEnd();
die $x;
}
my $result = new Battleship2_join_result();
$result->read($self->{input});
$self->{input}->readMessageEnd();

if (defined $result->{success} ) {
return $result->{success};
}
if (defined $result->{dee}) {
die $result->{dee};
}
die "join failed: unknown result";
}
sub isMyTurn{
my $self = shift;

$self->send_isMyTurn();
return $self->recv_isMyTurn();
}

sub send_isMyTurn{
my $self = shift;

$self->{output}->writeMessageBegin('isMyTurn', TMessageType::CALL, $self->{seqid});
my $args = new Battleship2_isMyTurn_args();
$args->write($self->{output});
$self->{output}->writeMessageEnd();
$self->{output}->getTransport()->flush();
}

sub recv_isMyTurn{
my $self = shift;

my $rseqid = 0;
my $fname;
my $mtype = 0;

$self->{input}->readMessageBegin(\$fname, \$mtype, \$rseqid);
if ($mtype == TMessageType::EXCEPTION) {
my $x = new TApplicationException();
$x->read($self->{input});
$self->{input}->readMessageEnd();
die $x;
}
my $result = new Battleship2_isMyTurn_result();
$result->read($self->{input});
$self->{input}->readMessageEnd();

if (defined $result->{success} ) {
return $result->{success};
}
if (defined $result->{goe}) {
die $result->{goe};
}
if (defined $result->{ue}) {
die $result->{ue};
}
die "isMyTurn failed: unknown result";
}
sub placePiece{
my $self = shift;
my $piece = shift;
my $coord = shift;
my $horizontal = shift;

$self->send_placePiece($piece, $coord, $horizontal);
return $self->recv_placePiece();
}

sub send_placePiece{
my $self = shift;
my $piece = shift;
my $coord = shift;
my $horizontal = shift;

$self->{output}->writeMessageBegin('placePiece', TMessageType::CALL, $self->{seqid});
my $args = new Battleship2_placePiece_args();
$args->{piece} = $piece;
$args->{coord} = $coord;
$args->{horizontal} = $horizontal;
$args->write($self->{output});
$self->{output}->writeMessageEnd();
$self->{output}->getTransport()->flush();
}

sub recv_placePiece{
my $self = shift;

my $rseqid = 0;
my $fname;
my $mtype = 0;

$self->{input}->readMessageBegin(\$fname, \$mtype, \$rseqid);
if ($mtype == TMessageType::EXCEPTION) {
my $x = new TApplicationException();
$x->read($self->{input});
$self->{input}->readMessageEnd();
die $x;
}
my $result = new Battleship2_placePiece_result();
$result->read($self->{input});
$self->{input}->readMessageEnd();

if (defined $result->{success} ) {
return $result->{success};
}
if (defined $result->{ue}) {
die $result->{ue};
}
die "placePiece failed: unknown result";
}
sub attack{
my $self = shift;
my $coord = shift;

$self->send_attack($coord);
return $self->recv_attack();
}

sub send_attack{
my $self = shift;
my $coord = shift;

$self->{output}->writeMessageBegin('attack', TMessageType::CALL, $self->{seqid});
my $args = new Battleship2_attack_args();
$args->{coord} = $coord;
$args->write($self->{output});
$self->{output}->writeMessageEnd();
$self->{output}->getTransport()->flush();
}

sub recv_attack{
my $self = shift;

my $rseqid = 0;
my $fname;
my $mtype = 0;

$self->{input}->readMessageBegin(\$fname, \$mtype, \$rseqid);
if ($mtype == TMessageType::EXCEPTION) {
my $x = new TApplicationException();
$x->read($self->{input});
$self->{input}->readMessageEnd();
die $x;
}
my $result = new Battleship2_attack_result();
$result->read($self->{input});
$self->{input}->readMessageEnd();

if (defined $result->{success} ) {
return $result->{success};
}
if (defined $result->{goe}) {
die $result->{goe};
}
if (defined $result->{ue}) {
die $result->{ue};
}
die "attack failed: unknown result";
}
sub getOpponentsLastAttack{
my $self = shift;

$self->send_getOpponentsLastAttack();
return $self->recv_getOpponentsLastAttack();
}

sub send_getOpponentsLastAttack{
my $self = shift;

$self->{output}->writeMessageBegin('getOpponentsLastAttack', TMessageType::CALL, $self->{seqid});
my $args = new Battleship2_getOpponentsLastAttack_args();
$args->write($self->{output});
$self->{output}->writeMessageEnd();
$self->{output}->getTransport()->flush();
}

sub recv_getOpponentsLastAttack{
my $self = shift;

my $rseqid = 0;
my $fname;
my $mtype = 0;

$self->{input}->readMessageBegin(\$fname, \$mtype, \$rseqid);
if ($mtype == TMessageType::EXCEPTION) {
my $x = new TApplicationException();
$x->read($self->{input});
$self->{input}->readMessageEnd();
die $x;
}
my $result = new Battleship2_getOpponentsLastAttack_result();
$result->read($self->{input});
$self->{input}->readMessageEnd();

if (defined $result->{success} ) {
return $result->{success};
}
if (defined $result->{nmme}) {
die $result->{nmme};
}
if (defined $result->{ue}) {
die $result->{ue};
}
die "getOpponentsLastAttack failed: unknown result";
}
sub winGame{
my $self = shift;

$self->send_winGame();
return $self->recv_winGame();
}

sub send_winGame{
my $self = shift;

$self->{output}->writeMessageBegin('winGame', TMessageType::CALL, $self->{seqid});
my $args = new Battleship2_winGame_args();
$args->write($self->{output});
$self->{output}->writeMessageEnd();
$self->{output}->getTransport()->flush();
}

sub recv_winGame{
my $self = shift;

my $rseqid = 0;
my $fname;
my $mtype = 0;

$self->{input}->readMessageBegin(\$fname, \$mtype, \$rseqid);
if ($mtype == TMessageType::EXCEPTION) {
my $x = new TApplicationException();
$x->read($self->{input});
$self->{input}->readMessageEnd();
die $x;
}
my $result = new Battleship2_winGame_result();
$result->read($self->{input});
$self->{input}->readMessageEnd();

if (defined $result->{success} ) {
return $result->{success};
}
if (defined $result->{ue}) {
die $result->{ue};
}
die "winGame failed: unknown result";
}
package Battleship2Processor;

use strict;


sub new {
my ($classname, $handler) = @_;
my $self = {};
$self->{handler} = $handler;
return bless ($self, $classname);
}

sub process {
my ($self, $input, $output) = @_;
my $rseqid = 0;
my $fname = undef;
my $mtype = 0;

$input->readMessageBegin(\$fname, \$mtype, \$rseqid);
my $methodname = 'process_'.$fname;
if (!$self->can($methodname)) {
$input->skip(TType::STRUCT);
$input->readMessageEnd();
my $x = new TApplicationException('Function '.$fname.' not implemented.', TApplicationException::UNKNOWN_METHOD);
$output->writeMessageBegin($fname, TMessageType::EXCEPTION, $rseqid);
$x->write($output);
$output->writeMessageEnd();
$output->getTransport()->flush();
return;
}
$self->$methodname($rseqid, $input, $output);
return 1;
}

sub process_registerClient {
my ($self, $seqid, $input, $output) = @_;
my $args = new Battleship2_registerClient_args();
$args->read($input);
$input->readMessageEnd();
my $result = new Battleship2_registerClient_result();
$result->{success} = $self->{handler}->registerClient($args->email);
$output->writeMessageBegin('registerClient', TMessageType::REPLY, $seqid);
$result->write($output);
$output->writeMessageEnd();
$output->getTransport()->flush();
}

sub process_join {
my ($self, $seqid, $input, $output) = @_;
my $args = new Battleship2_join_args();
$args->read($input);
$input->readMessageEnd();
my $result = new Battleship2_join_result();
eval {
$result->{success} = $self->{handler}->join($args->gameID, $args->email);
}; if( UNIVERSAL::isa($@,'DuplicateEmailException') ){
$result->{dee} = $@;
}
$output->writeMessageBegin('join', TMessageType::REPLY, $seqid);
$result->write($output);
$output->writeMessageEnd();
$output->getTransport()->flush();
}

sub process_isMyTurn {
my ($self, $seqid, $input, $output) = @_;
my $args = new Battleship2_isMyTurn_args();
$args->read($input);
$input->readMessageEnd();
my $result = new Battleship2_isMyTurn_result();
eval {
$result->{success} = $self->{handler}->isMyTurn();
}; if( UNIVERSAL::isa($@,'GameOverException') ){
$result->{goe} = $@;
}; if( UNIVERSAL::isa($@,'UnregisteredException') ){
$result->{ue} = $@;
}
$output->writeMessageBegin('isMyTurn', TMessageType::REPLY, $seqid);
$result->write($output);
$output->writeMessageEnd();
$output->getTransport()->flush();
}

sub process_placePiece {
my ($self, $seqid, $input, $output) = @_;
my $args = new Battleship2_placePiece_args();
$args->read($input);
$input->readMessageEnd();
my $result = new Battleship2_placePiece_result();
eval {
$result->{success} = $self->{handler}->placePiece($args->piece, $args->coord, $args->horizontal);
}; if( UNIVERSAL::isa($@,'UnregisteredException') ){
$result->{ue} = $@;
}
$output->writeMessageBegin('placePiece', TMessageType::REPLY, $seqid);
$result->write($output);
$output->writeMessageEnd();
$output->getTransport()->flush();
}

sub process_attack {
my ($self, $seqid, $input, $output) = @_;
my $args = new Battleship2_attack_args();
$args->read($input);
$input->readMessageEnd();
my $result = new Battleship2_attack_result();
eval {
$result->{success} = $self->{handler}->attack($args->coord);
}; if( UNIVERSAL::isa($@,'GameOverException') ){
$result->{goe} = $@;
}; if( UNIVERSAL::isa($@,'UnregisteredException') ){
$result->{ue} = $@;
}
$output->writeMessageBegin('attack', TMessageType::REPLY, $seqid);
$result->write($output);
$output->writeMessageEnd();
$output->getTransport()->flush();
}

sub process_getOpponentsLastAttack {
my ($self, $seqid, $input, $output) = @_;
my $args = new Battleship2_getOpponentsLastAttack_args();
$args->read($input);
$input->readMessageEnd();
my $result = new Battleship2_getOpponentsLastAttack_result();
eval {
$result->{success} = $self->{handler}->getOpponentsLastAttack();
}; if( UNIVERSAL::isa($@,'NoMovesMadeException') ){
$result->{nmme} = $@;
}; if( UNIVERSAL::isa($@,'UnregisteredException') ){
$result->{ue} = $@;
}
$output->writeMessageBegin('getOpponentsLastAttack', TMessageType::REPLY, $seqid);
$result->write($output);
$output->writeMessageEnd();
$output->getTransport()->flush();
}

sub process_winGame {
my ($self, $seqid, $input, $output) = @_;
my $args = new Battleship2_winGame_args();
$args->read($input);
$input->readMessageEnd();
my $result = new Battleship2_winGame_result();
eval {
$result->{success} = $self->{handler}->winGame();
}; if( UNIVERSAL::isa($@,'UnregisteredException') ){
$result->{ue} = $@;
}
$output->writeMessageBegin('winGame', TMessageType::REPLY, $seqid);
$result->write($output);
$output->writeMessageEnd();
$output->getTransport()->flush();
}

1;
 
The above code is the Battleship.pm and I wanna know how to invoke a new client..
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top