diff options
Diffstat (limited to 'modules.h')
-rw-r--r-- | modules.h | 103 |
1 files changed, 0 insertions, 103 deletions
diff --git a/modules.h b/modules.h deleted file mode 100644 index 4782d319..00000000 --- a/modules.h +++ /dev/null @@ -1,103 +0,0 @@ -/* modules.h - * Definition for build-in and plug-ins module handler. - * - * The following definitions are to be used for modularization. Currently, - * the code is NOT complete. I am just adding pieces to it as I - * go along in designing the interface. - * rgerhards, 2007-07-19 - * - * - * File begun on 2007-07-22 by RGerhards - * - * Copyright 2007 Rainer Gerhards and Adiscon GmbH. - * - * This program 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; either version 2 - * of the License, or (at your option) any later version. - * - * 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * A copy of the GPL can be found in the file "COPYING" in this distribution. - */ -#ifndef MODULES_H_INCLUDED -#define MODULES_H_INCLUDED 1 - -#include "objomsr.h" - -typedef enum eModType_ { - eMOD_IN, /* input module */ - eMOD_OUT, /* output module */ - eMOD_FILTER /* filter module (not know yet if we will once have such at all...) */ -} eModType_t; - -/* how is this module linked? */ -typedef enum eModLinkType_ { - eMOD_LINK_STATIC, - eMOD_LINK_DYNAMIC_UNLOADED, /* dynalink module, currently not loaded */ - eMOD_LINK_DYNAMIC_LOADED /* dynalink module, currently loaded */ -} eModLinkType_t; - -typedef struct moduleInfo { - struct moduleInfo *pNext; /* support for creating a linked module list */ - int iIFVers; /* Interface version of module */ - eModType_t eType; /* type of this module */ - eModLinkType_t eLinkType; - uchar* pszName; /* printable module name, e.g. for dbgprintf */ - /* functions supported by all types of modules */ - rsRetVal (*modInit)(int, int*, rsRetVal(**)()); /* initialize the module */ - /* be sure to support version handshake! */ - rsRetVal (*modQueryEtryPt)(uchar *name, rsRetVal (**EtryPoint)()); /* query entry point addresses */ - rsRetVal (*isCompatibleWithFeature)(syslogFeature); - rsRetVal (*freeInstance)(void*);/* called before termination or module unload */ - rsRetVal (*getWriteFDForSelect)(void*,short *);/* called before termination or module unload */ - rsRetVal (*onSelectReadyWrite)(void*);/* called when fd is writeable after select() */ - rsRetVal (*needUDPSocket)(void*);/* called when fd is writeable after select() */ - rsRetVal (*dbgPrintInstInfo)(void*);/* called before termination or module unload */ - rsRetVal (*tryResume)(void*);/* called to see if module actin can be resumed now */ - rsRetVal (*modExit)(void); /* called before termination or module unload */ - rsRetVal (*modGetID)(void **); /* get its unique ID from module */ - /* below: parse a configuration line - return if processed - * or not. If not, must be parsed to next module. - */ - rsRetVal (*parseConfigLine)(uchar **pConfLine); - /* below: create an instance of this module. Most importantly the module - * can allocate instance memory in this call. - */ - rsRetVal (*createInstance)(); - union { - struct {/* data for input modules */ - /* input modules come after output modules are finished, I am - * currently not really thinking about them. rgerhards, 2007-07-19 - */ - } im; - struct {/* data for output modules */ - /* below: perform the configured action - */ - rsRetVal (*doAction)(uchar**, unsigned, void*); - rsRetVal (*parseSelectorAct)(uchar**, void**,omodStringRequest_t**); - } om; - } mod; - void *pModHdlr; /* handler to the dynamic library holding the module */ -} modInfo_t; - -/* prototypes */ -rsRetVal doModInit(rsRetVal (*modInit)(), uchar *name, void *pModHdlr); -modInfo_t *omodGetNxt(modInfo_t *pThis); -uchar *modGetName(modInfo_t *pThis); -uchar *modGetStateName(modInfo_t *pThis); -void modPrintList(void); -rsRetVal modUnloadAndDestructAll(void); -rsRetVal modUnloadAndDestructDynamic(void); - -#endif /* #ifndef MODULES_H_INCLUDED */ -/* - * vi:set ai: - */ |