From 7cee40bff2ef1ce31fa6b793230fea47fed2c40f Mon Sep 17 00:00:00 2001 From: Gleb Natapov Date: Sun, 31 May 2015 19:10:09 +0300 Subject: [PATCH] add frozen_mutation serializer --- db/serializer.cc | 17 +++++++++++++++++ db/serializer.hh | 7 +++++++ 2 files changed, 24 insertions(+) diff --git a/db/serializer.cc b/db/serializer.cc index d5da612243..63d4283c9a 100644 --- a/db/serializer.cc +++ b/db/serializer.cc @@ -218,6 +218,22 @@ clustering_key_prefix_view db::serializer::read(inpu return clustering_key_prefix_view::from_bytes(in.read_view(len)); } +template<> +db::serializer::serializer(const frozen_mutation& mutation) + : _item(mutation), _size(sizeof(uint32_t) /* size */ + mutation.representation().size()) { +} + +template<> +void db::serializer::write(output& out, const frozen_mutation& mutation) { + bytes_view v = mutation.representation(); + out.write(v); +} + +template<> +frozen_mutation db::serializer::read(input& in) { + return frozen_mutation(bytes_serializer::read(in)); +} + template class db::serializer ; template class db::serializer ; template class db::serializer ; @@ -228,3 +244,4 @@ template class db::serializer ; template class db::serializer ; template class db::serializer ; template class db::serializer ; +template class db::serializer ; diff --git a/db/serializer.hh b/db/serializer.hh index 8eba6704ee..b4b82f579b 100644 --- a/db/serializer.hh +++ b/db/serializer.hh @@ -11,6 +11,7 @@ #include "mutation.hh" #include "keys.hh" #include "database_fwd.hh" +#include "frozen_mutation.hh" namespace db { /** @@ -83,6 +84,11 @@ template<> serializer::serializer(const collection_mu template<> void serializer::write(output&, const type&); template<> void serializer::read(collection_mutation::view&, input&); +template<> serializer::serializer(const frozen_mutation &); +template<> void serializer::write(output&, const type&); +template<> void serializer::read(frozen_mutation&, input&) = delete; +template<> frozen_mutation serializer::read(input&); + template<> serializer::serializer(const partition_key_view &); template<> void serializer::write(output&, const partition_key_view&); template<> void serializer::read(partition_key_view&, input&); @@ -125,6 +131,7 @@ typedef serializer uuid_serializer; typedef serializer partition_key_view_serializer; typedef serializer clustering_key_view_serializer; typedef serializer clustering_key_prefix_view_serializer; +typedef serializer frozen_mutation_serializer; }