XmlContainer::getDocument

API Ref

#include <DbXml.hpp>

XmlDocument getDocument(const std::string &name, u_int32_t flags = 0)

XmlDocument getDocument( XmlTransaction &txn, const std::string &name, u_int32_t flags = 0)


Description: XmlContainer::getDocument

The XmlContainer::getDocument method returns the XmlDocument with the specified name.

Parameters

txn
If the operation is to be transaction-protected, the txn parameter is an XmlTransaction handle returned from XmlManager::createTransaction.
name
The name of the XmlDocument to be retrieved from the container.
flags
The flags parameter must be set to 0 or one of the following values:
DB_DIRTY_READ
Read modified but not yet committed data. Silently ignored if the DB_DIRTY_READ flag was not specified when the underlying XmlContainer was opened.
DB_RMW
Acquire write locks instead of read locks when doing the retrieval. Setting this flag can eliminate deadlock during a read-modify-write cycle by acquiring the write lock during the read part of the cycle so that another thread of control acquiring a read lock for the same item, in its own read-modify-write cycle, will not result in deadlock.

Because the XmlContainer::getDocument method will not hold locks across Berkeley DB interface calls in non-transactional environments, the DB_RMW flag to the XmlContainer::getDocument call is meaningful only in the presence of transactions.

DBXML_LAZY_DOCS
Retrieve the document lazily. That is, retrieve document content and document metadata only on an as needed basis when reading the document.

Errors

The XmlContainer::getDocument method may fail and throw XmlException, encapsulating one of the following non-zero errors:

DATABASE_ERROR
An error occurred in an underlying Berkeley DB database. The XmlException::getDbErrno method will return the error code for the error.
DOCUMENT_NOT_FOUND
The specified document is not in the XmlContainer.

APIRef

Copyright (c) 1996-2004 Sleepycat Software, Inc. - All rights reserved.