Storage Engine API
data_protector.h
Go to the documentation of this file.
1 
29 #pragma once
30 
31 #include <cstddef>
32 #include <cstdint>
33 
34 namespace mongo {
35 
36 class Status;
37 
50 public:
51  virtual ~DataProtector() = default;
52 
58  virtual Status protect(const std::uint8_t* in,
59  std::size_t inLen,
60  std::uint8_t* out,
61  std::size_t outLen,
62  std::size_t* bytesWritten) = 0;
63 
68  virtual Status finalize(std::uint8_t* out, std::size_t outLen, std::size_t* bytesWritten) = 0;
69 
75  virtual std::size_t getNumberOfBytesReservedForTag() const = 0;
76 
82  virtual Status finalizeTag(std::uint8_t* out,
83  std::size_t outLen,
84  std::size_t* bytesWritten) = 0;
85 };
86 
87 } // namespace mongo
virtual Status protect(const std::uint8_t *in, std::size_t inLen, std::uint8_t *out, std::size_t outLen, std::size_t *bytesWritten)=0
Copy inLen bytes from in, process them, and write the processed bytes into out.
virtual Status finalize(std::uint8_t *out, std::size_t outLen, std::size_t *bytesWritten)=0
Declares that this DataProtector will be provided no more data to protect.
Copyright (C) 2014 MongoDB Inc.
Definition: bson_collection_catalog_entry.cpp:38
OperationContext Database StringData BSONObj CollectionOptions::ParseKind bool const BSONObj &idIndex Status
Definition: database_impl.cpp:956
virtual std::size_t getNumberOfBytesReservedForTag() const =0
Returns the number of bytes reserved for metadata at the beginning of the first output buffer...
Performs an implementation specific transformation on a series of input buffers to produce a protecte...
Definition: data_protector.h:49
virtual ~DataProtector()=default
virtual Status finalizeTag(std::uint8_t *out, std::size_t outLen, std::size_t *bytesWritten)=0
Fills buffer out of size outLen, with implementation defined metadata that had to be calculated after...