/**************************************************************************** ** ** Copyright (C) 2017 Sergey Belyashov ** Copyright (C) 2017 Denis Shienkov ** Copyright (C) 2017 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:FDL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Free Documentation License Usage ** Alternatively, this file may be used under the terms of the GNU Free ** Documentation License version 1.3 as published by the Free Software ** Foundation and appearing in the file included in the packaging of ** this file. Please review the following information to ensure ** the GNU Free Documentation License version 1.3 requirements ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. ** $QT_END_LICENSE$ ** ****************************************************************************/ /*! \contentspage index.html \page jsextension-binaryfile.html \ingroup list-of-builtin-services \title BinaryFile Service \brief Provides read and write operations on binary files. The \c BinaryFile service allows you to read from and write into binary files. \section1 Related Declarations \section2 BinaryFile.OpenMode \code enum BinaryFile.OpenMode { ReadOnly, WriteOnly, ReadWrite } \endcode List of modes that a file may be opened in. The OpenMode values can be combined with the bitwise or operator. \section1 Available operations \section2 Constructor \code BinaryFile(filePath: string, openMode: OpenMode = BinaryFile.ReadOnly) \endcode Opens the file at \c filePath in the given mode and returns the object representing the file. \note The mode influences which of the operations listed below can actually be used on the file. \section2 atEof \code atEof(): boolean \endcode Returns \c{true} if no more data can be read from the file, \c{false} otherwise. \section2 close \code close(): void \endcode Closes the file. It is recommended to always call this function as soon as you are finished with the file, in order to keep the number of in-flight file descriptors as low as possible. \section2 filePath \code filePath(): string \endcode The absolute path of the file represented by this object. \section2 size \code size(): number \endcode Returns the size of the file (in bytes). \section2 resize \code resize(size: number): void \endcode Sets the file \c size (in bytes). If \c size is larger than the file currently is, the new bytes will be set to 0; if \c size is smaller, the file is truncated. \section2 pos \code pos(): number \endcode Returns the position that data is written to or read from. \section2 seek \code seek(pos: number): void \endcode Sets the current position to \c pos. \section2 read \code read(size: number): number[] \endcode Reads at most \c size bytes of data from the file and returns it as an array. \section2 write \code write(data: number[]): void \endcode Writes \c data into the file at the current position. */