FreeNOS
server
filesystem
tmp
TmpFileSystem.cpp
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2009 Niek Linnenbank
3
*
4
* This program is free software: you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License as published by
6
* the Free Software Foundation, either version 3 of the License, or
7
* (at your option) any later version.
8
*
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
13
*
14
* You should have received a copy of the GNU General Public License
15
* along with this program. If not, see <http://www.gnu.org/licenses/>.
16
*/
17
18
#include <
Assert.h
>
19
#include <
File.h
>
20
#include <
PseudoFile.h
>
21
#include <
Directory.h
>
22
#include "
TmpFileSystem.h
"
23
24
TmpFileSystem::TmpFileSystem
(
const
char
*path)
25
:
FileSystemServer
(new
Directory
(1), path)
26
{
27
}
28
29
File
*
TmpFileSystem::createFile
(
const
FileSystem::FileType
type
)
30
{
31
// Create the appropriate file type
32
switch
(
type
)
33
{
34
case
FileSystem::RegularFile
: {
35
PseudoFile
*file =
new
PseudoFile
(
getNextInode
());
36
assert
(file !=
NULL
);
37
return
file;
38
}
39
40
case
FileSystem::DirectoryFile
: {
41
Directory
*dir =
new
Directory
(
getNextInode
());
42
assert
(dir !=
NULL
);
43
return
dir;
44
}
45
46
default
:
47
return
ZERO
;
48
}
49
}
FileSystemServer::getNextInode
u32 getNextInode()
Get next unused inode.
Definition:
FileSystemServer.cpp:66
FileSystem::FileType
FileType
All possible filetypes.
Definition:
FileSystem.h:70
Directory
Directory File functionality.
Definition:
Directory.h:59
TmpFileSystem::TmpFileSystem
TmpFileSystem(const char *path)
Class constructor function.
Definition:
TmpFileSystem.cpp:24
Assert.h
PseudoFile.h
FileSystemServer
Abstract filesystem class.
Definition:
FileSystemServer.h:44
File
Represents a file present on a FileSystem.
Definition:
File.h:39
NULL
#define NULL
NULL means zero.
Definition:
Macros.h:39
TmpFileSystem.h
PseudoFile
Pseudo files only exist in memory.
Definition:
PseudoFile.h:36
FileSystem::RegularFile
@ RegularFile
Definition:
FileSystem.h:72
FileSystem::DirectoryFile
@ DirectoryFile
Definition:
FileSystem.h:73
assert
#define assert(exp)
Insert program diagnostics.
Definition:
assert.h:60
Directory.h
type
u8 type
Definition:
IntelACPI.h:63
TmpFileSystem::createFile
virtual File * createFile(const FileSystem::FileType type)
Creates a new TmpFile.
Definition:
TmpFileSystem.cpp:29
ZERO
#define ZERO
Zero value.
Definition:
Macros.h:43
File.h
Generated by
1.8.17