Harlinn.Windows 0.1
|
#include <HWApplication.h>
Public Types | |
using | Base = Common::Core::Application |
![]() | |
using | Base = Concurrency::ActiveObject<std::shared_ptr<ApplicationMessage>> |
![]() | |
using | Base |
using | ESFT |
![]() | |
using | MessageType |
using | ConcurrentQueue |
using | Event |
Public Member Functions | |
HW_EXPORT | Application (const std::shared_ptr< Windows::ApplicationOptions > &options, COINIT comInitalizationFlags=COINIT::COINIT_APARTMENTTHREADED) |
HW_EXPORT | Application () |
virtual HW_EXPORT | ~Application () |
virtual HW_EXPORT int | Run (Form &mainform) |
HW_EXPORT int | Run (const std::unique_ptr< Form > &mainform) |
virtual HW_EXPORT int | Run (Form &mainform, MessageLoop &messageLoop) |
template<typename FormT > requires std::is_base_of_v<Form, FormT> | |
int | Run () |
HW_EXPORT const WindowClasses & | GetWindowClasses () const |
HW_EXPORT WindowClasses & | GetWindowClasses () |
![]() | |
HCC_EXPORT | Application (const std::shared_ptr< ApplicationOptions > &options) |
HCC_EXPORT | Application () |
HCC_EXPORT | ~Application () |
Application (const Application &other)=delete | |
Application (Application &&other)=delete | |
Application & | operator= (const Application &other)=delete |
Application & | operator= (Application &&other)=delete |
const std::shared_ptr< ApplicationOptions > & | Options () const |
bool | Start (const TimeSpan &timeout) override |
Starts the message processing thread. | |
bool | Stop (const TimeSpan &timeout) override |
Stops the message processing thread by posting the stop message, closing the message queue, and waiting for the thread to exit. | |
HCC_EXPORT void | PostThreadAttachedMessage () |
HCC_EXPORT void | PostThreadDetachedMessage () |
![]() | |
ActiveObject (const WideString &threadName) | |
Constructs a new instance of an ActiveObject object. | |
virtual | ~ActiveObject ()=default |
bool | Start () |
Starts the message processing thread. | |
bool | Stop () |
Stops the message processing thread by posting the stop message, closing the message queue, and waiting for the thread to exit. | |
![]() | |
ActiveObjectBase (const WideString &threadName) | |
Constructs a new active object. | |
const WideString & | ThreadName () const noexcept |
bool | Started () const noexcept |
Determine whether the active object has started the message processing thread. | |
bool | Stopped () const noexcept |
Determine whether the active object has exited the message processing thread. | |
size_t | MessagesPosted () const |
Retrieves the number of messages posted to the active object. | |
size_t | MessagesProcessed () const |
Retrieves the number of messages processed by the message processing loop. | |
virtual bool | PostMessage (const MessageType &message) |
Posts a message to the active object. | |
virtual bool | PostMessage (MessageType &&message) |
Posts a message, by moving it, to the active object. | |
Static Public Member Functions | |
static HW_EXPORT Application * | Current () |
static HW_EXPORT WindowClass * | GetWindowClass (const WideString &className) |
static HW_EXPORT WindowClass * | GetWindowClass (const wchar_t *className) |
static void | RegisterWindowClass (std::unique_ptr< WindowClass > &&windowClass) |
![]() | |
static Application & | Instance () noexcept |
static HCC_EXPORT UInt64 | MainThreadId () noexcept |
static HCC_EXPORT void | HandleDllMainEvent (HMODULE moduleHandle, DWORD reason, LPVOID freeLibrary) noexcept |
Private Member Functions | |
HW_EXPORT void | AddControl (HWND hWnd, Control *control) |
HW_EXPORT void | RemoveControl (HWND hWnd) |
HW_EXPORT Control * | GetControl (HWND hWnd) |
Private Attributes | |
WindowClasses | windowClasses_ |
std::unordered_map< HWND, Control * > | controls_ |
Static Private Attributes | |
static Application * | currentApplication_ = nullptr |
Friends | |
class | Control |
Additional Inherited Members | |
![]() | |
boost::signals2::signal< void(UInt32 attachedThreadId)> | OnThreadAttached |
boost::signals2::signal< void(UInt32 detachedThreadId)> | OnThreadDetached |
![]() | |
Event< void(ActiveObjectBase *, const ActiveObjectMessageEventArgs< MessageType > &)> | OnProcessMessage |
Register callbacks with this signal to process messages passed to the active object. | |
Event< void(ActiveObjectBase *, const ActiveObjectExceptionEventArgs &)> | OnException |
Register callbacks with this signal to process exceptions caught in the message event loop of the active object. | |
![]() | |
static constexpr Int64 | DefaultStartStopTimeoutInTicks |
![]() | |
virtual HCC_EXPORT void | ProcessMessage (const MessageType &message) override |
virtual bool | IsStopMessage (const MessageType &message) const noexcept override |
IsStopMessage must be implemented by derived classes to determine if a message is a stop message causing the event loop to be terminated. | |
virtual void | PostStopMessage () override |
PostStopMessage must be implemented by derived classes. The implementation must post a message the will cause IsStopMessage to return true. | |
virtual HCC_EXPORT void | BeforeProcessMessages () override |
virtual HCC_EXPORT void | ProcessThreadAttachedMessage (const std::shared_ptr< ApplicationThreadAttachedMessage > &message) |
virtual HCC_EXPORT void | ProcessThreadDetachedMessage (const std::shared_ptr< ApplicationThreadDetachedMessage > &message) |
![]() | |
void | ProcessMessages () |
This function implements the message processing loop. | |
virtual void | AfterProcessMessages () |
Provides an opportunity to implement any cleanup that needs to be performed in the context of the worker thread of the active object after the message loop exits. | |
virtual void | Run (EventWaitHandle &manualEventWaitHandle) |
Run must be called by the thread that will be used to process messages for the active object. | |
virtual void | HandleException (const std::exception &error, const WideString &message) |
Called when exceptions are caught in the message processing loop. | |
Harlinn::Windows::Application::Application | ( | const std::shared_ptr< Windows::ApplicationOptions > & | options, |
COINIT | comInitalizationFlags = COINIT::COINIT_APARTMENTTHREADED ) |
HW_EXPORT Harlinn::Windows::Application::Application | ( | ) |
|
virtual |
|
private |
|
static |
|
private |
|
static |
|
static |
WindowClasses & Harlinn::Windows::Application::GetWindowClasses | ( | ) |
const WindowClasses & Harlinn::Windows::Application::GetWindowClasses | ( | ) | const |
|
inlinestatic |
|
private |
|
inline |
int Harlinn::Windows::Application::Run | ( | const std::unique_ptr< Form > & | mainform | ) |
|
virtual |
|
virtual |
|
friend |
|
private |
|
staticprivate |
|
private |