XmlStreamDocSink.h revision 68a912857707864bbaaff9808717813105072a6e
168a912857707864bbaaff9808717813105072a6ePatrick Benavoli/* <auto_header>
268a912857707864bbaaff9808717813105072a6ePatrick Benavoli * <FILENAME>
368a912857707864bbaaff9808717813105072a6ePatrick Benavoli *
468a912857707864bbaaff9808717813105072a6ePatrick Benavoli * INTEL CONFIDENTIAL
568a912857707864bbaaff9808717813105072a6ePatrick Benavoli * Copyright © 2011 Intel
668a912857707864bbaaff9808717813105072a6ePatrick Benavoli * Corporation All Rights Reserved.
768a912857707864bbaaff9808717813105072a6ePatrick Benavoli *
868a912857707864bbaaff9808717813105072a6ePatrick Benavoli * The source code contained or described herein and all documents related to
968a912857707864bbaaff9808717813105072a6ePatrick Benavoli * the source code ("Material") are owned by Intel Corporation or its suppliers
1068a912857707864bbaaff9808717813105072a6ePatrick Benavoli * or licensors. Title to the Material remains with Intel Corporation or its
1168a912857707864bbaaff9808717813105072a6ePatrick Benavoli * suppliers and licensors. The Material contains trade secrets and proprietary
1268a912857707864bbaaff9808717813105072a6ePatrick Benavoli * and confidential information of Intel or its suppliers and licensors. The
1368a912857707864bbaaff9808717813105072a6ePatrick Benavoli * Material is protected by worldwide copyright and trade secret laws and
1468a912857707864bbaaff9808717813105072a6ePatrick Benavoli * treaty provisions. No part of the Material may be used, copied, reproduced,
1568a912857707864bbaaff9808717813105072a6ePatrick Benavoli * modified, published, uploaded, posted, transmitted, distributed, or
1668a912857707864bbaaff9808717813105072a6ePatrick Benavoli * disclosed in any way without Intel’s prior express written permission.
1768a912857707864bbaaff9808717813105072a6ePatrick Benavoli *
1868a912857707864bbaaff9808717813105072a6ePatrick Benavoli * No license under any patent, copyright, trade secret or other intellectual
1968a912857707864bbaaff9808717813105072a6ePatrick Benavoli * property right is granted to or conferred upon you by disclosure or delivery
2068a912857707864bbaaff9808717813105072a6ePatrick Benavoli * of the Materials, either expressly, by implication, inducement, estoppel or
2168a912857707864bbaaff9808717813105072a6ePatrick Benavoli * otherwise. Any license under such intellectual property rights must be
2268a912857707864bbaaff9808717813105072a6ePatrick Benavoli * express and approved by Intel in writing.
2368a912857707864bbaaff9808717813105072a6ePatrick Benavoli *
2468a912857707864bbaaff9808717813105072a6ePatrick Benavoli *  AUTHOR: Patrick Benavoli (patrickx.benavoli@intel.com)
2568a912857707864bbaaff9808717813105072a6ePatrick Benavoli * CREATED: 2011-06-01
2668a912857707864bbaaff9808717813105072a6ePatrick Benavoli * UPDATED: 2011-07-27
2768a912857707864bbaaff9808717813105072a6ePatrick Benavoli *
2868a912857707864bbaaff9808717813105072a6ePatrick Benavoli *
2968a912857707864bbaaff9808717813105072a6ePatrick Benavoli * </auto_header>
3068a912857707864bbaaff9808717813105072a6ePatrick Benavoli */
3168a912857707864bbaaff9808717813105072a6ePatrick Benavoli#pragma once
3268a912857707864bbaaff9808717813105072a6ePatrick Benavoli
3368a912857707864bbaaff9808717813105072a6ePatrick Benavoli#include "XmlSerializer.h"
3468a912857707864bbaaff9808717813105072a6ePatrick Benavoli#include "XmlSource.h"
3568a912857707864bbaaff9808717813105072a6ePatrick Benavoli
3668a912857707864bbaaff9808717813105072a6ePatrick Benavolistruct _xmlDoc;
3768a912857707864bbaaff9808717813105072a6ePatrick Benavolistruct _xmlNode;
3868a912857707864bbaaff9808717813105072a6ePatrick Benavoli
3968a912857707864bbaaff9808717813105072a6ePatrick Benavoliclass CXmlComposer : public CXmlSerializer
4068a912857707864bbaaff9808717813105072a6ePatrick Benavoli{
4168a912857707864bbaaff9808717813105072a6ePatrick Benavolipublic:
4268a912857707864bbaaff9808717813105072a6ePatrick Benavoli    CXmlComposer(const string& strXmlInstanceFile, const string& strXmlSchemaFile, const string& strRootElementType, CXmlSerializingContext& serializingContext);
4368a912857707864bbaaff9808717813105072a6ePatrick Benavoli    virtual ~CXmlComposer();
4468a912857707864bbaaff9808717813105072a6ePatrick Benavoli
4568a912857707864bbaaff9808717813105072a6ePatrick Benavoli    // open / close
4668a912857707864bbaaff9808717813105072a6ePatrick Benavoli    virtual bool open();
4768a912857707864bbaaff9808717813105072a6ePatrick Benavoli    virtual bool close();
4868a912857707864bbaaff9808717813105072a6ePatrick Benavoli
4968a912857707864bbaaff9808717813105072a6ePatrick Benavoli    // Composing contents
5068a912857707864bbaaff9808717813105072a6ePatrick Benavoli    void compose(const IXmlSource* pXmlSource);
5168a912857707864bbaaff9808717813105072a6ePatrick Benavoli
5268a912857707864bbaaff9808717813105072a6ePatrick Benavoliprivate:
5368a912857707864bbaaff9808717813105072a6ePatrick Benavoli    static string getTimeAsString();
5468a912857707864bbaaff9808717813105072a6ePatrick Benavoli};
5568a912857707864bbaaff9808717813105072a6ePatrick Benavoli
56