Stroika Library 3.0d16
 
Loading...
Searching...
No Matches
Handle.inl
1/*
2 * Copyright(c) Sophist Solutions, Inc. 1990-2025. All rights reserved
3 */
5#include "Stroika/Foundation/Execution/Throw.h"
6
7namespace Stroika::Foundation::Memory::Platform::Windows {
8
9 /*
10 ********************************************************************************
11 ***************************** StackBasedHandleLocker ***************************
12 ********************************************************************************
13 */
14 inline StackBasedHandleLocker::StackBasedHandleLocker (HANDLE h)
15 : fHandle_{h}
16 , fPointer_{reinterpret_cast<byte*> (::GlobalLock (h))}
17 {
19 Execution::ThrowIfNull (fPointer_);
20 }
21 inline StackBasedHandleLocker::~StackBasedHandleLocker ()
22 {
23 AssertNotNull (fHandle_);
24 ::GlobalUnlock (fHandle_);
25 }
26 inline byte* StackBasedHandleLocker::GetPointer () const
27 {
28 return fPointer_;
29 }
30 inline size_t StackBasedHandleLocker::GetSize () const
31 {
32 return ::GlobalSize (fHandle_);
33 }
34
35}
#define AssertNotNull(p)
Definition Assertions.h:333
#define RequireNotNull(p)
Definition Assertions.h:347