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 SkipVought 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
0
0
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