| /* |
| * Copyright 2005 The Apache Software Foundation. |
| // (c) Copyright IBM Corp. 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. |
| * |
| */ |
| |
| /** |
| * @file AxisCPPConfigDefaults.hpp |
| * |
| * @author John Kelly (john_kelly@uk.ibm.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 */ |
| /* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! */ |
| |
| #if !defined(__AXIS_AXISCPPCONFIGDEFAULTS_H_OF_AXIS_INCLUDED__) |
| #define __AXIS_AXISCPPCONFIGDEFAULTS_H_OF_AXIS_INCLUDED__ |
| |
| #include <axis/GDefine.hpp> |
| #include <string> |
| /** |
| * @class AxisCPPConfigDefaults |
| * @brief class for programmatically setting configuration defaults. |
| * |
| * AxisCPPConfigDefaults allows you to apply new configuration |
| * defaults, prior to the instantiation of the first web service |
| * class in the application. These programmer-set defaults may be |
| * over-ridden by the external factors, such as.. |
| * - the values in axiscpp.conf |
| * - the value of AXISCPP_DEPLOY |
| * |
| * The get/set methods don't have any effect on the ACTUAL defaults. They |
| * are mearly a bundle of values which are set on the ACTUAL defaults when |
| * the apply() method is issued. |
| * |
| * It consists of... |
| * (a) get/set methods for each of the values to be found |
| * in the configuration file, namely: |
| * - ClientLog |
| * - ClientWSDDFile |
| * - XMLParserLibrary |
| * - HTTPTransportLibrary |
| * - HTTPChannelLibrary |
| * - HTTPSSLChannelLibrary |
| * - NodeName |
| * - ListenPort |
| * - SecureInfo |
| * When the first web-services class is instantiated any values set in the config |
| * file would over-ride those set by this class. |
| * (b) get/set methods for AxisHome |
| * This is the programmatic equivalent of the AXISCPP_DEPLOY |
| * environment variable. |
| * When the first class is instantiated, if AXISCPP_DEPLOY is set |
| * it will over-ride the value set by this class. |
| * (c) The apply() method takes any values that have been set on the object |
| * and set them as the Axis CPP defaults for this process. |
| * |
| * Exceptions thrown: AxisConfigException |
| * |
| * Once the first web service is instantiated, new defaults may no longer |
| * be applied. If this is attempted an AxisConfigException is thrown. |
| * |
| * Usage examples |
| * (a) Setting the location of the axiscpp.conf file to the |
| * "current working directory" |
| * |
| * AxisCPPDefaultConfig defConfig; |
| * defConfig.setAxisHome("."); |
| * defConfig.apply(); |
| * |
| * |
| * @author John Kelly (john_kelly@uk.ibm.com) |
| */ |
| |
| AXIS_CPP_NAMESPACE_START |
| |
| /* |
| * Forward declarations. |
| */ |
| |
| class AxisCPPConfigDefaultsImpl; |
| |
| /* |
| * Class definition. |
| */ |
| |
| class STORAGE_CLASS_INFO AxisCPPConfigDefaults |
| { |
| public: |
| |
| AxisCPPConfigDefaults(); |
| ~AxisCPPConfigDefaults(); |
| |
| /** |
| * Get the location of the client log file. This is the programmatic equivalent of |
| * reading the ClientLogPath parameter in the axiscpp.conf configuration file. |
| * |
| * This parameter is only used when Axis is operating as a client. |
| * |
| * @return location of the client log file. |
| */ |
| char* getClientLog(); |
| |
| /** |
| * Get the location of the client WSDD file. This is the programmatic equivalent of |
| * reading the ClientWSDDFilePath parameter in the axiscpp.conf configuration file. |
| * |
| * This parameter is only used when Axis is operating as a client. |
| * |
| * @return location of the client WSDD file. |
| */ |
| char* getClientWSDDFile(); |
| |
| /** |
| * Get the value for the XML Parser library name. This is the programmatic equivalent of |
| * reading the XMLParser parameter in the axiscpp.conf configuration file. |
| * |
| * @return name of the XML Parser library. |
| */ |
| char* getXMLParserLibrary(); |
| |
| /** |
| * Get the value for the HTTP transport library name. This is the programmatic equivalent of |
| * reading the Transport_http parameter in the axiscpp.conf configuration file. |
| * |
| * This parameter is only used when Axis is operating as a client. |
| * |
| * @return name of the HTTP Transport library. |
| */ |
| char* getHTTPTransportLibrary(); |
| |
| /** |
| * Get the value for the HTTP channel library name. This is the programmatic equivalent of |
| * reading the Channel_HTTP parameter in the axiscpp.conf configuration file. |
| * |
| * This parameter is only used when Axis is operating as a client. |
| * |
| * @return name of the HTTP Channel library. |
| */ |
| char* getHTTPChannelLibrary(); |
| |
| /** |
| * Get the value for the HTTP SSL channel library name. This is the programmatic equivalent of |
| * reading the Channel_HTTP_SSL parameter in the axiscpp.conf configuration file. |
| * |
| * This parameter is only used when Axis is operating as a client. |
| * |
| * @return name of the HTTP SSL Channel library. |
| */ |
| char* getHTTPSSLChannelLibrary(); |
| |
| /** |
| * Get the value for NodeName. This is the programmatic equivalent of |
| * reading the NodeName parameter in the axiscpp.conf configuration file. |
| * |
| * This parameter is only used when Axis is operating as a server. |
| * |
| * @return nodeName to be set. |
| */ |
| char* getNodeName(); |
| |
| /** |
| * Get the value for ListenPort. This is the programmatic equivalent of |
| * reading the ListenPort parameter in the axiscpp.conf configuration file. |
| * |
| * This parameter is only used when Axis is operating as a server. |
| * |
| * @return listenPort to be set. |
| */ |
| char* getListenPort(); |
| |
| /** |
| * Get the value for SecureInfo. This is the programmatic equivalent of |
| * reading the SecureInfo parameter in the axiscpp.conf configuration file. |
| * |
| * This parameter is only used when Axis is operating as a client. |
| * |
| * @return secureInfo to be set. |
| */ |
| char* getSecureInfo(); |
| |
| /** |
| * Get the location of AxisHome. This is the programmatic equivalent of |
| * using the environment variable AXISCPP_DEPLOY. |
| * |
| * @return location of AxisHome. |
| */ |
| char* getAxisHome(); |
| |
| /** |
| * Set the location of the client log file. This is the programmatic equivalent of |
| * setting the ClientLogPath parameter in the axiscpp.conf configuration file. |
| * |
| * If this parameter has been set in the axiscpp.conf configuration file |
| * this value will be ignored. |
| * |
| * This parameter is only used when Axis is operating as a client. |
| * |
| * @param location of the client log file. |
| */ |
| void setClientLog(char* location); |
| |
| /** |
| * Set the location of the client WSDD file. This is the programmatic equivalent of |
| * setting the ClientWSDDFilePath parameter in the axiscpp.conf configuration file. |
| * |
| * If this parameter has been set in the axiscpp.conf configuration file |
| * this value will be ignored. |
| * |
| * This parameter is only used when Axis is operating as a client. |
| * |
| * @param location of the client WSDD file. |
| */ |
| void setClientWSDDFile(char* location); |
| |
| /** |
| * Set the value for the XML Parser library name. This is the programmatic equivalent of |
| * setting the XMLParser parameter in the axiscpp.conf configuration file. |
| * |
| * If this parameter has been set in the axiscpp.conf configuration file |
| * this value will be ignored. |
| * |
| * @param name of the XML Parser library. |
| */ |
| void setXMLParserLibrary(char* name); |
| |
| /** |
| * Set the value for the HTTP transport library name. This is the programmatic equivalent of |
| * setting the Transport_http parameter in the axiscpp.conf configuration file. |
| * |
| * If this parameter has been set in the axiscpp.conf configuration file |
| * this value will be ignored. |
| * |
| * This parameter is only used when Axis is operating as a client. |
| * |
| * @param name of the HTTP Transport library. |
| */ |
| void setHTTPTransportLibrary(char* name); |
| |
| /** |
| * Set the value for the HTTP channel library name. This is the programmatic equivalent of |
| * setting the Channel_HTTP parameter in the axiscpp.conf configuration file. |
| * |
| * If this parameter has been set in the axiscpp.conf configuration file |
| * this value will be ignored. |
| * |
| * This parameter is only used when Axis is operating as a client. |
| * |
| * @param name of the HTTP Channel library. |
| */ |
| void setHTTPChannelLibrary(char* name); |
| |
| /** |
| * Set the value for the HTTP SSL channel library name. This is the programmatic equivalent of |
| * setting the Channel_HTTP_SSL parameter in the axiscpp.conf configuration file. |
| * |
| * If this parameter has been set in the axiscpp.conf configuration file |
| * this value will be ignored. |
| * |
| * This parameter is only used when Axis is operating as a client. |
| * |
| * @param name of the HTTP SSL Channel library. |
| */ |
| void setHTTPSSLChannelLibrary(char* name); |
| |
| /** |
| * Set the value for NodeName. This is the programmatic equivalent of |
| * setting the NodeName parameter in the axiscpp.conf configuration file. |
| * |
| * If this parameter has been set in the axiscpp.conf configuration file |
| * this value will be ignored. |
| * |
| * This parameter is only used when Axis is operating as a server. |
| * |
| * @param nodeName to be set. |
| */ |
| void setNodeName(char* nodeName); |
| |
| /** |
| * Set the value for ListenPort. This is the programmatic equivalent of |
| * setting the ListenPort parameter in the axiscpp.conf configuration file. |
| * |
| * If this parameter has been set in the axiscpp.conf configuration file |
| * this value will be ignored. |
| * |
| * This parameter is only used when Axis is operating as a server. |
| * |
| * @param listenPort to be set. |
| */ |
| void setListenPort(char* listenPort); |
| |
| /** |
| * Set the value for SecureInfo. This is the programmatic equivalent of |
| * setting the SecureInfo parameter in the axiscpp.conf configuration file. |
| * |
| * If this parameter has been set in the axiscpp.conf configuration file |
| * this value will be ignored. |
| * |
| * This parameter is only used when Axis is operating as a client. |
| * |
| * @param secureInfo to be set. |
| */ |
| void setSecureInfo(char* secureInfo); |
| |
| /** |
| * Set the location of AxisHome. This is the programmatic equivalent of |
| * setting the environment variable AXISCPP_DEPLOY. |
| * |
| * If the environment variable AXISCPP_DEPLOY has been set this value |
| * will be ignored. |
| * |
| * @param location of axis home. |
| */ |
| void setAxisHome(char* location); |
| |
| /** |
| * Apply the set configuration values. |
| * |
| * This takes any values that have been set and applies as the Axis C++ |
| * defaults for this process, it is not possible to then re-apply. |
| * |
| * @throw AxisException if the configuration defaults have already been set. |
| */ |
| void apply(); |
| |
| protected: |
| /** |
| * Axis C++ engine implementation |
| */ |
| AxisCPPConfigDefaultsImpl *m_pImpl; |
| |
| }; |
| |
| AXIS_CPP_NAMESPACE_END |
| |
| #endif |
| |