module Network.Riak.Tag
(
putTag
, getTag
) where
import Data.Binary.Put (Put, putWord8)
import Network.Riak.Protocol.DeleteRequest
import Network.Riak.Protocol.ErrorResponse
import Network.Riak.Protocol.GetBucketRequest
import Network.Riak.Protocol.GetBucketResponse
import Network.Riak.Protocol.GetClientIDRequest
import Network.Riak.Protocol.GetClientIDResponse
import Network.Riak.Protocol.GetRequest
import Network.Riak.Protocol.GetResponse
import Network.Riak.Protocol.GetServerInfoRequest
import Network.Riak.Protocol.ListBucketsRequest
import Network.Riak.Protocol.ListBucketsResponse
import Network.Riak.Protocol.ListKeysRequest
import Network.Riak.Protocol.ListKeysResponse
import Network.Riak.Protocol.MapReduce
import Network.Riak.Protocol.MapReduceRequest
import Network.Riak.Protocol.PingRequest
import Network.Riak.Protocol.PutRequest
import Network.Riak.Protocol.PutResponse
import Network.Riak.Protocol.ServerInfo
import Network.Riak.Protocol.SetBucketRequest
import Network.Riak.Protocol.SetClientIDRequest
import Network.Riak.Types.Internal as Types
import Text.ProtocolBuffers.Get (Get, getWord8)
instance Tagged ErrorResponse where
messageTag _ = Types.ErrorResponse
instance Response ErrorResponse
instance Tagged PingRequest where
messageTag _ = Types.PingRequest
instance Request PingRequest where
expectedResponse _ = Types.PingResponse
instance Tagged GetClientIDRequest where
messageTag _ = Types.GetClientIDRequest
instance Request GetClientIDRequest where
expectedResponse _ = Types.GetClientIDResponse
instance Tagged GetClientIDResponse where
messageTag _ = Types.GetClientIDResponse
instance Response GetClientIDResponse
instance Exchange GetClientIDRequest GetClientIDResponse
instance Tagged SetClientIDRequest where
messageTag _ = Types.SetClientIDRequest
instance Request SetClientIDRequest where
expectedResponse _ = Types.SetClientIDResponse
instance Tagged GetServerInfoRequest where
messageTag _ = Types.GetServerInfoRequest
instance Request GetServerInfoRequest where
expectedResponse _ = Types.GetServerInfoResponse
instance Tagged ServerInfo where
messageTag _ = Types.GetServerInfoResponse
instance Response ServerInfo
instance Exchange GetServerInfoRequest ServerInfo
instance Tagged GetRequest where
messageTag _ = Types.GetRequest
instance Request GetRequest where
expectedResponse _ = Types.GetResponse
instance Tagged GetResponse where
messageTag _ = Types.GetResponse
instance Response GetResponse
instance Exchange GetRequest GetResponse
instance Tagged PutRequest where
messageTag _ = Types.PutRequest
instance Request PutRequest where
expectedResponse _ = Types.PutResponse
instance Tagged PutResponse where
messageTag _ = Types.PutResponse
instance Response PutResponse
instance Exchange PutRequest PutResponse
instance Tagged DeleteRequest where
messageTag _ = Types.DeleteRequest
instance Request DeleteRequest where
expectedResponse _ = Types.DeleteResponse
instance Tagged ListBucketsRequest where
messageTag _ = Types.ListBucketsRequest
instance Request ListBucketsRequest where
expectedResponse _ = Types.ListBucketsResponse
instance Tagged ListBucketsResponse where
messageTag _ = Types.ListBucketsResponse
instance Response ListBucketsResponse
instance Exchange ListBucketsRequest ListBucketsResponse
instance Tagged ListKeysRequest where
messageTag _ = Types.ListKeysRequest
instance Request ListKeysRequest where
expectedResponse _ = Types.ListKeysResponse
instance Tagged ListKeysResponse where
messageTag _ = Types.ListKeysResponse
instance Response ListKeysResponse
instance Tagged GetBucketRequest where
messageTag _ = Types.GetBucketRequest
instance Request GetBucketRequest where
expectedResponse _ = Types.GetBucketResponse
instance Tagged GetBucketResponse where
messageTag _ = Types.GetBucketResponse
instance Response GetBucketResponse
instance Exchange GetBucketRequest GetBucketResponse
instance Tagged SetBucketRequest where
messageTag _ = Types.SetBucketRequest
instance Request SetBucketRequest where
expectedResponse _ = Types.SetBucketResponse
instance Tagged MapReduceRequest where
messageTag _ = Types.MapReduceRequest
instance Request MapReduceRequest where
expectedResponse _ = Types.MapReduceResponse
instance Tagged MapReduce where
messageTag _ = Types.MapReduceResponse
instance Response MapReduce
instance Exchange MapReduceRequest MapReduce
putTag :: MessageTag -> Put
putTag = putWord8 . fromIntegral . fromEnum
getTag :: Get MessageTag
getTag = do
n <- getWord8
if n > 24
then moduleError "getTag" $ "invalid riak message code: " ++ show n
else return . toEnum . fromIntegral $ n
moduleError :: String -> String -> a
moduleError = netError "Network.Riak.Tag"