/* Copyright (C) 1999-2019 by The D Language Foundation, All Rights Reserved * http://www.digitalmars.com * Distributed under the Boost Software License, Version 1.0. * http://www.boost.org/LICENSE_1_0.txt * https://github.com/dlang/dmd/blob/master/src/dmd/root/file.h */ #pragma once #include "dsystem.h" #include "array.h" typedef Array<struct File *> Files; struct FileName; struct File { int ref; // != 0 if this is a reference to someone else's buffer unsigned char *buffer; // data for our file size_t len; // amount of data in buffer[] FileName *name; // name of our file File(const char *); static File *create(const char *); File(const FileName *); ~File(); const char *toChars(); /* Read file, return true if error */ bool read(); /* Write file, return true if error */ bool write(); /* Set buffer */ void setbuffer(void *buffer, size_t len) { this->buffer = (unsigned char *)buffer; this->len = len; } void remove(); // delete file }; |