LibreOffice Module xmlsecurity (master) 1
|
#include <saxeventkeeperimpl.hxx>
Public Member Functions | |
SAXEventKeeperImpl () | |
virtual | ~SAXEventKeeperImpl () override |
SAXEventKeeperImpl (const SAXEventKeeperImpl &)=delete | |
SAXEventKeeperImpl & | operator= (const SAXEventKeeperImpl &)=delete |
virtual sal_Int32 SAL_CALL | addElementCollector () override |
virtual void SAL_CALL | removeElementCollector (sal_Int32 id) override |
virtual sal_Int32 SAL_CALL | addBlocker () override |
virtual void SAL_CALL | removeBlocker (sal_Int32 id) override |
virtual sal_Bool SAL_CALL | isBlocking () override |
virtual css::uno::Reference< css::xml::wrapper::XXMLElementWrapper > SAL_CALL | getElement (sal_Int32 id) override |
virtual void SAL_CALL | setElement (sal_Int32 id, const css::uno::Reference< css::xml::wrapper::XXMLElementWrapper > &aElement) override |
virtual css::uno::Reference< css::xml::sax::XDocumentHandler > SAL_CALL | setNextHandler (const css::uno::Reference< css::xml::sax::XDocumentHandler > &xNewHandler) override |
virtual OUString SAL_CALL | printBufferNodeTree () override |
virtual css::uno::Reference< css::xml::wrapper::XXMLElementWrapper > SAL_CALL | getCurrentBlockingNode () override |
virtual sal_Int32 SAL_CALL | addSecurityElementCollector (css::xml::crypto::sax::ElementMarkPriority priority, sal_Bool modifyElement) override |
virtual void SAL_CALL | setSecurityId (sal_Int32 id, sal_Int32 securityId) override |
virtual void SAL_CALL | addReferenceResolvedListener (sal_Int32 referenceId, const css::uno::Reference< css::xml::crypto::sax::XReferenceResolvedListener > &listener) override |
virtual void SAL_CALL | removeReferenceResolvedListener (sal_Int32 referenceId, const css::uno::Reference< css::xml::crypto::sax::XReferenceResolvedListener > &listener) override |
virtual void SAL_CALL | addSAXEventKeeperStatusChangeListener (const css::uno::Reference< css::xml::crypto::sax::XSAXEventKeeperStatusChangeListener > &listener) override |
virtual void SAL_CALL | removeSAXEventKeeperStatusChangeListener (const css::uno::Reference< css::xml::crypto::sax::XSAXEventKeeperStatusChangeListener > &listener) override |
virtual void SAL_CALL | startDocument () override |
virtual void SAL_CALL | endDocument () override |
virtual void SAL_CALL | startElement (const OUString &aName, const css::uno::Reference< css::xml::sax::XAttributeList > &xAttribs) override |
virtual void SAL_CALL | endElement (const OUString &aName) override |
virtual void SAL_CALL | characters (const OUString &aChars) override |
virtual void SAL_CALL | ignorableWhitespace (const OUString &aWhitespaces) override |
virtual void SAL_CALL | processingInstruction (const OUString &aTarget, const OUString &aData) override |
virtual void SAL_CALL | setDocumentLocator (const css::uno::Reference< css::xml::sax::XLocator > &xLocator) override |
virtual void SAL_CALL | initialize (const css::uno::Sequence< css::uno::Any > &aArguments) override |
virtual OUString SAL_CALL | getImplementationName () override |
virtual sal_Bool SAL_CALL | supportsService (const OUString &ServiceName) override |
virtual css::uno::Sequence< OUString > SAL_CALL | getSupportedServiceNames () override |
Private Member Functions | |
void | setCurrentBufferNode (BufferNode *pBufferNode) |
BufferNode * | addNewElementMarkBuffers () |
ElementMark * | findElementMarkBuffer (sal_Int32 nId) const |
void | removeElementMarkBuffer (sal_Int32 nId) |
OUString | printBufferNode (BufferNode const *pBufferNode, sal_Int32 nIndent) const |
void | smashBufferNode (BufferNode *pBufferNode, bool bClearRoot) const |
void | releaseElementMarkBuffer () |
void | markElementMarkBuffer (sal_Int32 nId) |
sal_Int32 | createElementCollector (css::xml::crypto::sax::ElementMarkPriority nPriority, bool bModifyElement, const css::uno::Reference< css::xml::crypto::sax::XReferenceResolvedListener > &xReferenceResolvedListener) |
sal_Int32 | createBlocker () |
Static Private Member Functions | |
static css::uno::Sequence< css::uno::Reference< css::xml::wrapper::XXMLElementWrapper > > | collectChildWorkingElement (BufferNode const *pBufferNode) |
static BufferNode * | findNextBlockingBufferNode (BufferNode *pStartBufferNode) |
static void | diffuse (BufferNode *pBufferNode) |
Private Attributes | |
css::uno::Reference< css::xml::wrapper::XXMLDocumentWrapper > | m_xXMLDocument |
css::uno::Reference< css::xml::sax::XDocumentHandler > | m_xDocumentHandler |
css::uno::Reference< css::xml::csax::XCompressedDocumentHandler > | m_xCompressedDocumentHandler |
css::uno::Reference< css::xml::crypto::sax::XSAXEventKeeperStatusChangeListener > | m_xSAXEventKeeperStatusChangeListener |
std::unique_ptr< BufferNode > | m_pRootBufferNode |
BufferNode * | m_pCurrentBufferNode |
sal_Int32 | m_nNextElementMarkId |
std::vector< std::unique_ptr< const ElementMark > > | m_vElementMarkBuffers |
std::vector< const ElementCollector * > | m_vNewElementCollectors |
ElementMark * | m_pNewBlocker |
css::uno::Reference< css::xml::sax::XDocumentHandler > | m_xNextHandler |
BufferNode * | m_pCurrentBlockingBufferNode |
std::vector< sal_Int32 > | m_vReleasedElementMarkBuffers |
bool | m_bIsReleasing |
bool | m_bIsForwarding |
Definition at line 41 of file saxeventkeeperimpl.hxx.
SAXEventKeeperImpl::SAXEventKeeperImpl | ( | ) |
Definition at line 35 of file saxeventkeeperimpl.cxx.
References m_vElementMarkBuffers, m_vNewElementCollectors, and m_vReleasedElementMarkBuffers.
|
overridevirtual |
Definition at line 48 of file saxeventkeeperimpl.cxx.
References m_pCurrentBlockingBufferNode, m_pCurrentBufferNode, m_pNewBlocker, m_pRootBufferNode, and m_vNewElementCollectors.
|
delete |
|
overridevirtual |
Definition at line 817 of file saxeventkeeperimpl.cxx.
References createBlocker().
|
overridevirtual |
Definition at line 804 of file saxeventkeeperimpl.cxx.
References createElementCollector().
|
private |
Definition at line 104 of file saxeventkeeperimpl.cxx.
References BufferNode::addElementCollector(), BufferNode::getXMLElement(), i, m_pCurrentBlockingBufferNode, m_pCurrentBufferNode, m_pNewBlocker, m_vNewElementCollectors, m_xSAXEventKeeperStatusChangeListener, m_xXMLDocument, and BufferNode::setBlocker().
Referenced by startElement().
|
overridevirtual |
Definition at line 931 of file saxeventkeeperimpl.cxx.
References findElementMarkBuffer(), and ElementCollector::setReferenceResolvedListener().
|
overridevirtual |
Definition at line 949 of file saxeventkeeperimpl.cxx.
References m_xSAXEventKeeperStatusChangeListener.
|
overridevirtual |
Definition at line 910 of file saxeventkeeperimpl.cxx.
References createElementCollector().
|
overridevirtual |
Definition at line 1069 of file saxeventkeeperimpl.cxx.
References m_bIsForwarding, m_pCurrentBlockingBufferNode, m_pCurrentBufferNode, m_pRootBufferNode, m_xCompressedDocumentHandler, and m_xNextHandler.
Referenced by ignorableWhitespace().
|
staticprivate |
Definition at line 328 of file saxeventkeeperimpl.cxx.
References BufferNode::getChildren(), and i.
|
private |
Definition at line 778 of file saxeventkeeperimpl.cxx.
References m_nNextElementMarkId, m_pNewBlocker, m_vElementMarkBuffers, and nId.
Referenced by addBlocker().
|
private |
Definition at line 727 of file saxeventkeeperimpl.cxx.
References m_nNextElementMarkId, m_vElementMarkBuffers, m_vNewElementCollectors, and nId.
Referenced by addElementCollector(), and addSecurityElementCollector().
|
staticprivate |
Definition at line 532 of file saxeventkeeperimpl.cxx.
References BufferNode::elementCollectorNotify(), BufferNode::getParent(), and BufferNode::isAllReceived().
Referenced by releaseElementMarkBuffer().
|
overridevirtual |
Definition at line 969 of file saxeventkeeperimpl.cxx.
References m_xNextHandler.
|
overridevirtual |
Definition at line 1017 of file saxeventkeeperimpl.cxx.
References aName, BufferNode::getParent(), BufferNode::getXMLElement(), m_bIsForwarding, m_pCurrentBlockingBufferNode, m_pCurrentBufferNode, m_pRootBufferNode, m_xCompressedDocumentHandler, m_xNextHandler, m_xSAXEventKeeperStatusChangeListener, m_xXMLDocument, and BufferNode::setReceivedAll().
|
private |
Definition at line 176 of file saxeventkeeperimpl.cxx.
References nId.
Referenced by addReferenceResolvedListener(), getElement(), releaseElementMarkBuffer(), setElement(), and setSecurityId().
|
staticprivate |
Definition at line 494 of file saxeventkeeperimpl.cxx.
References BufferNode::getBlocker(), and BufferNode::getNextNodeByTreeOrder().
Referenced by releaseElementMarkBuffer().
|
overridevirtual |
Definition at line 897 of file saxeventkeeperimpl.cxx.
References BufferNode::getXMLElement(), and m_pCurrentBlockingBufferNode.
|
overridevirtual |
Definition at line 833 of file saxeventkeeperimpl.cxx.
References findElementMarkBuffer(), ElementMark::getBufferNode(), and BufferNode::getXMLElement().
|
overridevirtual |
Definition at line 1137 of file saxeventkeeperimpl.cxx.
References SAXEventKeeperImpl_getImplementationName().
|
overridevirtual |
Definition at line 1147 of file saxeventkeeperimpl.cxx.
References SAXEventKeeperImpl_getSupportedServiceNames().
|
overridevirtual |
Definition at line 1086 of file saxeventkeeperimpl.cxx.
References characters().
|
overridevirtual |
Definition at line 1114 of file saxeventkeeperimpl.cxx.
References aArguments, m_pCurrentBufferNode, m_pRootBufferNode, m_xCompressedDocumentHandler, m_xDocumentHandler, and m_xXMLDocument.
|
overridevirtual |
Definition at line 827 of file saxeventkeeperimpl.cxx.
References m_pCurrentBlockingBufferNode.
|
private |
Definition at line 702 of file saxeventkeeperimpl.cxx.
References m_bIsReleasing, m_vReleasedElementMarkBuffers, nId, and releaseElementMarkBuffer().
Referenced by removeBlocker(), and removeElementCollector().
|
delete |
|
private |
Definition at line 253 of file saxeventkeeperimpl.cxx.
References ElementMark::getBufferId(), ElementMark::getSecurityId(), BufferNode::getXMLElement(), and i.
Referenced by printBufferNodeTree().
|
overridevirtual |
Definition at line 886 of file saxeventkeeperimpl.cxx.
References BufferNode::getXMLElement(), m_pCurrentBufferNode, m_pRootBufferNode, m_vElementMarkBuffers, m_xXMLDocument, and printBufferNode().
|
overridevirtual |
Definition at line 1091 of file saxeventkeeperimpl.cxx.
References aData, m_bIsForwarding, m_pCurrentBlockingBufferNode, m_pCurrentBufferNode, m_pRootBufferNode, m_xCompressedDocumentHandler, and m_xNextHandler.
|
private |
Definition at line 560 of file saxeventkeeperimpl.cxx.
References diffuse(), findElementMarkBuffer(), findNextBlockingBufferNode(), ElementMark::getBufferNode(), ElementCollector::getPriority(), ElementMark::getType(), BufferNode::getXMLElement(), m_bIsForwarding, m_bIsReleasing, m_pCurrentBlockingBufferNode, m_pCurrentBufferNode, m_pRootBufferNode, m_vReleasedElementMarkBuffers, m_xNextHandler, m_xSAXEventKeeperStatusChangeListener, m_xXMLDocument, nId, BufferNode::notifyBranch(), BufferNode::removeElementCollector(), removeElementMarkBuffer(), BufferNode::setBlocker(), and smashBufferNode().
Referenced by markElementMarkBuffer().
|
overridevirtual |
Definition at line 822 of file saxeventkeeperimpl.cxx.
References markElementMarkBuffer().
|
overridevirtual |
Definition at line 812 of file saxeventkeeperimpl.cxx.
References markElementMarkBuffer().
Referenced by setElement().
|
private |
Definition at line 211 of file saxeventkeeperimpl.cxx.
References m_pNewBlocker, m_vElementMarkBuffers, m_vNewElementCollectors, and nId.
Referenced by releaseElementMarkBuffer().
|
overridevirtual |
Definition at line 942 of file saxeventkeeperimpl.cxx.
|
overridevirtual |
Definition at line 955 of file saxeventkeeperimpl.cxx.
|
private |
Definition at line 64 of file saxeventkeeperimpl.cxx.
References BufferNode::addChild(), BufferNode::getParent(), m_pCurrentBufferNode, m_pRootBufferNode, m_xSAXEventKeeperStatusChangeListener, and BufferNode::setParent().
Referenced by startElement().
|
overridevirtual |
Definition at line 1109 of file saxeventkeeperimpl.cxx.
|
overridevirtual |
Definition at line 846 of file saxeventkeeperimpl.cxx.
References findElementMarkBuffer(), ElementMark::getBufferNode(), BufferNode::getXMLElement(), m_xXMLDocument, removeElementCollector(), and BufferNode::setXMLElement().
|
overridevirtual |
Definition at line 877 of file saxeventkeeperimpl.cxx.
References m_xNextHandler.
|
overridevirtual |
Definition at line 920 of file saxeventkeeperimpl.cxx.
References findElementMarkBuffer(), and ElementMark::setSecurityId().
|
private |
Definition at line 356 of file saxeventkeeperimpl.cxx.
References BufferNode::addChild(), i, BufferNode::indexOfChild(), nIndex, and BufferNode::removeChild().
Referenced by releaseElementMarkBuffer().
|
overridevirtual |
Definition at line 961 of file saxeventkeeperimpl.cxx.
References m_xNextHandler.
|
overridevirtual |
Definition at line 977 of file saxeventkeeperimpl.cxx.
References addNewElementMarkBuffers(), aName, i, m_bIsForwarding, m_pCurrentBlockingBufferNode, m_pNewBlocker, m_xCompressedDocumentHandler, m_xNextHandler, nLength, and setCurrentBufferNode().
|
overridevirtual |
Definition at line 1142 of file saxeventkeeperimpl.cxx.
References cppu::supportsService().
|
private |
Definition at line 177 of file saxeventkeeperimpl.hxx.
Referenced by characters(), endElement(), processingInstruction(), releaseElementMarkBuffer(), and startElement().
|
private |
Definition at line 166 of file saxeventkeeperimpl.hxx.
Referenced by markElementMarkBuffer(), and releaseElementMarkBuffer().
|
private |
Definition at line 111 of file saxeventkeeperimpl.hxx.
Referenced by createBlocker(), and createElementCollector().
|
private |
Definition at line 147 of file saxeventkeeperimpl.hxx.
Referenced by addNewElementMarkBuffers(), characters(), endElement(), getCurrentBlockingNode(), isBlocking(), processingInstruction(), releaseElementMarkBuffer(), startElement(), and ~SAXEventKeeperImpl().
|
private |
Definition at line 104 of file saxeventkeeperimpl.hxx.
Referenced by addNewElementMarkBuffers(), characters(), endElement(), initialize(), printBufferNodeTree(), processingInstruction(), releaseElementMarkBuffer(), setCurrentBufferNode(), and ~SAXEventKeeperImpl().
|
private |
Definition at line 135 of file saxeventkeeperimpl.hxx.
Referenced by addNewElementMarkBuffers(), createBlocker(), removeElementMarkBuffer(), startElement(), and ~SAXEventKeeperImpl().
|
private |
Definition at line 97 of file saxeventkeeperimpl.hxx.
Referenced by characters(), endElement(), initialize(), printBufferNodeTree(), processingInstruction(), releaseElementMarkBuffer(), setCurrentBufferNode(), and ~SAXEventKeeperImpl().
|
private |
Definition at line 116 of file saxeventkeeperimpl.hxx.
Referenced by createBlocker(), createElementCollector(), printBufferNodeTree(), removeElementMarkBuffer(), and SAXEventKeeperImpl().
|
private |
Definition at line 128 of file saxeventkeeperimpl.hxx.
Referenced by addNewElementMarkBuffers(), createElementCollector(), removeElementMarkBuffer(), SAXEventKeeperImpl(), and ~SAXEventKeeperImpl().
|
private |
Definition at line 157 of file saxeventkeeperimpl.hxx.
Referenced by markElementMarkBuffer(), releaseElementMarkBuffer(), and SAXEventKeeperImpl().
|
private |
Definition at line 79 of file saxeventkeeperimpl.hxx.
Referenced by characters(), endElement(), initialize(), processingInstruction(), and startElement().
|
private |
Definition at line 71 of file saxeventkeeperimpl.hxx.
Referenced by initialize().
|
private |
Definition at line 141 of file saxeventkeeperimpl.hxx.
Referenced by characters(), endDocument(), endElement(), processingInstruction(), releaseElementMarkBuffer(), setNextHandler(), startDocument(), and startElement().
|
private |
Definition at line 89 of file saxeventkeeperimpl.hxx.
Referenced by addNewElementMarkBuffers(), addSAXEventKeeperStatusChangeListener(), endElement(), releaseElementMarkBuffer(), and setCurrentBufferNode().
|
private |
Definition at line 66 of file saxeventkeeperimpl.hxx.
Referenced by addNewElementMarkBuffers(), endElement(), initialize(), printBufferNodeTree(), releaseElementMarkBuffer(), and setElement().