#ifndef _MSC_VER
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#endif
#include <errno.h>
#include <algorithm>
#include <iostream>
#include <google/protobuf/stubs/common.h>
#include <google/protobuf/stubs/logging.h>
#include <google/protobuf/io/io_win32.h>
#include <google/protobuf/io/zero_copy_stream_impl.h>
#include <google/protobuf/stubs/stl_util.h>
namespace google {
namespace protobuf {
namespace io {
#ifdef _WIN32
#define lseek …
using google::protobuf::io::win32::access;
using google::protobuf::io::win32::close;
using google::protobuf::io::win32::open;
using google::protobuf::io::win32::read;
using google::protobuf::io::win32::write;
#endif
namespace {
int close_no_eintr(int fd) { … }
}
FileInputStream::FileInputStream(int file_descriptor, int block_size)
: … { … }
bool FileInputStream::Close() { … }
bool FileInputStream::Next(const void** data, int* size) { … }
void FileInputStream::BackUp(int count) { … }
bool FileInputStream::Skip(int count) { … }
int64_t FileInputStream::ByteCount() const { … }
FileInputStream::CopyingFileInputStream::CopyingFileInputStream(
int file_descriptor)
: … { … }
FileInputStream::CopyingFileInputStream::~CopyingFileInputStream() { … }
bool FileInputStream::CopyingFileInputStream::Close() { … }
int FileInputStream::CopyingFileInputStream::Read(void* buffer, int size) { … }
int FileInputStream::CopyingFileInputStream::Skip(int count) { … }
FileOutputStream::FileOutputStream(int file_descriptor, int )
: … { … }
bool FileOutputStream::Close() { … }
FileOutputStream::CopyingFileOutputStream::CopyingFileOutputStream(
int file_descriptor)
: … { … }
FileOutputStream::~FileOutputStream() { … }
FileOutputStream::CopyingFileOutputStream::~CopyingFileOutputStream() { … }
bool FileOutputStream::CopyingFileOutputStream::Close() { … }
bool FileOutputStream::CopyingFileOutputStream::Write(const void* buffer,
int size) { … }
IstreamInputStream::IstreamInputStream(std::istream* input, int block_size)
: … { … }
bool IstreamInputStream::Next(const void** data, int* size) { … }
void IstreamInputStream::BackUp(int count) { … }
bool IstreamInputStream::Skip(int count) { … }
int64_t IstreamInputStream::ByteCount() const { … }
IstreamInputStream::CopyingIstreamInputStream::CopyingIstreamInputStream(
std::istream* input)
: … { … }
IstreamInputStream::CopyingIstreamInputStream::~CopyingIstreamInputStream() { … }
int IstreamInputStream::CopyingIstreamInputStream::Read(void* buffer,
int size) { … }
OstreamOutputStream::OstreamOutputStream(std::ostream* output, int block_size)
: … { … }
OstreamOutputStream::~OstreamOutputStream() { … }
bool OstreamOutputStream::Next(void** data, int* size) { … }
void OstreamOutputStream::BackUp(int count) { … }
int64_t OstreamOutputStream::ByteCount() const { … }
OstreamOutputStream::CopyingOstreamOutputStream::CopyingOstreamOutputStream(
std::ostream* output)
: … { … }
OstreamOutputStream::CopyingOstreamOutputStream::~CopyingOstreamOutputStream() { … }
bool OstreamOutputStream::CopyingOstreamOutputStream::Write(const void* buffer,
int size) { … }
ConcatenatingInputStream::ConcatenatingInputStream(
ZeroCopyInputStream* const streams[], int count)
: … { … }
bool ConcatenatingInputStream::Next(const void** data, int* size) { … }
void ConcatenatingInputStream::BackUp(int count) { … }
bool ConcatenatingInputStream::Skip(int count) { … }
int64_t ConcatenatingInputStream::ByteCount() const { … }
}
}
}