FreeNOS
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
25 : FileSystemServer(new Directory(1), path)
26{
27}
28
30{
31 // Create the appropriate file type
32 switch (type)
33 {
35 PseudoFile *file = new PseudoFile(getNextInode());
36 assert(file != NULL);
37 return file;
38 }
39
41 Directory *dir = new Directory(getNextInode());
42 assert(dir != NULL);
43 return dir;
44 }
45
46 default:
47 return ZERO;
48 }
49}
u8 type
Definition IntelACPI.h:0
Directory File functionality.
Definition Directory.h:60
Abstract filesystem class.
u32 getNextInode()
Get next unused inode.
Represents a file present on a FileSystem.
Definition File.h:40
Pseudo files only exist in memory.
Definition PseudoFile.h:37
virtual File * createFile(const FileSystem::FileType type)
Creates a new TmpFile.
TmpFileSystem(const char *path)
Class constructor function.
#define assert(exp)
Insert program diagnostics.
Definition assert.h:60
#define NULL
NULL means zero.
Definition Macros.h:39
#define ZERO
Zero value.
Definition Macros.h:43
FileType
All possible filetypes.
Definition FileSystem.h:71