1 /*
2 ** Copyright (C) 2014-2021 Cisco and/or its affiliates. All rights reserved.
3 ** Copyright (C) 2012-2013 Sourcefire, Inc.
4 **
5 ** This program is free software; you can redistribute it and/or modify
6 ** it under the terms of the GNU General Public License Version 2 as
7 ** published by the Free Software Foundation.  You may not use, modify or
8 ** distribute this program under any other version of the GNU General
9 ** Public License.
10 **
11 ** This program is distributed in the hope that it will be useful,
12 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
13 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 ** GNU General Public License for more details.
15 **
16 ** You should have received a copy of the GNU General Public License
17 ** along with this program; if not, write to the Free Software
18 ** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
19 **
20 ** Date: 01-27-2012
21 ** Author: Hui Cao <hcao@sourcefire.com>
22 */
23 
24 #ifndef _OUTPUT_H
25 #define _OUTPUT_H
26 
27 #include <stdio.h>
28 #include "output_common.h"
29 
30 
31 struct _SnortConfig;
32 
33 /* Definition of the structures returned by output_get_module_list(). */
34 typedef struct {
35     char *name;         /* Module name */
36     uint32_t version;   /* Module version */
37     uint32_t type;      /* Module capabilities */
38 } Output_Module_Info_t;
39 
40 /* Iterate through each of the output modules */
41 void * GetNextOutputModule(void *);
42 const char * GetOutputModuleName(void *);
43 uint32_t GetOutputModuleVersion(void *);
44 
45 /* Functions for loading, handling, and unloading output modules. */
46 
47 /*Load, unload output modules from directory*/
48 int output_load(const char *dir);
49 void output_unload(void);
50 
51 int output_load_module(const char *filename);
52 
53 int initOutputPlugin(void *);
54 #endif /* _OUTPUT_H */
55