26#include <com/sun/star/lang/XServiceInfo.hpp>
27#include <com/sun/star/uno/XComponentContext.hpp>
28#include <com/sun/star/awt/XRequestCallback.hpp>
34 public ::cppu::WeakImplHelper<
35 css::lang::XServiceInfo,
36 css::awt::XRequestCallback>
40 AsyncCallback(
const AsyncCallback&) =
delete;
41 AsyncCallback& operator=(
const AsyncCallback&) =
delete;
49 virtual void SAL_CALL addCallback(
const css::uno::Reference< css::awt::XCallback > & xCallback,
const css::uno::Any & aData)
override;
55 CallbackData( css::uno::Reference< css::awt::XCallback > _xCallback, css::uno::Any aAny ) :
56 xCallback(
std::move( _xCallback )),
aData(
std::move( aAny )) {}
58 css::uno::Reference< css::awt::XCallback > xCallback;
64 virtual ~AsyncCallback()
override {}
68OUString SAL_CALL AsyncCallback::getImplementationName()
70 return "com.sun.star.awt.comp.AsyncCallback";
73sal_Bool SAL_CALL AsyncCallback::supportsService(OUString
const & serviceName)
78css::uno::Sequence< OUString > SAL_CALL AsyncCallback::getSupportedServiceNames()
80 return {
"com.sun.star.awt.AsyncCallback" };
84void SAL_CALL AsyncCallback::addCallback(
const css::uno::Reference< css::awt::XCallback > & xCallback,
const css::uno::Any & aData)
89 CallbackData* pCallbackData =
new CallbackData( xCallback, aData );
97 CallbackData* pCallbackData =
static_cast<CallbackData*
>(
p);
102 if ( pCallbackData && pCallbackData->xCallback.is() )
103 pCallbackData->xCallback->notify( pCallbackData->aData );
105 catch ( css::uno::Exception& )
109 delete pCallbackData;
114extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface *
116 css::uno::XComponentContext *,
117 css::uno::Sequence<css::uno::Any>
const &)
119 return cppu::acquire(
new AsyncCallback());
SAL_DLLPUBLIC_EXPORT css::uno::XInterface * com_sun_star_awt_comp_AsyncCallback_get_implementation(css::uno::XComponentContext *, css::uno::Sequence< css::uno::Any > const &)
static ImplSVEvent * PostUserEvent(const Link< void *, void > &rLink, void *pCaller=nullptr, bool bReferenceLink=false)
#define LINK(Instance, Class, Member)
#define DECL_STATIC_LINK(Class, Member, ArgType, RetType)
constexpr OUStringLiteral aData
css::uno::Sequence< OUString > getSupportedServiceNames()
OUString getImplementationName()
bool CPPUHELPER_DLLPUBLIC supportsService(css::lang::XServiceInfo *implementation, rtl::OUString const &name)