add new api docs.
[lms] / www / api / lightmediascanner__private_8h-source.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
3 <title>Light Media Scanner: src/lib/lightmediascanner_private.h Source File</title>
4 <link href="tabs.css" rel="stylesheet" type="text/css">
5 <link href="doxygen.css" rel="stylesheet" type="text/css">
6 </head><body>
7 <!-- Generated by Doxygen 1.5.8 -->
8 <div class="navigation" id="top">
9   <div class="tabs">
10     <ul>
11       <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
12       <li><a href="modules.html"><span>Modules</span></a></li>
13       <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
14       <li class="current"><a href="files.html"><span>Files</span></a></li>
15     </ul>
16   </div>
17   <div class="tabs">
18     <ul>
19       <li><a href="files.html"><span>File&nbsp;List</span></a></li>
20       <li><a href="globals.html"><span>Globals</span></a></li>
21     </ul>
22   </div>
23 <h1>src/lib/lightmediascanner_private.h</h1><a href="lightmediascanner__private_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 
24 <a name="l00021"></a>00021 <span class="preprocessor">#ifndef _LIGHTMEDIASCANNER_PRIVATE_H_</span>
25 <a name="l00022"></a><a class="code" href="lightmediascanner__private_8h.html#c9783e2105f145aa71f541e0825707ed">00022</a> <span class="preprocessor"></span><span class="preprocessor">#define _LIGHTMEDIASCANNER_PRIVATE_H_ 1</span>
26 <a name="l00023"></a>00023 <span class="preprocessor"></span>
27 <a name="l00024"></a>00024 <span class="preprocessor">#ifdef __GNUC__</span>
28 <a name="l00025"></a>00025 <span class="preprocessor"></span><span class="preprocessor"># if __GNUC__ &gt; 3 || (__GNUC__ == 3 &amp;&amp; __GNUC_MINOR__ &gt;= 4)</span>
29 <a name="l00026"></a>00026 <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_NON_NULL(...) __attribute__((nonnull(__VA_ARGS__)))</span>
30 <a name="l00027"></a>00027 <span class="preprocessor"></span><span class="preprocessor"># else</span>
31 <a name="l00028"></a>00028 <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_NON_NULL(...)</span>
32 <a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor"># endif</span>
33 <a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor">#else</span>
34 <a name="l00031"></a><a class="code" href="lightmediascanner__private_8h.html#6fe68cac0abf3e2ca61141920414e93a">00031</a> <span class="preprocessor"></span><span class="preprocessor">#  define GNUC_NON_NULL(...)</span>
35 <a name="l00032"></a>00032 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
36 <a name="l00033"></a>00033 <span class="preprocessor"></span>
37 <a name="l00034"></a>00034 <span class="preprocessor">#include "<a class="code" href="lightmediascanner_8h.html">lightmediascanner.h</a>"</span>
38 <a name="l00035"></a>00035 <span class="preprocessor">#include "<a class="code" href="lightmediascanner__plugin_8h.html">lightmediascanner_plugin.h</a>"</span>
39 <a name="l00036"></a>00036 <span class="preprocessor">#include "<a class="code" href="lightmediascanner__charset__conv_8h.html">lightmediascanner_charset_conv.h</a>"</span>
40 <a name="l00037"></a>00037 <span class="preprocessor">#include &lt;sys/types.h&gt;</span>
41 <a name="l00038"></a>00038 <span class="preprocessor">#include &lt;poll.h&gt;</span>
42 <a name="l00039"></a>00039 <span class="preprocessor">#include &lt;limits.h&gt;</span>
43 <a name="l00040"></a>00040 <span class="preprocessor">#include &lt;sqlite3.h&gt;</span>
44 <a name="l00041"></a>00041 
45 <a name="l00042"></a><a class="code" href="lightmediascanner__private_8h.html#e78bf7e06bbba1c42b740fef55cf20f8">00042</a> <span class="preprocessor">#define PATH_SIZE PATH_MAX</span>
46 <a name="l00043"></a>00043 <span class="preprocessor"></span>
47 <a name="l00044"></a><a class="code" href="structfds.html">00044</a> <span class="keyword">struct </span><a class="code" href="structfds.html">fds</a> {
48 <a name="l00045"></a><a class="code" href="structfds.html#c49bfa8d58564d4c483eb434b9ff5710">00045</a>     <span class="keywordtype">int</span> <a class="code" href="structfds.html#c49bfa8d58564d4c483eb434b9ff5710">r</a>;
49 <a name="l00046"></a><a class="code" href="structfds.html#d13e19697072e306771103286a8316d0">00046</a>     <span class="keywordtype">int</span> <a class="code" href="structfds.html#d13e19697072e306771103286a8316d0">w</a>;
50 <a name="l00047"></a>00047 };
51 <a name="l00048"></a>00048 
52 <a name="l00049"></a><a class="code" href="structcinfo.html">00049</a> <span class="keyword">struct </span><a class="code" href="structcinfo.html">cinfo</a> {
53 <a name="l00050"></a><a class="code" href="structcinfo.html#eff7e00325ac7d8674f42f4bfc198b5a">00050</a>     <a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>;
54 <a name="l00051"></a>00051 };
55 <a name="l00052"></a>00052 
56 <a name="l00053"></a>00053 <span class="comment">/* info to be carried along lms_process() and lms_check() */</span>
57 <a name="l00054"></a><a class="code" href="structpinfo.html">00054</a> <span class="keyword">struct </span><a class="code" href="structpinfo.html">pinfo</a> {
58 <a name="l00055"></a><a class="code" href="structpinfo.html#46a4fc606bd47def48714760afcbc18b">00055</a>     <span class="keyword">struct </span><a class="code" href="structcinfo.html">cinfo</a> <a class="code" href="structpinfo.html#46a4fc606bd47def48714760afcbc18b">common</a>;
59 <a name="l00056"></a><a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">00056</a>     pid_t <a class="code" href="structpinfo.html#d31b28f6373d19531cd208c4c2a71a51">child</a>;
60 <a name="l00057"></a><a class="code" href="structpinfo.html#246dfd29e81101866ccb01cc70224156">00057</a>     <span class="keyword">struct </span><a class="code" href="structfds.html">fds</a> <a class="code" href="structpinfo.html#246dfd29e81101866ccb01cc70224156">master</a>;
61 <a name="l00058"></a><a class="code" href="structpinfo.html#62bbc538af7f9e1d6aa9073458d5cc52">00058</a>     <span class="keyword">struct </span><a class="code" href="structfds.html">fds</a> <a class="code" href="structpinfo.html#62bbc538af7f9e1d6aa9073458d5cc52">slave</a>;
62 <a name="l00059"></a><a class="code" href="structpinfo.html#ee9c21ae165e7daf968a7ed87c736076">00059</a>     <span class="keyword">struct </span>pollfd <a class="code" href="structpinfo.html#ee9c21ae165e7daf968a7ed87c736076">poll</a>;
63 <a name="l00060"></a>00060 };
64 <a name="l00061"></a>00061 
65 <a name="l00062"></a>00062 <span class="comment">/* same as struct pinfo for single process versions */</span>
66 <a name="l00063"></a><a class="code" href="structsinfo.html">00063</a> <span class="keyword">struct </span><a class="code" href="structsinfo.html">sinfo</a> {
67 <a name="l00064"></a><a class="code" href="structsinfo.html#aa9d846b49c394348027d31e49c535be">00064</a>     <span class="keyword">struct </span><a class="code" href="structcinfo.html">cinfo</a> <a class="code" href="structsinfo.html#aa9d846b49c394348027d31e49c535be">common</a>;
68 <a name="l00065"></a><a class="code" href="structsinfo.html#e15c5adc74f2f712a8becebff37a06d4">00065</a>     <span class="keyword">struct </span><a class="code" href="structsinfo.html#e15c5adc74f2f712a8becebff37a06d4">db</a> *<a class="code" href="structsinfo.html#e15c5adc74f2f712a8becebff37a06d4">db</a>;
69 <a name="l00066"></a><a class="code" href="structsinfo.html#453d67e0467608c10700c7217cfe19fd">00066</a>     <span class="keywordtype">void</span> **<a class="code" href="structsinfo.html#453d67e0467608c10700c7217cfe19fd">parser_match</a>;
70 <a name="l00067"></a><a class="code" href="structsinfo.html#4dc79e3c97d069939b8ba2d65d85fa1f">00067</a>     <span class="keywordtype">int</span> <a class="code" href="structsinfo.html#4dc79e3c97d069939b8ba2d65d85fa1f">commit_counter</a>;
71 <a name="l00068"></a>00068 };
72 <a name="l00069"></a>00069 
73 <a name="l00070"></a><a class="code" href="structparser.html">00070</a> <span class="keyword">struct </span><a class="code" href="structparser.html">parser</a> {
74 <a name="l00071"></a><a class="code" href="structparser.html#6c71e3299d4bac660320e7ca935f9b32">00071</a>     <a class="code" href="structlms__plugin.html">lms_plugin_t</a> *<a class="code" href="structparser.html#6c71e3299d4bac660320e7ca935f9b32">plugin</a>;
75 <a name="l00072"></a><a class="code" href="structparser.html#3dd2a049d1cd9229ec33645e28803e0a">00072</a>     <span class="keywordtype">void</span> *<a class="code" href="structparser.html#3dd2a049d1cd9229ec33645e28803e0a">dl_handle</a>;
76 <a name="l00073"></a><a class="code" href="structparser.html#f29cac42dbdf498606fae3f5b9fc3762">00073</a>     <span class="keywordtype">char</span> *<a class="code" href="structparser.html#f29cac42dbdf498606fae3f5b9fc3762">so_path</a>;
77 <a name="l00074"></a>00074 };
78 <a name="l00075"></a>00075 
79 <a name="l00076"></a><a class="code" href="structlms.html">00076</a> <span class="keyword">struct </span><a class="code" href="structlms.html">lms</a> {
80 <a name="l00077"></a><a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">00077</a>     <span class="keyword">struct </span><a class="code" href="structparser.html">parser</a> *<a class="code" href="structlms.html#52883423c9a1276420ba2bb9b50a138c">parsers</a>;
81 <a name="l00078"></a><a class="code" href="structlms.html#9cdd3a937a0a2bd4515e9e888bb519e3">00078</a>     <span class="keywordtype">int</span> <a class="code" href="structlms.html#9cdd3a937a0a2bd4515e9e888bb519e3">n_parsers</a>;
82 <a name="l00079"></a><a class="code" href="structlms.html#eba2db305bafddedf143ff7b9f2396db">00079</a>     <a class="code" href="group__LMS__CHARSET.html#g50e57a19bb3d062fe7eea437a8b8e949">lms_charset_conv_t</a> *<a class="code" href="structlms.html#eba2db305bafddedf143ff7b9f2396db">cs_conv</a>;
83 <a name="l00080"></a><a class="code" href="structlms.html#02e767169813808f193c23733ba89b4b">00080</a>     <span class="keywordtype">char</span> *<a class="code" href="structlms.html#02e767169813808f193c23733ba89b4b">db_path</a>;
84 <a name="l00081"></a><a class="code" href="structlms.html#0f545adf2fc37994b7f55f7ea7aac555">00081</a>     <span class="keywordtype">int</span> <a class="code" href="structlms.html#0f545adf2fc37994b7f55f7ea7aac555">slave_timeout</a>;
85 <a name="l00082"></a>00082     <span class="keyword">struct </span>{
86 <a name="l00083"></a><a class="code" href="structlms.html#94615d22fba40d580a8a0055d28221c4">00083</a>         <a class="code" href="lightmediascanner_8h.html#117b4bb24ec8fc48fc4e6f0d7fa9ea3a">lms_progress_callback_t</a> <a class="code" href="structlms.html#94615d22fba40d580a8a0055d28221c4">cb</a>;
87 <a name="l00084"></a><a class="code" href="structlms.html#2416f15bfd15aaa5e75606b5a0686362">00084</a>         <span class="keywordtype">void</span> *<a class="code" href="structlms.html#2416f15bfd15aaa5e75606b5a0686362">data</a>;
88 <a name="l00085"></a><a class="code" href="structlms.html#3f04a1830b8ffa69c9da089b7e6fb258">00085</a>         <a class="code" href="lightmediascanner_8h.html#55ee3894f334dc5b30431bf94971f110">lms_free_callback_t</a> <a class="code" href="structlms.html#3f04a1830b8ffa69c9da089b7e6fb258">free_data</a>;
89 <a name="l00086"></a>00086     } <a class="code" href="structlms.html#3f4bc299aa74c9255b730e106e0e7a8f">progress</a>;
90 <a name="l00087"></a><a class="code" href="structlms.html#1dc82aac2ab3ff643027878bb1aa3cb8">00087</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structlms.html#1dc82aac2ab3ff643027878bb1aa3cb8">commit_interval</a>;
91 <a name="l00088"></a><a class="code" href="structlms.html#bb03533445b77299e964b2ec02bca039">00088</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structlms.html#bb03533445b77299e964b2ec02bca039">is_processing</a>:1;
92 <a name="l00089"></a><a class="code" href="structlms.html#d028e3681568215f6facd7d477c74461">00089</a>     <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structlms.html#d028e3681568215f6facd7d477c74461">stop_processing</a>:1;
93 <a name="l00090"></a>00090 };
94 <a name="l00091"></a>00091 
95 <a name="l00092"></a><a class="code" href="lightmediascanner__private_8h.html#ca9b2668fa08b18c630e16d1f7f702a7">00092</a> <span class="keyword">typedef</span> int (*<a class="code" href="lightmediascanner__private_8h.html#ca9b2668fa08b18c630e16d1f7f702a7">process_file_callback_t</a>)(<span class="keyword">struct </span><a class="code" href="structcinfo.html">cinfo</a> *info, <span class="keywordtype">int</span> base, <span class="keywordtype">char</span> *path, <span class="keyword">const</span> <span class="keywordtype">char</span> *name);
96 <a name="l00093"></a><a class="code" href="lightmediascanner__private_8h.html#818aa1ae6bb03151823bbd9b56bd0801">00093</a> <span class="keyword">typedef</span> int (*<a class="code" href="lightmediascanner__private_8h.html#818aa1ae6bb03151823bbd9b56bd0801">check_row_callback_t</a>)(<span class="keywordtype">void</span> *db_ptr, <span class="keyword">struct </span><a class="code" href="structcinfo.html">cinfo</a> *info);
97 <a name="l00094"></a>00094 
98 <a name="l00095"></a>00095 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner_8c.html#e6ccb942742cf65cc1cf866aceb4bddf">lms_parser_del_int</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keywordtype">int</span> i) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
99 <a name="l00096"></a>00096 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__private_8h.html#a5952b7aae2fa795396a5a286c2ee4a4">lms_create_pipes</a>(<span class="keyword">struct</span> <a class="code" href="structpinfo.html">pinfo</a> *<a class="code" href="structpinfo.html">pinfo</a>) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
100 <a name="l00097"></a>00097 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__private_8h.html#8c1aa0a9d9bb796db279caeb97e04eed">lms_close_pipes</a>(<span class="keyword">struct</span> <a class="code" href="structpinfo.html">pinfo</a> *<a class="code" href="structpinfo.html">pinfo</a>) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1);
101 <a name="l00098"></a>00098 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__private_8h.html#439b3c62e96d472bdb2125a0a04d4fa6">lms_create_slave</a>(<span class="keyword">struct</span> <a class="code" href="structpinfo.html">pinfo</a> *<a class="code" href="structpinfo.html">pinfo</a>, <span class="keywordtype">int</span> (*work)(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keyword">struct</span> <a class="code" href="structfds.html">fds</a> *<a class="code" href="structfds.html">fds</a>)) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
102 <a name="l00099"></a>00099 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__private_8h.html#dd61370f42f0c32e3b9d5c86303c3c58">lms_restart_slave</a>(<span class="keyword">struct</span> pinfo *pinfo, <span class="keywordtype">int</span> (*work)(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keyword">struct</span> <a class="code" href="structfds.html">fds</a> *<a class="code" href="structfds.html">fds</a>)) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
103 <a name="l00100"></a>00100 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__private_8h.html#dd3853bb333e8bee167477933a058ae5">lms_finish_slave</a>(<span class="keyword">struct</span> pinfo *pinfo, <span class="keywordtype">int</span> (*finish)(<span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structfds.html">fds</a> *<a class="code" href="structfds.html">fds</a>)) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
104 <a name="l00101"></a>00101 
105 <a name="l00102"></a>00102 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__private_8h.html#028ef9d19863e8d0ebac1b84b1cb9174">lms_parsers_setup</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, sqlite3 *db) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
106 <a name="l00103"></a>00103 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__private_8h.html#2c1f40ac6080c682c2f71172cc76f7e0">lms_parsers_start</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, sqlite3 *db) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
107 <a name="l00104"></a>00104 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__private_8h.html#74adcb264b3092f3ae9249de93f9130f">lms_parsers_finish</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, sqlite3 *db) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2);
108 <a name="l00105"></a>00105 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__private_8h.html#f92504ffd52b8b1d7d90b786af90d1ef">lms_parsers_check_using</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, <span class="keywordtype">void</span> **parser_match, <span class="keyword">struct</span> <a class="code" href="structlms__file__info.html">lms_file_info</a> *finfo) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2, 3);
109 <a name="l00106"></a>00106 <span class="keywordtype">int</span> <a class="code" href="lightmediascanner__private_8h.html#f61d9ef6ae2e576705bbd445db919e6c">lms_parsers_run</a>(<a class="code" href="structlms.html">lms_t</a> *<a class="code" href="structlms.html">lms</a>, sqlite3 *db, <span class="keywordtype">void</span> **parser_match, <span class="keyword">struct</span> <a class="code" href="structlms__file__info.html">lms_file_info</a> *finfo) <a class="code" href="lightmediascanner_8h.html#6fe68cac0abf3e2ca61141920414e93a">GNUC_NON_NULL</a>(1, 2, 3, 4);
110 <a name="l00107"></a>00107 
111 <a name="l00108"></a>00108 
112 <a name="l00109"></a>00109 <span class="preprocessor">#endif </span><span class="comment">/* _LIGHTMEDIASCANNER_PRIVATE_H_ */</span>
113 </pre></div></div>
114 <hr size="1"><address style="text-align: right;"><small>Generated on Wed Apr 22 23:56:01 2009 for Light Media Scanner by&nbsp;
115 <a href="http://www.doxygen.org/index.html">
116 <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
117 </body>
118 </html>