4#ifndef _Stroika_Foundation_Cryptography_OpenSSL_Exception_h_
5#define _Stroika_Foundation_Cryptography_OpenSSL_Exception_h_ 1
7#include "Stroika/Foundation/StroikaPreComp.h"
9#include "Stroika/Foundation/Common/Common.h"
10#include "Stroika/Foundation/Execution/Exceptions.h"
11#include "Stroika/Foundation/Memory/Common.h"
17namespace Stroika::Foundation::Cryptography::Providers::OpenSSL {
19#if qStroika_HasComponent_OpenSSL
22 class Exception :
public Execution::RuntimeErrorException<> {
24 using inherited = Execution::RuntimeErrorException<>;
29 using InternalErrorCodeType =
unsigned long;
34 Exception (InternalErrorCodeType errorCode);
39 nonvirtual InternalErrorCodeType GetErrorCode ()
const;
44 static Characters::String GetMessage (InternalErrorCodeType errorCode);
50 static void ThrowLastErrorIfFailed (
int status);
56 [[noreturn]]
static void ThrowLastError ();
61 static bool GetNamesSupported ();
66 static void SetNamesSupported (
bool openSSLStringsSupported);
69 InternalErrorCodeType fErrorCode_;
80#include "Exception.inl"