blob: 576b244262cfd3b50ad4d7a672970cbb4c99d564 [file] [log] [blame]
Georges-Henri Baron326a31d2012-06-28 12:05:09 +02001/*
Patrick Benavoli68a91282011-08-31 11:23:23 +02002 * INTEL CONFIDENTIAL
Georges-Henri Baroncec86c12012-09-04 17:30:28 +02003 * Copyright © 2013 Intel
Patrick Benavoli68a91282011-08-31 11:23:23 +02004 * Corporation All Rights Reserved.
Georges-Henri Baron326a31d2012-06-28 12:05:09 +02005 *
Patrick Benavoli68a91282011-08-31 11:23:23 +02006 * The source code contained or described herein and all documents related to
7 * the source code ("Material") are owned by Intel Corporation or its suppliers
8 * or licensors. Title to the Material remains with Intel Corporation or its
9 * suppliers and licensors. The Material contains trade secrets and proprietary
10 * and confidential information of Intel or its suppliers and licensors. The
11 * Material is protected by worldwide copyright and trade secret laws and
12 * treaty provisions. No part of the Material may be used, copied, reproduced,
13 * modified, published, uploaded, posted, transmitted, distributed, or
14 * disclosed in any way without Intel’s prior express written permission.
Georges-Henri Baron326a31d2012-06-28 12:05:09 +020015 *
Patrick Benavoli68a91282011-08-31 11:23:23 +020016 * No license under any patent, copyright, trade secret or other intellectual
17 * property right is granted to or conferred upon you by disclosure or delivery
18 * of the Materials, either expressly, by implication, inducement, estoppel or
19 * otherwise. Any license under such intellectual property rights must be
20 * express and approved by Intel in writing.
Patrick Benavoli68a91282011-08-31 11:23:23 +020021 */
Georges-Henri Baron326a31d2012-06-28 12:05:09 +020022
Patrick Benavoli68a91282011-08-31 11:23:23 +020023#pragma once
Georges-Henri Baroncec86c12012-09-04 17:30:28 +020024#include <string>
Georges-Henri Baron326a31d2012-06-28 12:05:09 +020025#include "XmlDocSink.h"
Patrick Benavoli68a91282011-08-31 11:23:23 +020026#include "XmlSource.h"
27
Georges-Henri Baroncec86c12012-09-04 17:30:28 +020028using std::string;
29
30/**
31 * Sink class that writes the content of any CXmlDocSource into a string.
32 * A reference to an empty string is given in the constructor.
33 */
Georges-Henri Baron326a31d2012-06-28 12:05:09 +020034class CXmlStringDocSink : public CXmlDocSink
Patrick Benavoli68a91282011-08-31 11:23:23 +020035{
36public:
Georges-Henri Baroncec86c12012-09-04 17:30:28 +020037 /** Constructor
38 *
39 * @param[out] strResult a reference to a string that will be filled by the doProcess method
40 */
Georges-Henri Baron326a31d2012-06-28 12:05:09 +020041 CXmlStringDocSink(string& strResult);
Patrick Benavoli68a91282011-08-31 11:23:23 +020042
43private:
Georges-Henri Baroncec86c12012-09-04 17:30:28 +020044 /** Implementation of CXmlDocSink::doProcess()
45 * Writes the content of the xmlDocSource in strResult
46 *
47 * @param[in] xmlDocSource is the source containing the Xml document
48 * @param[out] serializingContext is used as error output
49 *
50 * @return false if any error occurs
51 */
Georges-Henri Baron326a31d2012-06-28 12:05:09 +020052 virtual bool doProcess(CXmlDocSource& xmlDocSource, CXmlSerializingContext& serializingContext);
53
Georges-Henri Baroncec86c12012-09-04 17:30:28 +020054 /**
55 * Result string containing the XML informations
56 */
Georges-Henri Baron326a31d2012-06-28 12:05:09 +020057 string& _strResult;
Patrick Benavoli68a91282011-08-31 11:23:23 +020058};
59