libextractor  1.11
About: GNU libextractor is a library used to extract meta-data from files of arbitrary type.
  Fossies Dox: libextractor-1.11.tar.gz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

extractor_plugins.h
Go to the documentation of this file.
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  */
41 {
42  /**
43  * This is a linked list.
44  */
46 
47  /**
48  * Pointer to the plugin (as returned by lt_dlopen).
49  */
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  */
61 
62  /**
63  * Pointer to the function used for meta data extraction.
64  */
66 
67  /**
68  * Options for the plugin.
69  */
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  */
83 
84  /**
85  * Memory segment shared with the channel of this plugin, NULL for none.
86  */
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  */
101 
102  /**
103  * Is this plugin finished extracting for this round?
104  * 0: no, 1: yes
105  */
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
126 
127 #endif /* EXTRACTOR_PLUGINS_H */
EXTRACTOR_Options
Definition: extractor.h:57
void(* EXTRACTOR_extract_method)(struct EXTRACTOR_ExtractContext *ec)
Definition: extractor.h:537
int EXTRACTOR_plugin_load_(struct EXTRACTOR_PluginList *plugin)
plaform specifics
struct EXTRACTOR_Channel * channel
EXTRACTOR_extract_method extract_method
struct EXTRACTOR_PluginList * next
struct EXTRACTOR_SharedMemory * shm
enum EXTRACTOR_Options flags