Perl x Open Food Facts Hackathon: Paris, France - May 24-25 Learn more

use strict;
use lib 'lib';
use aliased 'Javonet::Core::Protocol::CommandSerializer' => 'CommandSerializer', qw(encode);
use aliased 'Javonet::Core::Protocol::CommandDeserializer' => 'CommandDeserializer', qw(decode);
our @ISA = qw(Exporter);
our @EXPORT = qw(process execute_);
my $handler = PerlHandler->new();
sub execute_ {
my $self = shift;
my $command = shift;
my $connection_type = shift;
my $tcp_address = shift;
my $commandSerializer = Javonet::Core::Protocol::CommandSerializer->new();
my @serialized_command = $commandSerializer->encode($command, $connection_type, $tcp_address, 0);
my @response_byte_array;
# if ($command->{runtime} eq Javonet::Sdk::Core::RuntimeLib::get_runtime('Perl')) {
# require Javonet::Core::Receiver::Receiver;
# @response_byte_array = Javonet::Core::Receiver::Receiver->send_command(\@serialized_command);
# } else {
@response_byte_array = Javonet::Core::Transmitter::PerlTransmitter->send_command(\@serialized_command);
# }
my $commandDeserializer = CommandDeserializer->new(\@response_byte_array);
return $commandDeserializer->decode();
}
sub process {
my ($self, $array_ref) = @_;
my @byte_array = @$array_ref;
my $commandDeserializer = CommandDeserializer->new(\@byte_array);
my $command = $commandDeserializer->decode();
my $response = $handler->handle_command($command);
my $commandSerializer = CommandSerializer->new();
my @byte_message = $commandSerializer->encode($response, 0, 0, 0);
return @byte_message;
}
1;