summaryrefslogtreecommitdiff
path: root/src/file.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/file.cc')
-rw-r--r--src/file.cc49
1 files changed, 45 insertions, 4 deletions
diff --git a/src/file.cc b/src/file.cc
index c3fad30..f3c0cbc 100644
--- a/src/file.cc
+++ b/src/file.cc
@@ -44,6 +44,8 @@ File::File(char *fn, char* ext, Info *i)
info = i;
+ savestate = SAVE;
+
filename = new char[strlen(fn) + 1];
extension = new char[strlen(ext) + 1];
@@ -70,6 +72,35 @@ File::~File()
{
close(fd);
+ info->info("This session contains the following files...");
+ for(unsigned int cnt = 0; cnt < filelist.size(); cnt ++) {
+ info->info("[%s]", filelist[cnt].c_str());
+ }
+
+ switch(savestate) {
+ case NO_CHANGE:
+ info->warn("File had no savestate!");
+ break;
+
+ case SAVE:
+ info->info("Files in this session is to be saved.");
+ break;
+
+ case DELETE:
+ info->info("Files in this session is to be deleted (moved to trash).");
+ for(unsigned int cnt = 0; cnt < filelist.size(); cnt ++) {
+ // TODO: Move file filelist[cnt] to trash
+ }
+ break;
+
+ case LATER:
+ info->info("Files in this session is stored for later decisson.");
+ for(unsigned int cnt = 0; cnt < filelist.size(); cnt ++) {
+ // TODO: Move file filelist[cnt] to the later folder.
+ }
+ break;
+ }
+
delete filename;
delete extension;
}
@@ -78,8 +109,10 @@ int File::Open()
{
char fname[256];
- if(fd) close(fd);
- fd = -1;
+ if(fd != -1) {
+ close(fd);
+ fd = -1;
+ }
while(fd == -1) {
if(seqnum) {
@@ -93,14 +126,17 @@ int File::Open()
S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
if(fd == -1) num ++;
- // If more than 1000 files are created in one day, something is terribly wrong!
- if(num > 1000) {
+ // If more than 100 files are created in one day, something is terribly wrong!
+ if(num > 100) {
info->error("Something is wrong with the path [%s]!", fname);
exit(1);
}
}
+ std::string filename_string(fname);
+ filelist.push_back(filename_string);
+
seqnum ++;
info->info("Output file: %s", fname);
@@ -245,6 +281,11 @@ int File::createPath(char* path)
return 0;
}
+void File::setSaveState(n_savestate savestate)
+{
+ this->savestate = savestate;
+}
+
#ifdef __TEST_FILE
#include "info_simple.h"