Google OR-Tools: ortools/base/file.h Source File
15#ifndef ORTOOLS_BASE_FILE_H_
16#define ORTOOLS_BASE_FILE_H_
22#include "absl/status/status.h"
23#include "absl/status/statusor.h"
24#include "absl/strings/string_view.h"
25#include "google/protobuf/message.h"
36 static File* Open(absl::string_view file_name, absl::string_view mode);
41 static File* OpenOrDie(absl::string_view file_name, absl::string_view mode);
44 explicit File(absl::string_view name);
48 virtual size_t Read(void* buf, size_t size) = 0;
51 virtual size_t Write(const void* buf, size_t size) = 0;
54 virtual absl::Status Close(int flags) = 0;
63 virtual bool Open() const = 0;
67 int64_t ReadToString(std::string* line, uint64_t max_length);
70 size_t WriteString(absl::string_view str);
73 static void Init();
76 absl::string_view filename() const;
82namespace file {
93absl::Status Open(absl::string_view file_name, absl::string_view mode, File** f,
97File* OpenOrDie(absl::string_view file_name, absl::string_view mode,
100absl::Status Delete(absl::string_view path, Options options);
101absl::Status Exists(absl::string_view path, Options options);
105absl::StatusOr<std::string> GetContents(absl::string_view path,
108absl::Status GetContents(absl::string_view file_name, std::string* output,
111absl::Status SetContents(absl::string_view file_name,
112 absl::string_view contents, Options options);
119absl::Status GetTextProto(absl::string_view file_name,
120 google::protobuf::Message* proto, Options options);
129absl::Status SetTextProto(absl::string_view file_name,
130 const google::protobuf::Message& proto,
133absl::Status GetBinaryProto(absl::string_view file_name,
134 google::protobuf::Message* proto, Options options);
143absl::Status SetBinaryProto(absl::string_view file_name,
144 const google::protobuf::Message& proto,
#define RETURN_IF_ERROR(expr)
absl::string_view filename() const
virtual absl::Status Close(int flags)=0
virtual size_t Write(const void *buf, size_t size)=0
virtual size_t Read(void *buf, size_t size)=0
static File * OpenOrDie(absl::string_view file_name, absl::string_view mode)
std::string name_
Definition file.h:79
size_t WriteString(absl::string_view str)
File(absl::string_view name)
virtual bool Open() const =0
int64_t ReadToString(std::string *line, uint64_t max_length)
int Options
Definition file.h:84
absl::StatusOr< std::string > GetContents(absl::string_view path, Options options)
absl::Status Exists(absl::string_view path, Options options)
absl::Status SetBinaryProto(absl::string_view file_name, const google::protobuf::Message &proto, Options options)
absl::Status SetTextProto(absl::string_view file_name, const google::protobuf::Message &proto, Options options)
absl::Status GetTextProto(absl::string_view file_name, google::protobuf::Message *proto, Options options)
File * OpenOrDie(absl::string_view file_name, absl::string_view mode, Options options)
absl::Status WriteString(File *file, absl::string_view contents, Options options)
absl::Status GetBinaryProto(const absl::string_view file_name, google::protobuf::Message *proto, Options options)
Options Defaults()
Definition file.h:86
absl::Status Delete(absl::string_view path, Options options)
absl::Status Open(absl::string_view file_name, absl::string_view mode, File **f, Options options)
absl::Status SetContents(absl::string_view file_name, absl::string_view contents, Options options)