blob: 15ffa43c0d5a3c645d6ea7bc4fefd354141c4902 [file] [log] [blame]
/*
* Copyright 1999-2004 The Apache Software Foundation
*
* 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.
*/
/**
* @package Configuration
* @author Pier Fumagalli <mailto:pier@betaversion.org>
* @version $Id$
*/
#ifndef _WA_CONFIG_H_
#define _WA_CONFIG_H_
/**
* The WebApp Library connection structure.
* <br>
* This structure holds all required data required by a connection provider
* to connect to a web-application container and to handle HTTP requests.
*/
struct wa_connection {
/** The connection name. */
char *name;
/** The connection provider. */
wa_provider *prov;
/** The connection parameter (as in the configuration file). */
char *parm;
/** The provider-specific configuration member for this connection. */
void *conf;
};
/**
* The WebApp Library virtual host structure.
* <br>
* This structure holds informations related to a virtual host under which
* web-applications are deployed.
*/
struct wa_virtualhost {
/** The virtual host name. */
char *name;
/** The virtual host port. */
int port;
/** The list of all applications deployed in this virtual hosts. */
wa_chain *apps;
};
/**
* The WebApp Library application structure.
* <br>
* This structure holds all informations associated with an application.
* Applications are not grouped in virtual hosts inside the library as in
* specific cases (like when load balancing is in use), multiple applications
* can share the same root URL path, or (like when applications are shared),
* a single web application can be shared across multiple virtual host.
*/
struct wa_application {
/** The application virtual host. */
wa_virtualhost *host;
/** The application connection. */
wa_connection *conn;
/** The provider-specific configuration member for this application. */
void *conf;
/** The application name. */
char *name;
/** The application root URL path. */
char *rpth;
/** The local expanded application path (if any). */
char *lpth;
/** The list of allowed (can be served by the web server) URL-patterns. */
wa_chain *allw;
/** The list of denied (can't be served by the web server) URL-patterns. */
wa_chain *deny;
/** Wether this web-application has been deployed or not. */
wa_boolean depl;
};
/**
* Allocate and set up a <code>wa_application</code> member.
*
* @param a Where the pointer to where the <code>wa_application</code> member
* must be stored.
* @param n The application name. This parameter will be passed to the
* application container as its unique selection key within its
* array of deployable applications (for example the .war file name).
* @param p The root URL path of the web application to deploy.
* @return <b>NULL</b> on success or an error message on faliure.
*/
const char *wa_capplication(wa_application **a,
const char *n,
const char *p);
/**
* Allocate and set up a <code>wa_virtualhost</code> member.
*
* @param h The pointer to where the <code>wa_virtualhost</code> member must
* be stored.
* @param n The virtual host base name.
* @param p The virtual host primary port.
* @return <b>NULL</b> on success or an error message on faliure.
*/
const char *wa_cvirtualhost(wa_virtualhost **h,
const char *n,
int p);
/**
* Allocate and set up a <code>wa_connection</code> member.
*
* @param c Where the pointer to where the <code>wa_connection</code> member
* must be stored.
* @param n The connection name.
* @param p The connection provider name.
* @param a The connection provider parameter from a configuration file.
* @return <b>NULL</b> on success or an error message on faliure.
*/
const char *wa_cconnection(wa_connection **c,
const char *n,
const char *p,
const char *a);
#endif /* ifndef _WA_CONFIG_H_ */