aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/um/service/include/libservice
diff options
context:
space:
mode:
Diffstat (limited to 'um/service/include/libservice')
-rw-r--r--um/service/include/libservice/all.hpp15
-rw-r--r--um/service/include/libservice/common.hpp17
-rw-r--r--um/service/include/libservice/device.hpp81
-rw-r--r--um/service/include/libservice/handle.hpp83
-rw-r--r--um/service/include/libservice/service.hpp79
-rw-r--r--um/service/include/libservice/service_handle.hpp82
-rw-r--r--um/service/include/libservice/service_manager.hpp69
-rw-r--r--um/service/include/libservice/singleton.hpp43
-rw-r--r--um/service/include/libservice/windows_error.hpp54
9 files changed, 0 insertions, 523 deletions
diff --git a/um/service/include/libservice/all.hpp b/um/service/include/libservice/all.hpp
deleted file mode 100644
index a5761e0..0000000
--- a/um/service/include/libservice/all.hpp
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright (c) 2015 Egor Tensin <Egor.Tensin@gmail.com>
-// This file is part of the "Windows 7 drivers" project.
-// For details, see https://github.com/egor-tensin/windows7-drivers.
-// Distributed under the MIT License.
-
-#pragma once
-
-#include "common.hpp"
-#include "device.hpp"
-#include "handle.hpp"
-#include "service.hpp"
-#include "service_handle.hpp"
-#include "service_manager.hpp"
-#include "singleton.hpp"
-#include "windows_error.hpp"
diff --git a/um/service/include/libservice/common.hpp b/um/service/include/libservice/common.hpp
deleted file mode 100644
index a1c46fb..0000000
--- a/um/service/include/libservice/common.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright (c) 2015 Egor Tensin <Egor.Tensin@gmail.com>
-// This file is part of the "Windows 7 drivers" project.
-// For details, see https://github.com/egor-tensin/windows7-drivers.
-// Distributed under the MIT License.
-
-#pragma once
-
-#define LIBSERVICE_FILE_PATH __FILE__
-#define LIBSERVICE_LINE_NUMBER __LINE__
-#define LIBSERVICE_FUNCTION_NAME __FUNCTION__
-
-#define LIBSERVICE_TO_STRING(s) LIBSERVICE_TO_STRING_(s)
-#define LIBSERVICE_TO_STRING_(s) #s
-
-#define LIBSERVICE_LINE_NUMBER_STRING LIBSERVICE_TO_STRING(LIBSERVICE_LINE_NUMBER)
-
-#define LIBSERVICE_NOEXCEPT throw()
diff --git a/um/service/include/libservice/device.hpp b/um/service/include/libservice/device.hpp
deleted file mode 100644
index f61c59a..0000000
--- a/um/service/include/libservice/device.hpp
+++ /dev/null
@@ -1,81 +0,0 @@
-// Copyright (c) 2015 Egor Tensin <Egor.Tensin@gmail.com>
-// This file is part of the "Windows 7 drivers" project.
-// For details, see https://github.com/egor-tensin/windows7-drivers.
-// Distributed under the MIT License.
-
-#pragma once
-
-#include "common.hpp"
-#include "handle.hpp"
-
-#include <Windows.h>
-
-#include <cstddef>
-
-#include <string>
-#include <utility>
-
-namespace libservice
-{
- class Device
- {
- public:
- typedef DWORD Code;
-
- static Device open(const std::string& path);
-
- Device(Device&& other) LIBSERVICE_NOEXCEPT
- {
- swap(other);
- }
-
- Device& operator=(Device other) LIBSERVICE_NOEXCEPT
- {
- swap(other);
- return *this;
- }
-
- void swap(Device& other) LIBSERVICE_NOEXCEPT
- {
- using std::swap;
- swap(handle, other.handle);
- }
-
- std::size_t get_required_output_size(
- Code code,
- const void* in_buf,
- std::size_t in_buf_size) const;
-
- std::size_t send_control_code(
- Code code,
- const void* in_buf,
- std::size_t in_buf_size,
- void* out_buf,
- std::size_t out_buf_size) const;
-
- private:
- Device(Handle handle)
- : handle(std::move(handle))
- { }
-
- Handle handle;
-
- Device(const Device&) = delete;
- };
-
- inline void swap(Device& a, Device& b) LIBSERVICE_NOEXCEPT
- {
- a.swap(b);
- }
-}
-
-namespace std
-{
- template <>
- inline void swap<libservice::Device>(
- libservice::Device& a,
- libservice::Device& b) LIBSERVICE_NOEXCEPT
- {
- a.swap(b);
- }
-}
diff --git a/um/service/include/libservice/handle.hpp b/um/service/include/libservice/handle.hpp
deleted file mode 100644
index abd1d5a..0000000
--- a/um/service/include/libservice/handle.hpp
+++ /dev/null
@@ -1,83 +0,0 @@
-// Copyright (c) 2015 Egor Tensin <Egor.Tensin@gmail.com>
-// This file is part of the "Windows 7 drivers" project.
-// For details, see https://github.com/egor-tensin/windows7-drivers.
-// Distributed under the MIT License.
-
-#pragma once
-
-#include "common.hpp"
-
-#include <Windows.h>
-
-#include <memory>
-#include <type_traits>
-#include <utility>
-
-namespace libservice
-{
- class Handle
- {
- public:
- Handle() = default;
-
- Handle(HANDLE raw)
- : impl(raw)
- { }
-
- Handle(Handle&& other) LIBSERVICE_NOEXCEPT
- {
- swap(other);
- }
-
- Handle& operator=(Handle other) LIBSERVICE_NOEXCEPT
- {
- swap(other);
- return *this;
- }
-
- operator bool() const
- {
- return static_cast<bool>(impl);
- }
-
- operator HANDLE() const
- {
- return impl.get();
- }
-
- void swap(Handle& other) LIBSERVICE_NOEXCEPT
- {
- using std::swap;
- swap(impl, other.impl);
- }
-
- private:
- struct Deleter
- {
- void operator()(HANDLE raw)
- {
- CloseHandle(raw);
- }
- };
-
- std::unique_ptr<std::remove_pointer<HANDLE>::type, Deleter> impl;
-
- Handle(const Handle&) = delete;
- };
-
- inline void swap(Handle& a, Handle& b) LIBSERVICE_NOEXCEPT
- {
- a.swap(b);
- }
-}
-
-namespace std
-{
- template <>
- inline void swap<libservice::Handle>(
- libservice::Handle& a,
- libservice::Handle& b) LIBSERVICE_NOEXCEPT
- {
- a.swap(b);
- }
-}
diff --git a/um/service/include/libservice/service.hpp b/um/service/include/libservice/service.hpp
deleted file mode 100644
index ca01ab4..0000000
--- a/um/service/include/libservice/service.hpp
+++ /dev/null
@@ -1,79 +0,0 @@
-// Copyright (c) 2015 Egor Tensin <Egor.Tensin@gmail.com>
-// This file is part of the "Windows 7 drivers" project.
-// For details, see https://github.com/egor-tensin/windows7-drivers.
-// Distributed under the MIT License.
-
-#pragma once
-
-#include "common.hpp"
-#include "service_handle.hpp"
-#include "service_manager.hpp"
-
-#include <string>
-#include <utility>
-
-namespace libservice
-{
- class Service
- {
- public:
- static bool exists(
- const ServiceManager&,
- const std::string& name);
-
- static Service open(
- const ServiceManager&,
- const std::string& name);
-
- static Service install(
- const ServiceManager&,
- const std::string& name,
- const std::string& bin_path);
-
- void start() const;
- void stop() const;
- void uninstall() const;
-
- Service(Service&& other) LIBSERVICE_NOEXCEPT
- {
- swap(other);
- }
-
- Service& operator=(Service other) LIBSERVICE_NOEXCEPT
- {
- swap(other);
- return *this;
- }
-
- void swap(Service& other) LIBSERVICE_NOEXCEPT
- {
- using std::swap;
- swap(handle, other.handle);
- }
-
- private:
- Service(ServiceHandle handle)
- : handle(std::move(handle))
- { }
-
- ServiceHandle handle;
-
- Service(const Service&) = delete;
- };
-
- inline void swap(Service& a, Service& b) LIBSERVICE_NOEXCEPT
- {
- a.swap(b);
- }
-}
-
-namespace std
-{
- template <>
- inline void swap<libservice::Service>(
- libservice::Service& a,
- libservice::Service& b) LIBSERVICE_NOEXCEPT
- {
- a.swap(b);
- }
-}
diff --git a/um/service/include/libservice/service_handle.hpp b/um/service/include/libservice/service_handle.hpp
deleted file mode 100644
index 52e37f4..0000000
--- a/um/service/include/libservice/service_handle.hpp
+++ /dev/null
@@ -1,82 +0,0 @@
-// Copyright (c) 2015 Egor Tensin <Egor.Tensin@gmail.com>
-// This file is part of the "Windows 7 drivers" project.
-// For details, see https://github.com/egor-tensin/windows7-drivers.
-// Distributed under the MIT License.
-
-#pragma once
-
-#include "common.hpp"
-
-#include <Windows.h>
-
-#include <memory>
-#include <utility>
-
-namespace libservice
-{
- class ServiceHandle
- {
- public:
- ServiceHandle() = default;
-
- ServiceHandle(SC_HANDLE raw)
- : impl(raw)
- { }
-
- ServiceHandle(ServiceHandle&& other) LIBSERVICE_NOEXCEPT
- {
- swap(other);
- }
-
- ServiceHandle& operator=(ServiceHandle other) LIBSERVICE_NOEXCEPT
- {
- swap(other);
- return *this;
- }
-
- operator bool() const
- {
- return static_cast<bool>(impl);
- }
-
- operator SC_HANDLE() const
- {
- return impl.get();
- }
-
- void swap(ServiceHandle& other) LIBSERVICE_NOEXCEPT
- {
- using std::swap;
- swap(impl, other.impl);
- }
-
- private:
- struct Deleter
- {
- void operator()(SC_HANDLE raw)
- {
- CloseServiceHandle(raw);
- }
- };
-
- std::unique_ptr<SC_HANDLE__, Deleter> impl;
-
- ServiceHandle(const ServiceHandle&) = delete;
- };
-
- inline void swap(ServiceHandle& a, ServiceHandle& b) LIBSERVICE_NOEXCEPT
- {
- a.swap(b);
- }
-}
-
-namespace std
-{
- template <>
- inline void swap<libservice::ServiceHandle>(
- libservice::ServiceHandle& a,
- libservice::ServiceHandle& b) LIBSERVICE_NOEXCEPT
- {
- a.swap(b);
- }
-}
diff --git a/um/service/include/libservice/service_manager.hpp b/um/service/include/libservice/service_manager.hpp
deleted file mode 100644
index 3d4fe3a..0000000
--- a/um/service/include/libservice/service_manager.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-// Copyright (c) 2015 Egor Tensin <Egor.Tensin@gmail.com>
-// This file is part of the "Windows 7 drivers" project.
-// For details, see https://github.com/egor-tensin/windows7-drivers.
-// Distributed under the MIT License.
-
-#pragma once
-
-#include "common.hpp"
-#include "service_handle.hpp"
-
-#include <Windows.h>
-
-#include <utility>
-
-namespace libservice
-{
- class ServiceManager
- {
- public:
- static ServiceManager open();
-
- ServiceManager(ServiceManager&& other) LIBSERVICE_NOEXCEPT
- {
- swap(other);
- }
-
- ServiceManager& operator=(ServiceManager other) LIBSERVICE_NOEXCEPT
- {
- swap(other);
- return *this;
- }
-
- void swap(ServiceManager& other) LIBSERVICE_NOEXCEPT
- {
- using std::swap;
- swap(handle, other.handle);
- }
-
- operator SC_HANDLE() const
- {
- return handle;
- }
-
- private:
- ServiceManager(ServiceHandle handle)
- : handle(std::move(handle))
- { }
-
- ServiceHandle handle;
-
- ServiceManager(const ServiceManager&) = delete;
- };
-
- inline void swap(ServiceManager& a, ServiceManager& b) LIBSERVICE_NOEXCEPT
- {
- a.swap(b);
- }
-}
-
-namespace std
-{
- template <>
- inline void swap<libservice::ServiceManager>(
- libservice::ServiceManager& a,
- libservice::ServiceManager& b) LIBSERVICE_NOEXCEPT
- {
- a.swap(b);
- }
-}
diff --git a/um/service/include/libservice/singleton.hpp b/um/service/include/libservice/singleton.hpp
deleted file mode 100644
index 1c7b1a7..0000000
--- a/um/service/include/libservice/singleton.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright (c) 2015 Egor Tensin <Egor.Tensin@gmail.com>
-// This file is part of the "Windows 7 drivers" project.
-// For details, see https://github.com/egor-tensin/windows7-drivers.
-// Distributed under the MIT License.
-
-#pragma once
-
-#include <mutex>
-
-namespace libservice
-{
- template <typename DerivedT>
- class Singleton
- {
- public:
- static DerivedT& get()
- {
- std::call_once(initialized, initialize);
- return get_unsafe();
- }
-
- protected:
- Singleton() = default;
- virtual ~Singleton() = default;
-
- private:
- static void initialize()
- {
- get_unsafe();
- }
-
- static DerivedT& get_unsafe()
- {
- static DerivedT instance;
- return instance;
- }
-
- static std::once_flag initialized;
- };
-
- template <typename DerivedT>
- std::once_flag Singleton<DerivedT>::initialized;
-}
diff --git a/um/service/include/libservice/windows_error.hpp b/um/service/include/libservice/windows_error.hpp
deleted file mode 100644
index 13d7f47..0000000
--- a/um/service/include/libservice/windows_error.hpp
+++ /dev/null
@@ -1,54 +0,0 @@
-// Copyright (c) 2015 Egor Tensin <Egor.Tensin@gmail.com>
-// This file is part of the "Windows 7 drivers" project.
-// For details, see https://github.com/egor-tensin/windows7-drivers.
-// Distributed under the MIT License.
-
-#pragma once
-
-#include "common.hpp"
-#include "singleton.hpp"
-
-#include <sstream>
-#include <string>
-#include <system_error>
-
-namespace libservice
-{
- class WindowsErrorCategory
- : public std::error_category
- , public Singleton<WindowsErrorCategory>
- {
- public:
- const char* name() const LIBSERVICE_NOEXCEPT { return "Windows"; }
-
- std::string message(int) const;
-
- private:
- friend class Singleton<WindowsErrorCategory>;
- };
-
- namespace error
- {
- inline std::string build_what(
- const char* function,
- const char* file,
- int line)
- {
- std::ostringstream oss;
- oss << "Error in function '" << function
- << "' at file '" << file
- << "', line " << line;
- return oss.str();
- }
- }
-}
-
-#if defined(_MSC_VER)
-#define LIBSERVICE_ERROR_PREFIX \
- "Error in function '" LIBSERVICE_FUNCTION_NAME "' at file '" LIBSERVICE_FILE_PATH "', line " LIBSERVICE_LINE_NUMBER_STRING
-#elif defined(__GNUC__)
-#define LIBSERVICE_ERROR_PREFIX \
- libservice::error::build_what(LIBSERVICE_FUNCTION_NAME, LIBSERVICE_FILE_PATH, LIBSERVICE_LINE_NUMBER)
-#else
-#define LIBSERVICE_ERROR_PREFIX "Error"
-#endif