DYT/Tool/OpenSceneGraph-3.6.5/include/draco/io/stdio_file_writer.h

43 lines
1.1 KiB
C
Raw Normal View History

2024-12-24 23:49:36 +00:00
#ifndef DRACO_IO_STDIO_FILE_WRITER_H_
#define DRACO_IO_STDIO_FILE_WRITER_H_
#include <cstddef>
#include <cstdio>
#include <memory>
#include <string>
#include "draco/io/file_writer_interface.h"
namespace draco {
class StdioFileWriter : public FileWriterInterface {
public:
// Creates and returns a StdioFileWriter that writes to |file_name|.
// Returns nullptr when |file_name| cannot be opened for writing.
static std::unique_ptr<FileWriterInterface> Open(
const std::string &file_name);
StdioFileWriter() = delete;
StdioFileWriter(const StdioFileWriter &) = delete;
StdioFileWriter &operator=(const StdioFileWriter &) = delete;
StdioFileWriter(StdioFileWriter &&) = default;
StdioFileWriter &operator=(StdioFileWriter &&) = default;
// Closes |file_|.
~StdioFileWriter() override;
// Writes |size| bytes to |file_| from |buffer|. Returns true for success.
bool Write(const char *buffer, size_t size) override;
private:
StdioFileWriter(FILE *file) : file_(file) {}
FILE *file_ = nullptr;
static bool registered_in_factory_;
};
} // namespace draco
#endif // DRACO_IO_STDIO_FILE_WRITER_H_