blob: 92e090a1f9794f4dfb02dd46295536ee693301b5 [file] [log] [blame]
/* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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.
*/
#ifndef __JSVC_ARGUMENTS_H__
#define __JSVC_ARGUMENTS_H__
#ifdef __cplusplus
extern "C"
{
#endif
/**
* The structure holding all parsed command line options.
*/
typedef struct {
/** The name of the PID file. */
char *pidf;
/** The name of the user. */
char *user;
/** The name of the JVM to use. */
char *name;
/** The JDK or JRE installation path (JAVA_HOME). */
char *home;
/** Working directory (defaults to /). */
char *cwd;
/** Options used to invoke the JVM. */
char **opts;
/** Number of JVM options. */
int onum;
/** The name of the class to invoke. */
char *clas;
/** Command line arguments to the class. */
char **args;
/** Number of class command line arguments. */
int anum;
/** Wether to detach from parent process or not. */
bool dtch;
/** Wether to print the VM version number or not. */
bool vers;
/** Show the VM version and continue. */
bool vershow;
/** Wether to display the help page or not. */
bool help;
/** Only check environment without running the service. */
bool chck;
/** Stop running jsvc */
bool stop;
/** number of seconds to until service started */
int wait;
/** max restarts **/
int restarts;
/** Install as a service (win32) */
bool install;
/** Remove when installed as a service (win32) */
bool remove;
/** Run as a service (win32) */
bool service;
/** Destination for stdout */
char *outfile;
/** Destination for stderr */
char *errfile;
/** Program name **/
char *procname;
/** Whether to redirect stdin to /dev/null or not. Defaults to true **/
bool redirectstdin;
/** What umask to use **/
int umask;
} arg_data;
/**
* Parse command line arguments.
*
* @param argc The number of command line arguments.
* @param argv Pointers to the different arguments.
* @return A pointer to a arg_data structure containing the parsed command
* line arguments, or NULL if an error was detected.
*/
arg_data *arguments(int argc, char *argv[]);
#ifdef __cplusplus
}
#endif
#endif /* ifndef __JSVC_ARGUMENTS_H__ */