123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.File = void 0;
- const constants_1 = require("../constants");
- const { O_APPEND } = constants_1.constants;
- /**
- * Represents an open file (file descriptor) that points to a `Link` (Hard-link) and a `Node`.
- *
- * @todo Rename to `OpenFile`.
- */
- class File {
- /**
- * Open a Link-Node pair. `node` is provided separately as that might be a different node
- * rather the one `link` points to, because it might be a symlink.
- * @param link
- * @param node
- * @param flags
- * @param fd
- */
- constructor(link, node, flags, fd) {
- this.link = link;
- this.node = node;
- this.flags = flags;
- this.fd = fd;
- this.position = 0;
- if (this.flags & O_APPEND)
- this.position = this.getSize();
- }
- getString(encoding = 'utf8') {
- return this.node.getString();
- }
- setString(str) {
- this.node.setString(str);
- }
- getBuffer() {
- return this.node.getBuffer();
- }
- setBuffer(buf) {
- this.node.setBuffer(buf);
- }
- getSize() {
- return this.node.getSize();
- }
- truncate(len) {
- this.node.truncate(len);
- }
- seekTo(position) {
- this.position = position;
- }
- write(buf, offset = 0, length = buf.length, position) {
- if (typeof position !== 'number')
- position = this.position;
- const bytes = this.node.write(buf, offset, length, position);
- this.position = position + bytes;
- return bytes;
- }
- read(buf, offset = 0, length = buf.byteLength, position) {
- if (typeof position !== 'number')
- position = this.position;
- const bytes = this.node.read(buf, offset, length, position);
- this.position = position + bytes;
- return bytes;
- }
- chmod(perm) {
- this.node.chmod(perm);
- }
- chown(uid, gid) {
- this.node.chown(uid, gid);
- }
- }
- exports.File = File;
- //# sourceMappingURL=File.js.map
|