#!perl

use common::sense;
use Ion;

my @queue;
my $re_cmd = qr/^(size|get|put)\s*(.*)$/;

my $server = Service {
  my $line  = shift;
  my ($cmd, $data) = $line =~ $re_cmd;

  if ($cmd eq 'get') {
    return shift @queue || 'empty';
  }
  elsif ($cmd eq 'put') {
    push @queue, $data;
    return 'ok';
  }
  elsif ($cmd eq 'size') {
    return scalar @queue . ' items';
  }
} 4242, '127.0.0.1';

printf "Queue started on %s:%d\n", $server->host, $server->port;

$server->join;