| /* |
| * Copyright 2003-2004 The Apache Software Foundation. |
| // (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| * |
| * |
| * @author Samisa Abeysinghe (sabeysinghe@virtusa.com) |
| * |
| */ |
| |
| /* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */ |
| /* NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE */ |
| /* ---------------------------------------------------------------- */ |
| /* CHANGES TO hpp HEADER FILE MAY NEED TO BE PROPAGATED TO THE */ |
| /* C-EQUIVALENT HEADER FILE IN SUPPORT OF THE C-BINDING INTERFACES. */ |
| /* ---------------------------------------------------------------- */ |
| /* NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE NOTE */ |
| /* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */ |
| |
| #ifdef WIN32 |
| #pragma warning (disable : 4786) |
| #endif |
| |
| #if !defined(__AXIS_H_OF_AXIS_INCLUDED__) |
| #define __AXIS_H_OF_AXIS_INCLUDED__ |
| |
| #include <axis/TypeMapping.hpp> |
| |
| /** |
| * @file Axis.hpp |
| */ |
| |
| AXIS_CPP_NAMESPACE_START |
| |
| /** |
| * @class Axis |
| * |
| * Contains methods to initialize and terminate the Axis runtime. Creating a stub also initializes |
| * the Axis runtime and deleting the stub terminates it. So simple applications that only ever |
| * use one stub at a time do not need to call these methods. More complicated applications that |
| * initialize multiple stubs, use them and delete them later, should initialize Axis at the start |
| * of their application using Axis::initialize and terminate Axis at the very end of their |
| * application with Axis::terminate. Applications that use Axis in multiple threads should also |
| * call Axis:: initialize and terminate. |
| */ |
| class STORAGE_CLASS_INFO Axis |
| { |
| public: |
| /** |
| * @enum AXIS_TRACE_TYPE |
| * Trace types |
| */ |
| typedef enum |
| { |
| AXIS_TRACE_TYPE_ENTRY=0, |
| |
| AXIS_TRACE_TYPE_EXIT=1, |
| |
| AXIS_TRACE_TYPE_EXCEPTION=2, |
| |
| AXIS_TRACE_TYPE_DEBUG=3 |
| |
| } AXIS_TRACE_TYPE; |
| |
| /** |
| * Initializes the Axis runtime. |
| * @param bIsServer should be set to false for client applications. |
| */ |
| static void initialize(bool bIsServer); |
| |
| /** |
| * Terminates the Axis runtime. |
| */ |
| static void terminate(); |
| |
| /** |
| * Deletes storage allocated by the Axis engine, that is no longer required |
| * by the customer application. |
| * |
| * @param pValue |
| * @param type The XSDTYPE of the storage item to be deleted. |
| */ |
| static void AxisDelete(void* pValue, XSDTYPE type); |
| |
| /** |
| * Indicates if the Axis engine is running. |
| * This will return true after the first invocation of Axis::initialize()before |
| * the last invocation of Axis::terminate(). |
| * |
| * @return Indicate if Axis engine is still running. |
| */ |
| static bool isRunning(); |
| |
| /** |
| * Stop Axis engine. |
| */ |
| static void stopAxis(); |
| |
| /** |
| * Start Axis logging. This must be done prior to any activiy in order to propagate |
| * logging attributes to parser and transport. If there are active transports and |
| * parsers, you will not get trace records other than those associated with the |
| * the engine and newly instantiated transports and parsers. |
| * |
| * @param logFilePath Path to where trace records are written to. |
| * @param filter Trace filter. The string filter is a semicolon delimited string |
| * of possible filters. Possible filters include: |
| * |
| * stub - show trace records generated by stubs |
| * engine - show trace records generated by engine |
| * parser - show trace records generated by parser |
| * transport - show trace records generated by transport |
| * noEntryExit - do not show entry/exit trace records |
| * |
| * The default filter is "stub;engine;parser;transport". |
| * Specifying a NULL pointer or NULL string is equivalent to |
| * requesting the defailt filter. |
| */ |
| static int startTrace(const char* logFilePath, const char *logFilter=NULL); |
| |
| /** |
| * Stop Axis logging. This should be done as the last step when everything has been cleaned |
| * up. Otherwise, active transports and parsers will continue to trace. |
| */ |
| static void stopTrace(); |
| |
| /** |
| * Log trace. |
| * |
| * @param type - trace type |
| * @param functionName - class method or function for which trace record is being written. |
| * @param fmt - format as defined in printf and related functions. |
| * @param ... - variable nuumber of parameters. |
| */ |
| static void writeTrace(AXIS_TRACE_TYPE type, const char* functionName, const char * fmt, ...); |
| }; |
| |
| AXIS_CPP_NAMESPACE_END |
| |
| #endif // !defined(__AXIS_H_OF_AXIS_INCLUDED__) |
| |
| |
| |
| |
| |