Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/sys/sys.cc')
-rw-r--r--src/sys/sys.cc33
1 files changed, 29 insertions, 4 deletions
diff --git a/src/sys/sys.cc b/src/sys/sys.cc
index dc342bd..9957408 100644
--- a/src/sys/sys.cc
+++ b/src/sys/sys.cc
@@ -14,14 +14,18 @@
#else
+#include <unistd.h>
#include <signal.h>
+#include <sys/time.h>
#include <sys/stat.h>
#include <sys/types.h>
#endif
#include <stdlib.h>
-bool sys::mkdir(const char *path)
+namespace sys {
+
+bool mkdir(const char *path)
{
#ifdef _WIN32
::mkdir(path);
@@ -32,7 +36,7 @@ bool sys::mkdir(const char *path)
#endif
}
-void sys::signal(int signum, signalfunc handler)
+void signal(int signum, signalfunc handler)
{
#ifndef _WIN32
struct sigaction sa;
@@ -44,6 +48,27 @@ void sys::signal(int signum, signalfunc handler)
#endif
}
-void sys::quit(int status) {
- exit(status);
+unsigned long time()
+{
+#ifndef _WIN32
+ struct ::tm localtime;
+ time_t epochtime = ::time(0);
+ ::localtime_r(&epochtime, &localtime);
+ return ((unsigned long) (localtime.tm_sec + localtime.tm_min*60 + localtime.tm_hour*3600));
+#else
+ retrun 0;
+#endif
+}
+
+void sleep(float seconds)
+{
+#ifndef _WIN32
+ ::usleep((useconds_t) seconds * (useconds_t) 1000000.0 );
+#endif
+}
+
+void quit(int status) {
+ ::exit(status);
+}
+
}