LibreOffice Module binaryurp (master) 1
|
#include <writer.hxx>
Classes | |
struct | Item |
Public Member Functions | |
Writer (rtl::Reference< Bridge > const &bridge) | |
void | sendDirectRequest (rtl::ByteSequence const &tid, OUString const &oid, com::sun::star::uno::TypeDescription const &type, com::sun::star::uno::TypeDescription const &member, std::vector< BinaryAny > const &inArguments) |
void | sendDirectReply (rtl::ByteSequence const &tid, com::sun::star::uno::TypeDescription const &member, bool exception, BinaryAny const &returnValue, std::vector< BinaryAny > const &outArguments) |
void | queueRequest (rtl::ByteSequence const &tid, OUString const &oid, com::sun::star::uno::TypeDescription const &type, com::sun::star::uno::TypeDescription const &member, std::vector< BinaryAny > &&inArguments) |
void | queueReply (rtl::ByteSequence const &tid, com::sun::star::uno::TypeDescription const &member, bool setter, bool exception, BinaryAny const &returnValue, std::vector< BinaryAny > &&outArguments, bool setCurrentContextMode) |
void | unblock () |
void | stop () |
Public Member Functions inherited from salhelper::Thread | |
Thread (char const *name) | |
void | launch () |
Public Member Functions inherited from salhelper::SimpleReferenceObject | |
SimpleReferenceObject () | |
void | acquire () |
void | release () |
Private Member Functions | |
virtual | ~Writer () override |
virtual void | execute () override |
void | sendRequest (rtl::ByteSequence const &tid, OUString const &oid, com::sun::star::uno::TypeDescription const &type, com::sun::star::uno::TypeDescription const &member, std::vector< BinaryAny > const &inArguments, bool currentContextMode, com::sun::star::uno::UnoInterfaceReference const ¤tContext) |
void | sendReply (rtl::ByteSequence const &tid, com::sun::star::uno::TypeDescription const &member, bool setter, bool exception, BinaryAny const &returnValue, std::vector< BinaryAny > const &outArguments) |
void | sendMessage (std::vector< unsigned char > const &buffer) |
Private Attributes | |
rtl::Reference< Bridge > | bridge_ |
WriterState | state_ |
Marshal | marshal_ |
com::sun::star::uno::TypeDescription | lastType_ |
OUString | lastOid_ |
rtl::ByteSequence | lastTid_ |
osl::Condition | unblocked_ |
osl::Condition | items_ |
std::mutex | mutex_ |
std::deque< Item > | queue_ |
bool | stop_ |
Additional Inherited Members | |
Static Public Member Functions inherited from salhelper::Thread | |
static void * | operator new (std::size_t size) |
static void | operator delete (void *pointer) |
Static Public Member Functions inherited from salhelper::SimpleReferenceObject | |
static void * | operator new (std::size_t nSize) |
static void * | operator new (std::size_t nSize, std::nothrow_t const &rNothrow) |
static void | operator delete (void *pPtr) |
static void | operator delete (void *pPtr, std::nothrow_t const &rNothrow) |
Protected Member Functions inherited from salhelper::Thread | |
virtual | ~Thread () SAL_OVERRIDE |
virtual void | execute ()=0 |
Protected Member Functions inherited from salhelper::SimpleReferenceObject | |
virtual | ~SimpleReferenceObject () COVERITY_NOEXCEPT_FALSE |
Protected Attributes inherited from salhelper::SimpleReferenceObject | |
oslInterlockedCount | m_nCount |
Definition at line 44 of file writer.hxx.
|
explicit |
Definition at line 76 of file writer.cxx.
|
overrideprivatevirtual |
Definition at line 145 of file writer.cxx.
|
overrideprivatevirtual |
Implements salhelper::Thread.
Definition at line 147 of file writer.cxx.
References binaryurp::Writer::Item::arguments, bridge_, binaryurp::Writer::Item::currentContext, binaryurp::Writer::Item::exception, items_, binaryurp::Writer::Item::member, mutex_, binaryurp::Writer::Item::oid, queue_, binaryurp::Writer::Item::request, binaryurp::Writer::Item::returnValue, SAL_INFO, sendReply(), sendRequest(), binaryurp::Writer::Item::setCurrentContextMode, binaryurp::Writer::Item::setter, stop_, binaryurp::Writer::Item::tid, binaryurp::Writer::Item::type, and unblocked_.
void Writer::queueReply | ( | rtl::ByteSequence const & | tid, |
com::sun::star::uno::TypeDescription const & | member, | ||
bool | setter, | ||
bool | exception, | ||
BinaryAny const & | returnValue, | ||
std::vector< BinaryAny > && | outArguments, | ||
bool | setCurrentContextMode | ||
) |
Definition at line 116 of file writer.cxx.
void Writer::queueRequest | ( | rtl::ByteSequence const & | tid, |
OUString const & | oid, | ||
com::sun::star::uno::TypeDescription const & | type, | ||
com::sun::star::uno::TypeDescription const & | member, | ||
std::vector< BinaryAny > && | inArguments | ||
) |
Definition at line 104 of file writer.cxx.
References binaryurp::current_context::get(), items_, mutex_, queue_, and type.
void Writer::sendDirectReply | ( | rtl::ByteSequence const & | tid, |
com::sun::star::uno::TypeDescription const & | member, | ||
bool | exception, | ||
BinaryAny const & | returnValue, | ||
std::vector< BinaryAny > const & | outArguments | ||
) |
Definition at line 95 of file writer.cxx.
References sendReply(), and unblocked_.
void Writer::sendDirectRequest | ( | rtl::ByteSequence const & | tid, |
OUString const & | oid, | ||
com::sun::star::uno::TypeDescription const & | type, | ||
com::sun::star::uno::TypeDescription const & | member, | ||
std::vector< BinaryAny > const & | inArguments | ||
) |
Definition at line 83 of file writer.cxx.
References sendRequest(), type, and unblocked_.
|
private |
Definition at line 410 of file writer.cxx.
References bridge_, cppu::getCaughtException(), header, n, p, SAL_MAX_INT32, SAL_MAX_UINT32, and binaryurp::Marshal::write32().
Referenced by sendReply(), and sendRequest().
|
private |
Definition at line 343 of file writer.cxx.
References bridge_, i, lastTid_, marshal_, sendMessage(), binaryurp::Marshal::write8(), binaryurp::Marshal::writeTid(), and binaryurp::Marshal::writeValue().
Referenced by execute(), and sendDirectReply().
|
private |
Definition at line 192 of file writer.cxx.
References binaryurp::current_context::get(), i, lastOid_, lastTid_, lastType_, marshal_, SAL_MAX_UINT16, sendMessage(), binaryurp::SPECIAL_FUNCTION_ID_RELEASE, t, type, binaryurp::Marshal::write16(), binaryurp::Marshal::write8(), binaryurp::Marshal::writeOid(), binaryurp::Marshal::writeTid(), binaryurp::Marshal::writeType(), and binaryurp::Marshal::writeValue().
Referenced by execute(), and sendDirectRequest().
void Writer::stop | ( | ) |
Definition at line 136 of file writer.cxx.
References items_, mutex_, stop_, and unblocked_.
void Writer::unblock | ( | ) |
Definition at line 129 of file writer.cxx.
References unblocked_.
|
private |
Definition at line 134 of file writer.hxx.
Referenced by execute(), sendMessage(), and sendReply().
|
private |
Definition at line 141 of file writer.hxx.
Referenced by execute(), queueReply(), queueRequest(), and stop().
|
private |
Definition at line 138 of file writer.hxx.
Referenced by sendRequest().
|
private |
Definition at line 139 of file writer.hxx.
Referenced by sendReply(), and sendRequest().
|
private |
Definition at line 137 of file writer.hxx.
Referenced by sendRequest().
|
private |
Definition at line 136 of file writer.hxx.
Referenced by sendReply(), and sendRequest().
|
private |
Definition at line 143 of file writer.hxx.
Referenced by execute(), queueReply(), queueRequest(), and stop().
|
private |
Definition at line 144 of file writer.hxx.
Referenced by execute(), queueReply(), and queueRequest().
|
private |
Definition at line 135 of file writer.hxx.
|
private |
Definition at line 145 of file writer.hxx.
|
private |
Definition at line 140 of file writer.hxx.
Referenced by execute(), sendDirectReply(), sendDirectRequest(), stop(), and unblock().