Repository: incubator-blur
Updated Branches:
  refs/heads/blur-platform [created] 486d37b52


http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/486d37b5/distribution/src/main/scripts/interface/gen-perl/Blur/BlurPlatform.pm
----------------------------------------------------------------------
diff --git 
a/distribution/src/main/scripts/interface/gen-perl/Blur/BlurPlatform.pm 
b/distribution/src/main/scripts/interface/gen-perl/Blur/BlurPlatform.pm
new file mode 100644
index 0000000..d5f4f75
--- /dev/null
+++ b/distribution/src/main/scripts/interface/gen-perl/Blur/BlurPlatform.pm
@@ -0,0 +1,302 @@
+#
+# Autogenerated by Thrift Compiler (0.9.0)
+#
+# 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 Blur::Types;
+
+# HELPER FUNCTIONS AND STRUCTURES
+
+package Blur::BlurPlatform_execute_args;
+use base qw(Class::Accessor);
+Blur::BlurPlatform_execute_args->mk_accessors( qw( request ) );
+
+sub new {
+  my $classname = shift;
+  my $self      = {};
+  my $vals      = shift || {};
+  $self->{request} = undef;
+  if (UNIVERSAL::isa($vals,'HASH')) {
+    if (defined $vals->{request}) {
+      $self->{request} = $vals->{request};
+    }
+  }
+  return bless ($self, $classname);
+}
+
+sub getName {
+  return 'BlurPlatform_execute_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->{request} = new Blur::BlurCommandRequest();
+        $xfer += $self->{request}->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('BlurPlatform_execute_args');
+  if (defined $self->{request}) {
+    $xfer += $output->writeFieldBegin('request', TType::STRUCT, 1);
+    $xfer += $self->{request}->write($output);
+    $xfer += $output->writeFieldEnd();
+  }
+  $xfer += $output->writeFieldStop();
+  $xfer += $output->writeStructEnd();
+  return $xfer;
+}
+
+package Blur::BlurPlatform_execute_result;
+use base qw(Class::Accessor);
+Blur::BlurPlatform_execute_result->mk_accessors( qw( success ) );
+
+sub new {
+  my $classname = shift;
+  my $self      = {};
+  my $vals      = shift || {};
+  $self->{success} = undef;
+  $self->{ex} = undef;
+  if (UNIVERSAL::isa($vals,'HASH')) {
+    if (defined $vals->{success}) {
+      $self->{success} = $vals->{success};
+    }
+    if (defined $vals->{ex}) {
+      $self->{ex} = $vals->{ex};
+    }
+  }
+  return bless ($self, $classname);
+}
+
+sub getName {
+  return 'BlurPlatform_execute_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 Blur::BlurCommandResponse();
+        $xfer += $self->{success}->read($input);
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^1$/ && do{      if ($ftype == TType::STRUCT) {
+        $self->{ex} = new Blur::BlurException();
+        $xfer += $self->{ex}->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('BlurPlatform_execute_result');
+  if (defined $self->{success}) {
+    $xfer += $output->writeFieldBegin('success', TType::STRUCT, 0);
+    $xfer += $self->{success}->write($output);
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{ex}) {
+    $xfer += $output->writeFieldBegin('ex', TType::STRUCT, 1);
+    $xfer += $self->{ex}->write($output);
+    $xfer += $output->writeFieldEnd();
+  }
+  $xfer += $output->writeFieldStop();
+  $xfer += $output->writeStructEnd();
+  return $xfer;
+}
+
+package Blur::BlurPlatformIf;
+
+use strict;
+
+
+sub execute{
+  my $self = shift;
+  my $request = shift;
+
+  die 'implement interface';
+}
+
+package Blur::BlurPlatformRest;
+
+use strict;
+
+
+sub new {
+  my ($classname, $impl) = @_;
+  my $self     ={ impl => $impl };
+
+  return bless($self,$classname);
+}
+
+sub execute{
+  my ($self, $request) = @_;
+
+  my $request = ($request->{'request'}) ? $request->{'request'} : undef;
+  return $self->{impl}->execute($request);
+}
+
+package Blur::BlurPlatformClient;
+
+
+use base qw(Blur::BlurPlatformIf);
+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 execute{
+  my $self = shift;
+  my $request = shift;
+
+    $self->send_execute($request);
+  return $self->recv_execute();
+}
+
+sub send_execute{
+  my $self = shift;
+  my $request = shift;
+
+  $self->{output}->writeMessageBegin('execute', TMessageType::CALL, 
$self->{seqid});
+  my $args = new Blur::BlurPlatform_execute_args();
+  $args->{request} = $request;
+  $args->write($self->{output});
+  $self->{output}->writeMessageEnd();
+  $self->{output}->getTransport()->flush();
+}
+
+sub recv_execute{
+  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 Blur::BlurPlatform_execute_result();
+  $result->read($self->{input});
+  $self->{input}->readMessageEnd();
+
+  if (defined $result->{success} ) {
+    return $result->{success};
+  }
+  if (defined $result->{ex}) {
+    die $result->{ex};
+  }
+  die "execute failed: unknown result";
+}
+package Blur::BlurPlatformProcessor;
+
+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_execute {
+    my ($self, $seqid, $input, $output) = @_;
+    my $args = new Blur::BlurPlatform_execute_args();
+    $args->read($input);
+    $input->readMessageEnd();
+    my $result = new Blur::BlurPlatform_execute_result();
+    eval {
+      $result->{success} = $self->{handler}->execute($args->request);
+    }; if( UNIVERSAL::isa($@,'Blur::BlurException') ){ 
+      $result->{ex} = $@;
+    }
+    $output->writeMessageBegin('execute', TMessageType::REPLY, $seqid);
+    $result->write($output);
+    $output->writeMessageEnd();
+    $output->getTransport()->flush();
+}
+
+1;

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/486d37b5/distribution/src/main/scripts/interface/gen-perl/Blur/Types.pm
----------------------------------------------------------------------
diff --git a/distribution/src/main/scripts/interface/gen-perl/Blur/Types.pm 
b/distribution/src/main/scripts/interface/gen-perl/Blur/Types.pm
index 741f89d..e7911c6 100644
--- a/distribution/src/main/scripts/interface/gen-perl/Blur/Types.pm
+++ b/distribution/src/main/scripts/interface/gen-perl/Blur/Types.pm
@@ -52,6 +52,15 @@ use constant INFO => 4;
 use constant DEBUG => 5;
 use constant TRACE => 6;
 use constant ALL => 7;
+package Blur::ValueType;
+use constant STRING => 0;
+use constant INTEGER => 1;
+use constant LONG => 2;
+use constant DOUBLE => 3;
+use constant FLOAT => 4;
+use constant BINARY => 5;
+use constant WRITABLE => 6;
+use constant SERIALIZABLE => 7;
 package Blur::BlurException;
 use base qw(Thrift::TException);
 use base qw(Class::Accessor);
@@ -3819,4 +3828,491 @@ sub write {
   return $xfer;
 }
 
+package Blur::Value;
+use base qw(Class::Accessor);
+Blur::Value->mk_accessors( qw( type value ) );
+
+sub new {
+  my $classname = shift;
+  my $self      = {};
+  my $vals      = shift || {};
+  $self->{type} = undef;
+  $self->{value} = undef;
+  if (UNIVERSAL::isa($vals,'HASH')) {
+    if (defined $vals->{type}) {
+      $self->{type} = $vals->{type};
+    }
+    if (defined $vals->{value}) {
+      $self->{value} = $vals->{value};
+    }
+  }
+  return bless ($self, $classname);
+}
+
+sub getName {
+  return 'Value';
+}
+
+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->{type});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^2$/ && do{      if ($ftype == TType::STRING) {
+        $xfer += $input->readString(\$self->{value});
+      } 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('Value');
+  if (defined $self->{type}) {
+    $xfer += $output->writeFieldBegin('type', TType::I32, 1);
+    $xfer += $output->writeI32($self->{type});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{value}) {
+    $xfer += $output->writeFieldBegin('value', TType::STRING, 2);
+    $xfer += $output->writeString($self->{value});
+    $xfer += $output->writeFieldEnd();
+  }
+  $xfer += $output->writeFieldStop();
+  $xfer += $output->writeStructEnd();
+  return $xfer;
+}
+
+package Blur::AdhocByteCodeCommandRequest;
+use base qw(Class::Accessor);
+Blur::AdhocByteCodeCommandRequest->mk_accessors( qw( arguments instanceData 
classData libraries ) );
+
+sub new {
+  my $classname = shift;
+  my $self      = {};
+  my $vals      = shift || {};
+  $self->{arguments} = undef;
+  $self->{instanceData} = undef;
+  $self->{classData} = undef;
+  $self->{libraries} = undef;
+  if (UNIVERSAL::isa($vals,'HASH')) {
+    if (defined $vals->{arguments}) {
+      $self->{arguments} = $vals->{arguments};
+    }
+    if (defined $vals->{instanceData}) {
+      $self->{instanceData} = $vals->{instanceData};
+    }
+    if (defined $vals->{classData}) {
+      $self->{classData} = $vals->{classData};
+    }
+    if (defined $vals->{libraries}) {
+      $self->{libraries} = $vals->{libraries};
+    }
+  }
+  return bless ($self, $classname);
+}
+
+sub getName {
+  return 'AdhocByteCodeCommandRequest';
+}
+
+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::LIST) {
+        {
+          my $_size206 = 0;
+          $self->{arguments} = [];
+          my $_etype209 = 0;
+          $xfer += $input->readListBegin(\$_etype209, \$_size206);
+          for (my $_i210 = 0; $_i210 < $_size206; ++$_i210)
+          {
+            my $elem211 = undef;
+            $elem211 = new Blur::Value();
+            $xfer += $elem211->read($input);
+            push(@{$self->{arguments}},$elem211);
+          }
+          $xfer += $input->readListEnd();
+        }
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^2$/ && do{      if ($ftype == TType::STRING) {
+        $xfer += $input->readString(\$self->{instanceData});
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^3$/ && do{      if ($ftype == TType::MAP) {
+        {
+          my $_size212 = 0;
+          $self->{classData} = {};
+          my $_ktype213 = 0;
+          my $_vtype214 = 0;
+          $xfer += $input->readMapBegin(\$_ktype213, \$_vtype214, \$_size212);
+          for (my $_i216 = 0; $_i216 < $_size212; ++$_i216)
+          {
+            my $key217 = '';
+            my $val218 = '';
+            $xfer += $input->readString(\$key217);
+            $xfer += $input->readString(\$val218);
+            $self->{classData}->{$key217} = $val218;
+          }
+          $xfer += $input->readMapEnd();
+        }
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^4$/ && do{      if ($ftype == TType::LIST) {
+        {
+          my $_size219 = 0;
+          $self->{libraries} = [];
+          my $_etype222 = 0;
+          $xfer += $input->readListBegin(\$_etype222, \$_size219);
+          for (my $_i223 = 0; $_i223 < $_size219; ++$_i223)
+          {
+            my $elem224 = undef;
+            $xfer += $input->readString(\$elem224);
+            push(@{$self->{libraries}},$elem224);
+          }
+          $xfer += $input->readListEnd();
+        }
+      } 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('AdhocByteCodeCommandRequest');
+  if (defined $self->{arguments}) {
+    $xfer += $output->writeFieldBegin('arguments', TType::LIST, 1);
+    {
+      $xfer += $output->writeListBegin(TType::STRUCT, 
scalar(@{$self->{arguments}}));
+      {
+        foreach my $iter225 (@{$self->{arguments}}) 
+        {
+          $xfer += ${iter225}->write($output);
+        }
+      }
+      $xfer += $output->writeListEnd();
+    }
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{instanceData}) {
+    $xfer += $output->writeFieldBegin('instanceData', TType::STRING, 2);
+    $xfer += $output->writeString($self->{instanceData});
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{classData}) {
+    $xfer += $output->writeFieldBegin('classData', TType::MAP, 3);
+    {
+      $xfer += $output->writeMapBegin(TType::STRING, TType::STRING, 
scalar(keys %{$self->{classData}}));
+      {
+        while( my ($kiter226,$viter227) = each %{$self->{classData}}) 
+        {
+          $xfer += $output->writeString($kiter226);
+          $xfer += $output->writeString($viter227);
+        }
+      }
+      $xfer += $output->writeMapEnd();
+    }
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{libraries}) {
+    $xfer += $output->writeFieldBegin('libraries', TType::LIST, 4);
+    {
+      $xfer += $output->writeListBegin(TType::STRING, 
scalar(@{$self->{libraries}}));
+      {
+        foreach my $iter228 (@{$self->{libraries}}) 
+        {
+          $xfer += $output->writeString($iter228);
+        }
+      }
+      $xfer += $output->writeListEnd();
+    }
+    $xfer += $output->writeFieldEnd();
+  }
+  $xfer += $output->writeFieldStop();
+  $xfer += $output->writeStructEnd();
+  return $xfer;
+}
+
+package Blur::AdhocByteCodeCommandResponse;
+use base qw(Class::Accessor);
+Blur::AdhocByteCodeCommandResponse->mk_accessors( qw( result ) );
+
+sub new {
+  my $classname = shift;
+  my $self      = {};
+  my $vals      = shift || {};
+  $self->{result} = undef;
+  if (UNIVERSAL::isa($vals,'HASH')) {
+    if (defined $vals->{result}) {
+      $self->{result} = $vals->{result};
+    }
+  }
+  return bless ($self, $classname);
+}
+
+sub getName {
+  return 'AdhocByteCodeCommandResponse';
+}
+
+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->{result} = new Blur::Value();
+        $xfer += $self->{result}->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('AdhocByteCodeCommandResponse');
+  if (defined $self->{result}) {
+    $xfer += $output->writeFieldBegin('result', TType::STRUCT, 1);
+    $xfer += $self->{result}->write($output);
+    $xfer += $output->writeFieldEnd();
+  }
+  $xfer += $output->writeFieldStop();
+  $xfer += $output->writeStructEnd();
+  return $xfer;
+}
+
+package Blur::BlurCommandRequest;
+use base qw(Class::Accessor);
+Blur::BlurCommandRequest->mk_accessors( qw( tablesToInvoke 
adhocByteCodeCommandRequest ) );
+
+sub new {
+  my $classname = shift;
+  my $self      = {};
+  my $vals      = shift || {};
+  $self->{tablesToInvoke} = undef;
+  $self->{adhocByteCodeCommandRequest} = undef;
+  if (UNIVERSAL::isa($vals,'HASH')) {
+    if (defined $vals->{tablesToInvoke}) {
+      $self->{tablesToInvoke} = $vals->{tablesToInvoke};
+    }
+    if (defined $vals->{adhocByteCodeCommandRequest}) {
+      $self->{adhocByteCodeCommandRequest} = 
$vals->{adhocByteCodeCommandRequest};
+    }
+  }
+  return bless ($self, $classname);
+}
+
+sub getName {
+  return 'BlurCommandRequest';
+}
+
+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::SET) {
+        {
+          my $_size229 = 0;
+          $self->{tablesToInvoke} = {};
+          my $_etype232 = 0;
+          $xfer += $input->readSetBegin(\$_etype232, \$_size229);
+          for (my $_i233 = 0; $_i233 < $_size229; ++$_i233)
+          {
+            my $elem234 = undef;
+            $xfer += $input->readString(\$elem234);
+            $self->{tablesToInvoke}->{$elem234} = 1;
+          }
+          $xfer += $input->readSetEnd();
+        }
+      } else {
+        $xfer += $input->skip($ftype);
+      }
+      last; };
+      /^2$/ && do{      if ($ftype == TType::STRUCT) {
+        $self->{adhocByteCodeCommandRequest} = new 
Blur::AdhocByteCodeCommandRequest();
+        $xfer += $self->{adhocByteCodeCommandRequest}->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('BlurCommandRequest');
+  if (defined $self->{tablesToInvoke}) {
+    $xfer += $output->writeFieldBegin('tablesToInvoke', TType::SET, 1);
+    {
+      $xfer += $output->writeSetBegin(TType::STRING, 
scalar(@{$self->{tablesToInvoke}}));
+      {
+        foreach my $iter235 (@{$self->{tablesToInvoke}})
+        {
+          $xfer += $output->writeString($iter235);
+        }
+      }
+      $xfer += $output->writeSetEnd();
+    }
+    $xfer += $output->writeFieldEnd();
+  }
+  if (defined $self->{adhocByteCodeCommandRequest}) {
+    $xfer += $output->writeFieldBegin('adhocByteCodeCommandRequest', 
TType::STRUCT, 2);
+    $xfer += $self->{adhocByteCodeCommandRequest}->write($output);
+    $xfer += $output->writeFieldEnd();
+  }
+  $xfer += $output->writeFieldStop();
+  $xfer += $output->writeStructEnd();
+  return $xfer;
+}
+
+package Blur::BlurCommandResponse;
+use base qw(Class::Accessor);
+Blur::BlurCommandResponse->mk_accessors( qw( adhocByteCodeCommandResponse ) );
+
+sub new {
+  my $classname = shift;
+  my $self      = {};
+  my $vals      = shift || {};
+  $self->{adhocByteCodeCommandResponse} = undef;
+  if (UNIVERSAL::isa($vals,'HASH')) {
+    if (defined $vals->{adhocByteCodeCommandResponse}) {
+      $self->{adhocByteCodeCommandResponse} = 
$vals->{adhocByteCodeCommandResponse};
+    }
+  }
+  return bless ($self, $classname);
+}
+
+sub getName {
+  return 'BlurCommandResponse';
+}
+
+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->{adhocByteCodeCommandResponse} = new 
Blur::AdhocByteCodeCommandResponse();
+        $xfer += $self->{adhocByteCodeCommandResponse}->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('BlurCommandResponse');
+  if (defined $self->{adhocByteCodeCommandResponse}) {
+    $xfer += $output->writeFieldBegin('adhocByteCodeCommandResponse', 
TType::STRUCT, 1);
+    $xfer += $self->{adhocByteCodeCommandResponse}->write($output);
+    $xfer += $output->writeFieldEnd();
+  }
+  $xfer += $output->writeFieldStop();
+  $xfer += $output->writeStructEnd();
+  return $xfer;
+}
+
 1;

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/486d37b5/distribution/src/main/scripts/interface/gen-rb/blur.rb
----------------------------------------------------------------------
diff --git a/distribution/src/main/scripts/interface/gen-rb/blur.rb 
b/distribution/src/main/scripts/interface/gen-rb/blur.rb
index 5de32dd..fa2c9e2 100644
--- a/distribution/src/main/scripts/interface/gen-rb/blur.rb
+++ b/distribution/src/main/scripts/interface/gen-rb/blur.rb
@@ -5,11 +5,12 @@
 #
 
 require 'thrift'
+require 'blur_platform'
 require 'blur_types'
 
 module Blur
   module Blur
-    class Client
+    class Client < ::Blur::BlurPlatform::Client 
       include ::Thrift::Client
 
       def createTable(tableDescriptor)
@@ -683,7 +684,7 @@ module Blur
 
     end
 
-    class Processor
+    class Processor < ::Blur::BlurPlatform::Processor 
       include ::Thrift::Processor
 
       def process_createTable(seqid, iprot, oprot)

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/486d37b5/distribution/src/main/scripts/interface/gen-rb/blur_platform.rb
----------------------------------------------------------------------
diff --git a/distribution/src/main/scripts/interface/gen-rb/blur_platform.rb 
b/distribution/src/main/scripts/interface/gen-rb/blur_platform.rb
new file mode 100644
index 0000000..ce63f60
--- /dev/null
+++ b/distribution/src/main/scripts/interface/gen-rb/blur_platform.rb
@@ -0,0 +1,87 @@
+#
+# Autogenerated by Thrift Compiler (0.9.0)
+#
+# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
+#
+
+require 'thrift'
+require 'blur_types'
+
+module Blur
+  module BlurPlatform
+    class Client
+      include ::Thrift::Client
+
+      def execute(request)
+        send_execute(request)
+        return recv_execute()
+      end
+
+      def send_execute(request)
+        send_message('execute', Execute_args, :request => request)
+      end
+
+      def recv_execute()
+        result = receive_message(Execute_result)
+        return result.success unless result.success.nil?
+        raise result.ex unless result.ex.nil?
+        raise 
::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT,
 'execute failed: unknown result')
+      end
+
+    end
+
+    class Processor
+      include ::Thrift::Processor
+
+      def process_execute(seqid, iprot, oprot)
+        args = read_args(iprot, Execute_args)
+        result = Execute_result.new()
+        begin
+          result.success = @handler.execute(args.request)
+        rescue ::Blur::BlurException => ex
+          result.ex = ex
+        end
+        write_result(result, oprot, 'execute', seqid)
+      end
+
+    end
+
+    # HELPER FUNCTIONS AND STRUCTURES
+
+    class Execute_args
+      include ::Thrift::Struct, ::Thrift::Struct_Union
+      REQUEST = 1
+
+      FIELDS = {
+        REQUEST => {:type => ::Thrift::Types::STRUCT, :name => 'request', 
:class => ::Blur::BlurCommandRequest}
+      }
+
+      def struct_fields; FIELDS; end
+
+      def validate
+      end
+
+      ::Thrift::Struct.generate_accessors self
+    end
+
+    class Execute_result
+      include ::Thrift::Struct, ::Thrift::Struct_Union
+      SUCCESS = 0
+      EX = 1
+
+      FIELDS = {
+        SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', 
:class => ::Blur::BlurCommandResponse},
+        EX => {:type => ::Thrift::Types::STRUCT, :name => 'ex', :class => 
::Blur::BlurException}
+      }
+
+      def struct_fields; FIELDS; end
+
+      def validate
+      end
+
+      ::Thrift::Struct.generate_accessors self
+    end
+
+  end
+
+end

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/486d37b5/distribution/src/main/scripts/interface/gen-rb/blur_types.rb
----------------------------------------------------------------------
diff --git a/distribution/src/main/scripts/interface/gen-rb/blur_types.rb 
b/distribution/src/main/scripts/interface/gen-rb/blur_types.rb
index f7d65ea..e6efabe 100644
--- a/distribution/src/main/scripts/interface/gen-rb/blur_types.rb
+++ b/distribution/src/main/scripts/interface/gen-rb/blur_types.rb
@@ -83,6 +83,19 @@ module Blur
     VALID_VALUES = Set.new([OFF, FATAL, ERROR, WARN, INFO, DEBUG, TRACE, 
ALL]).freeze
   end
 
+  module ValueType
+    STRING = 0
+    INTEGER = 1
+    LONG = 2
+    DOUBLE = 3
+    FLOAT = 4
+    BINARY = 5
+    WRITABLE = 6
+    SERIALIZABLE = 7
+    VALUE_MAP = {0 => "STRING", 1 => "INTEGER", 2 => "LONG", 3 => "DOUBLE", 4 
=> "FLOAT", 5 => "BINARY", 6 => "WRITABLE", 7 => "SERIALIZABLE"}
+    VALID_VALUES = Set.new([STRING, INTEGER, LONG, DOUBLE, FLOAT, BINARY, 
WRITABLE, SERIALIZABLE]).freeze
+  end
+
   # BlurException that carries a message plus the original stack
 # trace (if any).
   class BlurException < ::Thrift::Exception
@@ -935,4 +948,115 @@ module Blur
     ::Thrift::Struct.generate_accessors self
   end
 
+  class Value
+    include ::Thrift::Struct, ::Thrift::Struct_Union
+    TYPE = 1
+    VALUE = 2
+
+    FIELDS = {
+      TYPE => {:type => ::Thrift::Types::I32, :name => 'type', :enum_class => 
::Blur::ValueType},
+      VALUE => {:type => ::Thrift::Types::STRING, :name => 'value', :binary => 
true}
+    }
+
+    def struct_fields; FIELDS; end
+
+    def validate
+      unless @type.nil? || ::Blur::ValueType::VALID_VALUES.include?(@type)
+        raise 
::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Invalid 
value of field type!')
+      end
+    end
+
+    ::Thrift::Struct.generate_accessors self
+  end
+
+  class AdhocByteCodeCommandRequest
+    include ::Thrift::Struct, ::Thrift::Struct_Union
+    ARGUMENTS = 1
+    INSTANCEDATA = 2
+    CLASSDATA = 3
+    LIBRARIES = 4
+
+    FIELDS = {
+      ARGUMENTS => {:type => ::Thrift::Types::LIST, :name => 'arguments', 
:element => {:type => ::Thrift::Types::STRUCT, :class => ::Blur::Value}},
+      INSTANCEDATA => {:type => ::Thrift::Types::STRING, :name => 
'instanceData', :binary => true},
+      CLASSDATA => {:type => ::Thrift::Types::MAP, :name => 'classData', :key 
=> {:type => ::Thrift::Types::STRING}, :value => {:type => 
::Thrift::Types::STRING, :binary => true}},
+      LIBRARIES => {:type => ::Thrift::Types::LIST, :name => 'libraries', 
:element => {:type => ::Thrift::Types::STRING}}
+    }
+
+    def struct_fields; FIELDS; end
+
+    def validate
+    end
+
+    ::Thrift::Struct.generate_accessors self
+  end
+
+  class AdhocByteCodeCommandResponse
+    include ::Thrift::Struct, ::Thrift::Struct_Union
+    RESULT = 1
+
+    FIELDS = {
+      RESULT => {:type => ::Thrift::Types::STRUCT, :name => 'result', :class 
=> ::Blur::Value}
+    }
+
+    def struct_fields; FIELDS; end
+
+    def validate
+    end
+
+    ::Thrift::Struct.generate_accessors self
+  end
+
+  class BlurCommandRequest < ::Thrift::Union
+    include ::Thrift::Struct_Union
+    class << self
+      def tablesToInvoke(val)
+        BlurCommandRequest.new(:tablesToInvoke, val)
+      end
+
+      def adhocByteCodeCommandRequest(val)
+        BlurCommandRequest.new(:adhocByteCodeCommandRequest, val)
+      end
+    end
+
+    TABLESTOINVOKE = 1
+    ADHOCBYTECODECOMMANDREQUEST = 2
+
+    FIELDS = {
+      TABLESTOINVOKE => {:type => ::Thrift::Types::SET, :name => 
'tablesToInvoke', :element => {:type => ::Thrift::Types::STRING}},
+      ADHOCBYTECODECOMMANDREQUEST => {:type => ::Thrift::Types::STRUCT, :name 
=> 'adhocByteCodeCommandRequest', :class => ::Blur::AdhocByteCodeCommandRequest}
+    }
+
+    def struct_fields; FIELDS; end
+
+    def validate
+      raise(StandardError, 'Union fields are not set.') if get_set_field.nil? 
|| get_value.nil?
+    end
+
+    ::Thrift::Union.generate_accessors self
+  end
+
+  class BlurCommandResponse < ::Thrift::Union
+    include ::Thrift::Struct_Union
+    class << self
+      def adhocByteCodeCommandResponse(val)
+        BlurCommandResponse.new(:adhocByteCodeCommandResponse, val)
+      end
+    end
+
+    ADHOCBYTECODECOMMANDRESPONSE = 1
+
+    FIELDS = {
+      ADHOCBYTECODECOMMANDRESPONSE => {:type => ::Thrift::Types::STRUCT, :name 
=> 'adhocByteCodeCommandResponse', :class => 
::Blur::AdhocByteCodeCommandResponse}
+    }
+
+    def struct_fields; FIELDS; end
+
+    def validate
+      raise(StandardError, 'Union fields are not set.') if get_set_field.nil? 
|| get_value.nil?
+    end
+
+    ::Thrift::Union.generate_accessors self
+  end
+
 end

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/486d37b5/docs/Blur.html
----------------------------------------------------------------------
diff --git a/docs/Blur.html b/docs/Blur.html
index 5e7d5a5..6e71811 100644
--- a/docs/Blur.html
+++ b/docs/Blur.html
@@ -634,7 +634,9 @@ be family dot column, "family.column".
 </td><td>default</td><td></td></tr>
 </table><br/>The Metric will hold all the information for a given Metric.
 <br/></p></section><hr/><h2 id="Services">Services</h2>
+<h3 id="Svc_BlurPlatform">Service: BlurPlatform</h3>
 <h3 id="Svc_Blur">Service: Blur</h3>
+<div class="extends"><em>extends</em> <code><a 
href="Blur.html#Svc_BlurPlatform">BlurPlatform</a></code></p></section>
 The Blur service API.  This API is the same for both controller servers as 
well as
 shards servers.  Each of the methods are documented.
 <br/><section><div class="page-header"><h4 id="Fn_Blur_createTable">Function: 
Blur.createTable</h4></div><p class="lead">

http://git-wip-us.apache.org/repos/asf/incubator-blur/blob/486d37b5/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 184052a..f2749d0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -192,6 +192,7 @@ under the License.
                <mrunit.version>0.9.0-incubating</mrunit.version>
                <httpclient.version>4.1.3</httpclient.version>
                <servlet-api.version>2.5</servlet-api.version>
+               <janino.version>2.5.10</janino.version>
        </properties>
 
        <dependencies>

Reply via email to