"Fossies" - the Fresh Open Source Software Archive 
Member "libextractor-1.11/src/main/extractor_plugins.h" (30 Jan 2021, 3323 Bytes) of package /linux/privat/libextractor-1.11.tar.gz:
As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style:
standard) with prefixed line numbers and
code folding option.
Alternatively you can here
view or
download the uninterpreted source code file.
For more information about "extractor_plugins.h" see the
Fossies "Dox" file reference documentation and the latest
Fossies "Diffs" side-by-side code changes report:
1.10_vs_1.11.
1 /*
2 This file is part of libextractor.
3 Copyright (C) 2002, 2003, 2004, 2005, 2006, 2009, 2012 Vidyut Samanta and Christian Grothoff
4
5 libextractor is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published
7 by the Free Software Foundation; either version 3, or (at your
8 option) any later version.
9
10 libextractor is distributed in the hope that it will be useful, but
11 WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with libextractor; see the file COPYING. If not, write to the
17 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 Boston, MA 02110-1301, USA.
19 */
20 /**
21 * @file main/extractor_plugins.h
22 * @brief code to load plugins
23 * @author Christian Grothoff
24 */
25 #ifndef EXTRACTOR_PLUGINS_H
26 #define EXTRACTOR_PLUGINS_H
27
28 #include "platform.h"
29 #include "extractor.h"
30 #include <signal.h>
31 #include <ltdl.h>
32
33
34 /**
35 * Linked list of extractor plugins. An application builds this list
36 * by telling libextractor to load various meta data extraction
37 * plugins. Plugins can also be unloaded (removed from this list,
38 * see EXTRACTOR_plugin_remove).
39 */
40 struct EXTRACTOR_PluginList
41 {
42 /**
43 * This is a linked list.
44 */
45 struct EXTRACTOR_PluginList *next;
46
47 /**
48 * Pointer to the plugin (as returned by lt_dlopen).
49 */
50 void *libraryHandle;
51
52 /**
53 * Name of the library (i.e., 'libextractor_foo.so')
54 */
55 char *libname;
56
57 /**
58 * Short name of the plugin (i.e., 'foo')
59 */
60 char *short_libname;
61
62 /**
63 * Pointer to the function used for meta data extraction.
64 */
65 EXTRACTOR_extract_method extract_method;
66
67 /**
68 * Options for the plugin.
69 */
70 char *plugin_options;
71
72 /**
73 * Special options for the plugin
74 * (as returned by the plugin's "options" method;
75 * typically NULL).
76 */
77 const char *specials;
78
79 /**
80 * Channel to communicate with out-of-process plugin, NULL if not setup.
81 */
82 struct EXTRACTOR_Channel *channel;
83
84 /**
85 * Memory segment shared with the channel of this plugin, NULL for none.
86 */
87 struct EXTRACTOR_SharedMemory *shm;
88
89 /**
90 * A position this plugin wants us to seek to. -1 if it's finished.
91 * A positive value from the end of the file is used of 'whence' is
92 * SEEK_END; a postive value from the start is used of 'whence' is
93 * SEEK_SET. 'SEEK_CUR' is never used.
94 */
95 int64_t seek_request;
96
97 /**
98 * Flags to control how the plugin is executed.
99 */
100 enum EXTRACTOR_Options flags;
101
102 /**
103 * Is this plugin finished extracting for this round?
104 * 0: no, 1: yes
105 */
106 int round_finished;
107
108 /**
109 * 'whence' value for the seek operation;
110 * 0 = SEEK_SET, 1 = SEEK_CUR, 2 = SEEK_END.
111 * Note that 'SEEK_CUR' is never used here.
112 */
113 uint16_t seek_whence;
114
115 };
116
117
118 /**
119 * Load a plugin.
120 *
121 * @param plugin plugin to load
122 * @return 0 on success, -1 on error
123 */
124 int
125 EXTRACTOR_plugin_load_ (struct EXTRACTOR_PluginList *plugin);
126
127 #endif /* EXTRACTOR_PLUGINS_H */