Skip to content
Snippets Groups Projects
Commit 6881b38c authored by paulavidas's avatar paulavidas Committed by Copybara-Service
Browse files

Simple output stream.

PiperOrigin-RevId: 265029049
parent 4ee7a9a0
No related branches found
No related tags found
No related merge requests found
......@@ -14,3 +14,12 @@ cc_library(
"//proto:tink_cc_proto",
],
)
cc_library(
name = "simple_output_stream",
hdrs = ["simple_output_stream.h"],
deps = [
"//cc/util:status",
"@com_google_absl//absl/strings",
],
)
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from "tink/python/util/clif.h" import * # Status
from "tink/python/cc/simple_output_stream.h":
namespace `crypto::tink`:
class SimpleOutputStream:
@virtual
def `Write` as write(self, data: bytes) -> Status
@virtual
def `Close` as close(self) -> Status
@virtual
def `Position` as position(self) -> int
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
///////////////////////////////////////////////////////////////////////////////
#ifndef TINK_PYTHON_CC_SIMPLE_OUTPUT_STREAM_H_
#define TINK_PYTHON_CC_SIMPLE_OUTPUT_STREAM_H_
#include "absl/strings/string_view.h"
#include "tink/util/status.h"
namespace crypto {
namespace tink {
// A simple interface for an output stream like object which can be used to go
// from Python to C++ via CLIF and vice versa.
class SimpleOutputStream {
public:
// Writes 'data' to the underlying stream.
virtual util::Status Write(absl::string_view data) = 0;
// Closes the underlying stream.
virtual util::Status Close() = 0;
// Returns the total number of bytes written.
virtual int64_t Position() const = 0;
virtual ~SimpleOutputStream() {}
};
} // namespace tink
} // namespace crypto
#endif // TINK_PYTHON_CC_SIMPLE_OUTPUT_STREAM_H_
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment