//%///////////////////////////////////////////////////////////////////////////// // // Copyright (c) 2000 The Open Group, BMC Software, Tivoli Systems, IBM // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), // to deal in the Software without restriction, including without limitation // the rights to use, copy, modify, merge, publish, distribute, sublicense, // and/or sell copies of the Software, and to permit persons to whom the // Software is furnished to do so, subject to the following conditions: // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. // //============================================================================== // // Author: Mike Brasher (mbrasher@bmc.com) // // Modified By: // //%///////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// // // XmlWriter.h // //////////////////////////////////////////////////////////////////////////////// #ifndef Pegasus_XmlWriter_h #define Pegasus_XmlWriter_h #include #include #include #include #include #include #include PEGASUS_NAMESPACE_BEGIN class CIMConstQualifierDecl; class CIMConstClass; class CIMConstInstance; class PEGASUS_COMMON_LINKAGE XmlWriter { public: static void append(Array& out, Char16 x); static void append(Array& out, char x) { append(out, Char16(x)); } static void append(Array& out, const char* x); static void append(Array& out, const String& x); static void append(Array& out, Uint32 x); static void appendSpecial(Array& out, Char16 x); static void appendSpecial(Array& out, char x); static void appendSpecial(Array& out, const char* x); static void appendSpecial(Array& out, const String& x); static void append(Array& out, const Indentor& x); static void appendLocalNameSpaceElement( Array& out, const String& nameSpace); static void appendNameSpaceElement( Array& out, const String& nameSpace); static Array formatGetHeader( const char* documentPath); static Array formatMPostHeader( const char* host, const char* cimOperation, const char* cimMethod, const String& cimObject, const Array& content); static Array formatMethodResponseHeader( const Array& content); static Array formatMessageElement( Uint32 messageId, const Array& body); static Array formatSimpleReqElement( const Array& body); static Array formatSimpleRspElement( const Array& body); static Array formatIMethodCallElement( const char* name, const String& nameSpace, const Array& iParamValues); static Array formatIReturnValueElement( const Array& body); static Array formatIMethodResponseElement( const char* name, const Array& iParamValues); static Array& formatIParamValueElement( Array& out, const char* name, const Array& body); static Array formatErrorElement( CIMException::Code code, const char* description); static Array& appendBooleanParameter( Array& out, const char* parameterName, Boolean flag); static Array& appendClassNameParameter( Array& out, const char* parameterName, const String& className); static Array& appendQualifierNameParameter( Array& out, const char* parameterName, const String& qualifierName); static Array& appendClassParameter( Array& out, const char* parameterName, const CIMConstClass& cimClass); static Array& appendInstanceNameParameter( Array& out, const char* parameterName, const CIMReference& instanceName); static Array& appendInstanceParameter( Array& out, const char* parameterName, const CIMConstInstance& instance); static Array& appendQualifierDeclarationParameter( Array& out, const char* parameterName, const CIMConstQualifierDecl& qualifierDecl); static Array& appendClassNameElement( Array& out, const String& className); static Array& appendInstanceNameElement( Array& out, const CIMReference& instanceName); static Array& appendPropertyNameParameter( Array& out, const String& propertyName); static void indentedPrint( PEGASUS_STD(ostream)& os, const char* text, Uint32 indentChars = 2); static Array formatSimpleReqMessage( const char* host, const String& nameSpace, const char* iMethodName, const Array& body); static Array formatSimpleRspMessage( const char* iMethodName, const Uint32 messageId, const Array& body); static Uint32 getNextMessageId(); private: XmlWriter() { } }; PEGASUS_COMMON_LINKAGE Array& operator<<( Array& out, const char* x); PEGASUS_COMMON_LINKAGE Array& operator<<(Array& out, char x); PEGASUS_COMMON_LINKAGE Array& operator<<(Array& out, Char16 x); PEGASUS_COMMON_LINKAGE Array& operator<<( Array& out, const String& x); PEGASUS_COMMON_LINKAGE Array& operator<<( Array& out, const Indentor& x); PEGASUS_COMMON_LINKAGE Array& operator<<( Array& out, const Array& x); PEGASUS_COMMON_LINKAGE Array& operator<<( Array& out, Uint32 x); PEGASUS_NAMESPACE_END #endif /* Pegasus_XmlWriter_h */