summaryrefslogtreecommitdiffhomepage
path: root/compat
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2015-07-25 07:27:03 +0200
committerStanislaw Halik <sthalik@misaki.pl>2015-07-25 07:49:19 +0200
commit24538cf3a3a91481851618791b11be81437563e4 (patch)
tree4bcc9b97721170829038fe778633382c3e8754bc /compat
parent0f445ac2661b5454d491936bb780196b13d1f4ea (diff)
move portability classes to compat library
Diffstat (limited to 'compat')
-rw-r--r--compat/compat.cpp81
-rw-r--r--compat/compat.h37
2 files changed, 0 insertions, 118 deletions
diff --git a/compat/compat.cpp b/compat/compat.cpp
deleted file mode 100644
index 9000b453..00000000
--- a/compat/compat.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-/* Copyright (c) 2013 Stanisław Halik <sthalik@misaki.pl>
-
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- */
-
-#include <cstring>
-#include "compat.h"
-
-#if defined(_WIN32)
-PortableLockedShm::PortableLockedShm(const char* shmName, const char* mutexName, int mapSize)
-{
- hMutex = CreateMutexA(NULL, false, mutexName);
- hMapFile = CreateFileMappingA(
- INVALID_HANDLE_VALUE,
- NULL,
- PAGE_READWRITE,
- 0,
- mapSize,
- shmName);
- mem = MapViewOfFile(hMapFile,
- FILE_MAP_WRITE,
- 0,
- 0,
- mapSize);
-}
-
-PortableLockedShm::~PortableLockedShm()
-{
- UnmapViewOfFile(mem);
- CloseHandle(hMapFile);
- CloseHandle(hMutex);
-}
-
-void PortableLockedShm::lock()
-{
- (void) WaitForSingleObject(hMutex, INFINITE);
-}
-
-void PortableLockedShm::unlock()
-{
- (void) ReleaseMutex(hMutex);
-}
-#else
-#pragma GCC diagnostic ignored "-Wunused-result"
-PortableLockedShm::PortableLockedShm(const char *shmName, const char* /*mutexName*/, int mapSize) : size(mapSize)
-{
- char filename[512] = {0};
- strcpy(filename, "/");
- strcat(filename, shmName);
- fd = shm_open(filename, O_RDWR | O_CREAT, 0600);
- (void) ftruncate(fd, mapSize);
- mem = mmap(NULL, mapSize, PROT_READ|PROT_WRITE, MAP_SHARED, fd, (off_t)0);
-}
-
-PortableLockedShm::~PortableLockedShm()
-{
- (void) munmap(mem, size);
- (void) close(fd);
-}
-
-void PortableLockedShm::lock()
-{
- flock(fd, LOCK_EX);
-}
-
-void PortableLockedShm::unlock()
-{
- flock(fd, LOCK_UN);
-}
-#endif
-
-bool PortableLockedShm::success()
-{
-#ifndef _WIN32
- return (void*) mem != (void*) -1;
-#else
- return (void*) mem != NULL;
-#endif
-}
diff --git a/compat/compat.h b/compat/compat.h
deleted file mode 100644
index 17a0d843..00000000
--- a/compat/compat.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright (c) 2013 Stanisław Halik <sthalik@misaki.pl>
-
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- */
-#pragma once
-
-#if defined(_WIN32)
-#include <windows.h>
-#else
-#include <stdio.h>
-#include <string.h>
-#include <sys/file.h>
-#include <sys/mman.h>
-#include <fcntl.h>
-#include <limits.h>
-#include <unistd.h>
-#include <sys/types.h>
-#endif
-
-class PortableLockedShm {
-public:
- PortableLockedShm(const char *shmName, const char *mutexName, int mapSize);
- ~PortableLockedShm();
- void lock();
- void unlock();
- bool success();
- inline void* ptr() { return mem; }
-private:
- void* mem;
-#if defined(_WIN32)
- HANDLE hMutex, hMapFile;
-#else
- int fd, size;
-#endif
-};