//%///////////////////////////////////////////////////////////////////////////// // // Copyright (c) 2000, 2001 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 ABOVE COPYRIGHT NOTICE AND THIS PERMISSION NOTICE SHALL BE INCLUDED IN // ALL COPIES OR SUBSTANTIAL PORTIONS OF THE SOFTWARE. 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: // //%///////////////////////////////////////////////////////////////////////////// #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( const String& 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( CIMStatusCode code, const char* description); static Array& appendBooleanParameter( Array& out, const char* parameterName, Boolean flag); static Array& appendStringParameter( Array& out, const char* parameterName, const String& str); 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 Array& appendObjectNameParameter( Array& out, const char* name, const CIMReference& objectName); 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 String& messageId, const Array& body); static String 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 */