From 88a2d0007db222c339f0b6a17794a2014a241892 Mon Sep 17 00:00:00 2001 From: Daniel Wilhelm Date: Fri, 18 Apr 2014 17:16:21 +0200 Subject: 4.3 --- zen/privilege.h | 47 +---------------------------------------------- 1 file changed, 1 insertion(+), 46 deletions(-) (limited to 'zen/privilege.h') diff --git a/zen/privilege.h b/zen/privilege.h index 4545aac7..88fc8992 100644 --- a/zen/privilege.h +++ b/zen/privilege.h @@ -7,57 +7,12 @@ #ifndef PRIVILEGE_H_INCLUDED #define PRIVILEGE_H_INCLUDED -#include -#include "zstring.h" #include "file_error.h" #include "win.h" //includes "windows.h" namespace zen { -#ifdef FFS_WIN -class Privileges -{ -public: - static Privileges& getInstance(); - - void ensureActive(LPCTSTR privilege) //throw FileError - { - if (activePrivileges.find(privilege) != activePrivileges.end()) - return; //privilege already active - - if (privilegeIsActive(privilege)) //privilege was already active before starting this tool - activePrivileges.insert(std::make_pair(privilege, false)); - else - { - setPrivilege(privilege, true); - activePrivileges.insert(std::make_pair(privilege, true)); - } - } - -private: - Privileges() {} - Privileges(Privileges&); - void operator=(Privileges&); - - ~Privileges() //clean up: deactivate all privileges that have been activated by this application - { - for (PrivBuffType::const_iterator i = activePrivileges.begin(); i != activePrivileges.end(); ++i) - try - { - if (i->second) - Privileges::setPrivilege(i->first.c_str(), false); - } - catch (...) {} - } - - static bool privilegeIsActive(LPCTSTR privilege); //throw FileError - static void setPrivilege(LPCTSTR privilege, bool enable); //throw FileError - - typedef std::map PrivBuffType; //bool: enabled by this application - - PrivBuffType activePrivileges; -}; -#endif +void activatePrivilege(LPCTSTR privilege); //throw FileError; thread-safe!!! } -- cgit