20#ifndef INCLUDED_VCL_INC_HEADLESS_SVPINST_HXX
21#define INCLUDED_VCL_INC_HEADLESS_SVPINST_HXX
23#include <osl/thread.hxx>
24#include <osl/conditn.hxx>
31#include <condition_variable>
38#define SvpSalInstance AquaSalInstance
50 virtual void Start( sal_uInt64 nMS )
override;
51 virtual void Stop()
override;
82 virtual void doAcquire( sal_uInt32 nLockCount )
override;
83 virtual sal_uInt32
doRelease(
bool bUnlockAll )
override;
103 bool ImplYield(
bool bWait,
bool bHandleAllCurrentEvents);
117 inline void registerFrame(
SalFrame* pFrame );
118 inline void deregisterFrame(
SalFrame* pFrame );
135 virtual std::unique_ptr<SalVirtualDevice>
164 virtual bool DoYield(
bool bWait,
bool bHandleAllCurrentEvents)
override;
171 virtual void AddToRecentDocumentList(
const OUString& rFileUrl,
const OUString& rMimeType,
const OUString& rDocumentService)
override;
struct _cairo_surface cairo_surface_t
A SalFrame is a system window (e.g. an X11 window).
void eraseFrame(SalFrame *pFrame)
void insertFrame(SalFrame *pFrame)
void Wakeup(SvpRequest request=SvpRequest::NONE)
virtual SalFrame * CreateChildFrame(SystemParentData *pParent, SalFrameStyleFlags nStyle) override
virtual void GetPrinterQueueInfo(ImplPrnQueueList *pList) override
SvpSalInstance(std::unique_ptr< SalYieldMutex > pMutex)
virtual SalObject * CreateObject(SalFrame *pParent, SystemWindowData *pWindowData, bool bShow) override
virtual SalInfoPrinter * CreateInfoPrinter(SalPrinterQueueInfo *pQueueInfo, ImplJobSetup *pSetupData) override
virtual std::shared_ptr< SalBitmap > CreateSalBitmap() override
virtual std::unique_ptr< GenPspGraphics > CreatePrintGraphics() override
virtual OUString GetConnectionIdentifier() override
virtual bool DoYield(bool bWait, bool bHandleAllCurrentEvents) override
Wait for the next event (if bWait) and dispatch it, includes posted events, and timers.
void deregisterFrame(SalFrame *pFrame)
virtual void DestroyObject(SalObject *pObject) override
virtual SalSystem * CreateSalSystem() override
virtual std::unique_ptr< SalVirtualDevice > CreateVirtualDevice(SalGraphics &rGraphics, tools::Long &nDX, tools::Long &nDY, DeviceFormat eFormat, const SystemGraphicsData *pData=nullptr) override
oslThreadIdentifier m_MainThread
virtual void updateMainThread() override
Set the app's (somewhat) magic/main-thread to this one.
void StartTimer(sal_uInt64 nMS)
void registerFrame(SalFrame *pFrame)
static SvpSalInstance * s_pDefaultInstance
virtual const cairo_font_options_t * GetCairoFontOptions() override
virtual void DestroyFrame(SalFrame *pFrame) override
bool CheckTimeout(bool bExecuteTimers=true)
virtual void DestroyInfoPrinter(SalInfoPrinter *pPrinter) override
virtual OUString GetDefaultPrinter() override
virtual bool AnyInput(VclInputFlags nType) override
virtual ~SvpSalInstance() override
virtual void TriggerUserEventProcessing() override
virtual void PostPrintersChanged() override
virtual bool IsMainThread() const override
bool ImplYield(bool bWait, bool bHandleAllCurrentEvents)
virtual std::unique_ptr< SalPrinter > CreatePrinter(SalInfoPrinter *pInfoPrinter) override
virtual void GetPrinterQueueState(SalPrinterQueueInfo *pInfo) override
virtual void ProcessEvent(SalUserEvent aEvent) override
virtual SalFrame * CreateFrame(SalFrame *pParent, SalFrameStyleFlags nStyle) override
virtual SalTimer * CreateSalTimer() override
virtual void AddToRecentDocumentList(const OUString &rFileUrl, const OUString &rMimeType, const OUString &rDocumentService) override
SvpSalTimer(SvpSalInstance *pInstance)
virtual ~SvpSalTimer() override
virtual void Stop() override
virtual void Start(sal_uInt64 nMS) override
SvpSalInstance * m_pInstance
std::queue< bool > m_FeedbackPipe
virtual ~SvpSalYieldMutex() override
virtual bool IsCurrentThread() const override
virtual sal_uInt32 doRelease(bool bUnlockAll) override
std::mutex m_FeedbackMutex
std::condition_variable m_WakeUpMainCond
osl::Condition m_NonMainWaitingYieldCond
std::mutex m_WakeUpMainMutex
std::condition_variable m_FeedbackCV
virtual void doAcquire(sal_uInt32 nLockCount) override
struct _cairo_font_options cairo_font_options_t
VCL_DLLPUBLIC cairo_surface_t * get_underlying_cairo_surface(const VirtualDevice &rDevice)
@ MainThreadDispatchOneEvent
@ MainThreadDispatchAllEvents