87 lines
2.1 KiB
C
87 lines
2.1 KiB
C
#ifndef _MODINFO_H
|
|
#define _MODINFO_H
|
|
/*
|
|
* This file is distributed as part of MaxScale. It is free
|
|
* software: you can redistribute it and/or modify it under the terms of the
|
|
* GNU General Public License as published by the Free Software Foundation,
|
|
* version 2.
|
|
*
|
|
* This program is distributed in the hope that it will be useful, but WITHOUT
|
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
|
* details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License along with
|
|
* this program; if not, write to the Free Software Foundation, Inc., 51
|
|
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
*
|
|
* Copyright MariaDB Corporation Ab 2014
|
|
*/
|
|
|
|
/**
|
|
* @file modinfo.h The module information interface
|
|
*
|
|
* @verbatim
|
|
* Revision History
|
|
*
|
|
* Date Who Description
|
|
* 02/06/14 Mark Riddoch Initial implementation
|
|
*
|
|
* @endverbatim
|
|
*/
|
|
|
|
/**
|
|
* The status of the module. This gives some idea of the module
|
|
* maturity.
|
|
*/
|
|
typedef enum {
|
|
MODULE_IN_DEVELOPMENT = 0,
|
|
MODULE_ALPHA_RELEASE,
|
|
MODULE_BETA_RELEASE,
|
|
MODULE_GA,
|
|
MODULE_EXPERIMENTAL
|
|
} MODULE_STATUS;
|
|
|
|
/**
|
|
* The API implemented by the module
|
|
*/
|
|
typedef enum {
|
|
MODULE_API_PROTOCOL = 0,
|
|
MODULE_API_ROUTER,
|
|
MODULE_API_MONITOR,
|
|
MODULE_API_FILTER,
|
|
MODULE_API_AUTHENTICATION
|
|
} MODULE_API;
|
|
|
|
/**
|
|
* The module version structure.
|
|
*
|
|
* The rules for changing these values are:
|
|
*
|
|
* Any change that affects an inexisting call in the API in question,
|
|
* making the new API no longer compatible with the old,
|
|
* must increment the major version.
|
|
*
|
|
* Any change that adds to the API, but does not alter the existing API
|
|
* calls, must increment the minor version.
|
|
*
|
|
* Any change that is purely cosmetic and does not affect the calling
|
|
* conventions of the API must increment only the patch version number.
|
|
*/
|
|
typedef struct {
|
|
int major;
|
|
int minor;
|
|
int patch;
|
|
} MODULE_VERSION;
|
|
|
|
/**
|
|
* The module information structure
|
|
*/
|
|
typedef struct {
|
|
MODULE_API modapi;
|
|
MODULE_STATUS status;
|
|
MODULE_VERSION api_version;
|
|
char *description;
|
|
} MODULE_INFO;
|
|
#endif
|