summary refs log tree commit diff
path: root/lib/Net/Riak/Transport/PBC/Code.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Net/Riak/Transport/PBC/Code.pm')
-rw-r--r--lib/Net/Riak/Transport/PBC/Code.pm90
1 files changed, 90 insertions, 0 deletions
diff --git a/lib/Net/Riak/Transport/PBC/Code.pm b/lib/Net/Riak/Transport/PBC/Code.pm
new file mode 100644
index 0000000..9231540
--- /dev/null
+++ b/lib/Net/Riak/Transport/PBC/Code.pm
@@ -0,0 +1,90 @@
+package Net::Riak::Transport::PBC::Code;
+use strict;
+use warnings;
+use base 'Exporter';
+
+our @EXPORT_OK = qw/
+    REQ_CODE
+    RESP_CLASS
+    EXPECTED_RESP
+    RESP_DECODER
+/;
+
+sub EXPECTED_RESP {
+    my $code = shift;
+    return {
+        1 => 2,
+        3 => 4,
+        5 => 6,
+        7 => 8,
+        9 => 10,
+        11 => 12,
+        13 => 14,
+        15 => 16,
+        17 => 18,
+        19 => 20,
+        21 => 22,
+        23 => 24,
+    }->{$code};
+}
+sub RESP_CLASS {
+    my $code = shift;
+
+    return {
+        0 => 'RpbErrorResp',
+        2 => 'RpbPingResp',
+        4 => 'RpbGetClientIdResp',
+        6 => 'RpbSetClientIdResp',
+        8 => 'RpbGetServerInfoResp',
+        10 => 'RpbGetResp',
+        12 => 'RpbPutResp',
+        14 => 'RpbDelResp',
+        16 => 'RpbListBucketsResp',
+        18 => 'RpbListKeysResp',
+        20 => 'RpbGetBucketResp',
+        22 => 'RpbSetBucketResp',
+        24 => 'RpbMapRedResp',
+    }->{$code};
+}
+
+sub RESP_DECODER {
+    my $code = shift;
+
+    return {
+        0 => 'RpbErrorResp',
+        2 => undef,
+        4 => 'RpbGetClientIdResp',
+        6 => undef,
+        8 => 'RpbGetServerInfoResp',
+        10 =>  'RpbGetResp',
+        12 =>  'RpbPutResp',
+        14 =>  undef,
+        16 =>  'RpbListBucketsResp',
+        18 =>  'RpbListKeysResp',
+        20 =>  'RpbGetBucketResp',
+        22 =>  undef,
+        24 =>  'RpbMapRedResp'
+    }->{$code};
+};
+
+
+sub REQ_CODE {
+    my $class = shift;
+
+    return {
+        RpbPingReq => 1,
+        RpbGetClientIdReq => 3,
+        RpbSetClientIdReq => 5,
+        RpbGetServerInfoReq => 7,
+        RpbGetReq => 9,
+        RpbPutReq => 11,
+        RpbDelReq => 13,
+        RpbListBucketsReq => 15,
+        RpbListKeysReq => 17,
+        RpbGetBucketReq => 19,
+        RpbSetBucketReq => 21,
+        RpbMapRedReq => 23,
+    }->{$class};
+}
+
+1;