blob: f3c6a6f68564dfdedffbae37b725031d9490b27a (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#pragma once
#include "protocolserialization.h"
namespace storage::mbusprot {
/*
* Utility base class for pre-v7 (protobuf) serialization implementations.
*
* TODO remove on Vespa 8 alongside legacy serialization formats.
*/
class LegacyProtocolSerialization : public ProtocolSerialization {
const std::shared_ptr<const document::DocumentTypeRepo> _repo;
public:
explicit LegacyProtocolSerialization(const std::shared_ptr<const document::DocumentTypeRepo>& repo)
: _repo(repo)
{}
const document::DocumentTypeRepo& getTypeRepo() const { return *_repo; }
const std::shared_ptr<const document::DocumentTypeRepo> getTypeRepoSp() const { return _repo; }
virtual document::Bucket getBucket(document::ByteBuffer& buf) const = 0;
virtual void putBucket(const document::Bucket& bucket, vespalib::GrowableByteBuffer& buf) const = 0;
virtual document::BucketSpace getBucketSpace(document::ByteBuffer& buf) const = 0;
virtual void putBucketSpace(document::BucketSpace bucketSpace, vespalib::GrowableByteBuffer& buf) const = 0;
virtual api::BucketInfo getBucketInfo(document::ByteBuffer& buf) const = 0;
virtual void putBucketInfo(const api::BucketInfo& info, vespalib::GrowableByteBuffer& buf) const = 0;
};
} // storage::mbusprot
|