SimpleFS
A Simple File Sytem implementation including Disk and Shell Layers
disk.h
Go to the documentation of this file.
1 
9 #pragma once
10 
11 #include <stdlib.h>
12 
18 class Disk {
19 private:
20  int FileDescriptor;
21  size_t Blocks;
22  size_t Reads;
23  size_t Writes;
24  size_t Mounts;
32  void sanity_check(int blocknum, char *data);
33 
34 public:
35  const static size_t BLOCK_SIZE = 4096;
41  Disk() : FileDescriptor(0), Blocks(0), Reads(0), Writes(0), Mounts(0) {}
42 
47  ~Disk();
48 
55  void open(const char *path, size_t nblocks);
56 
61  size_t size() const { return Blocks; }
62 
67  bool mounted() const { return Mounts > 0; }
68 
73  void mount() { Mounts++; }
74 
79  void unmount() { if (Mounts > 0) Mounts--; }
80 
86  void read(int blocknum, char *data);
87 
93  void write(int blocknum, char *data);
94 };
Disk::unmount
void unmount()
unmount the disk
Definition: disk.h:79
Disk::mounted
bool mounted() const
check if the disk has been mounted
Definition: disk.h:67
Disk::Disk
Disk()
constructor of Disk class
Definition: disk.h:41
Disk::mount
void mount()
mount the disk
Definition: disk.h:73
Disk::sanity_check
void sanity_check(int blocknum, char *data)
check if the block is within valid range
Definition: disk.cpp:61
Disk::read
void read(int blocknum, char *data)
read from disk
Definition: disk.cpp:86
Disk::Reads
size_t Reads
Definition: disk.h:22
Disk::Mounts
size_t Mounts
Definition: disk.h:24
Disk::open
void open(const char *path, size_t nblocks)
opens the disk image
Definition: disk.cpp:18
Disk::Writes
size_t Writes
Definition: disk.h:23
Disk::size
size_t size() const
check size of disk
Definition: disk.h:61
Disk
Disk class Implements Disk abstraction that enables emulation of a disk image. Used by file system to...
Definition: disk.h:18
Disk::~Disk
~Disk()
destructor of Disk class
Definition: disk.cpp:46
Disk::write
void write(int blocknum, char *data)
write to disk
Definition: disk.cpp:112
Disk::Blocks
size_t Blocks
Definition: disk.h:21