/[hyperestraier_wrappers]/0.0.13/doc/ruby_2HyperEstraierWrapper_8cpp-source.html
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /0.0.13/doc/ruby_2HyperEstraierWrapper_8cpp-source.html

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

0.0.12/doc/ruby_2HyperEstraierWrapper_8cpp-source.html revision 1 by dpavlin, Sat Sep 3 18:02:31 2005 UTC 0.0.13/doc/ruby_2HyperEstraierWrapper_8cpp-source.html revision 14 by dpavlin, Fri Sep 9 15:26:39 2005 UTC
# Line 16  Line 16 
16  <a name="l00009"></a>00009 <span class="preprocessor">#include &lt;vector&gt;</span>  <a name="l00009"></a>00009 <span class="preprocessor">#include &lt;vector&gt;</span>
17  <a name="l00010"></a>00010 <span class="preprocessor">#include &lt;map&gt;</span>  <a name="l00010"></a>00010 <span class="preprocessor">#include &lt;map&gt;</span>
18  <a name="l00011"></a>00011 <span class="preprocessor">#include &lt;cassert&gt;</span>  <a name="l00011"></a>00011 <span class="preprocessor">#include &lt;cassert&gt;</span>
19  <a name="l00012"></a>00012  <a name="l00012"></a>00012 <span class="preprocessor">#include &lt;stdexcept&gt;</span>
20  <a name="l00013"></a>00013 <span class="keyword">namespace </span>estraier {  <a name="l00013"></a>00013
21  <a name="l00014"></a><a class="code" href="classestraier_1_1Condition.html">00014</a>     <span class="keyword">class </span><a class="code" href="classestraier_1_1Condition.html">Condition</a> {  <a name="l00014"></a>00014 <span class="keyword">namespace </span>estraier {
22  <a name="l00015"></a>00015     <span class="keyword">public</span>:  <a name="l00015"></a>00015
23  <a name="l00016"></a>00016         <span class="keyword">enum</span> {                              <span class="comment">// enumeration for options </span>  <a name="l00016"></a><a class="code" href="classestraier_1_1IOError.html">00016</a>     <span class="keyword">class </span><a class="code" href="classestraier_1_1IOError.html">IOError</a> : <span class="keyword">public</span> std::runtime_error {
24  <a name="l00017"></a>00017             <a class="code" href="classestraier_1_1Condition.html#w8w0">SURE</a>    = ESTCONDSURE,      <span class="comment">// check every N-gram key</span>  <a name="l00017"></a>00017     <span class="keyword">public</span>:
25  <a name="l00018"></a>00018             <a class="code" href="classestraier_1_1Condition.html#w8w1">USUAL</a>   = ESTCONDUSUAL,     <span class="comment">// check N-gram keys skipping by one</span>  <a name="l00018"></a><a class="code" href="classestraier_1_1IOError.html#a1">00018</a>         <span class="keyword">explicit</span> <a class="code" href="classestraier_1_1IOError.html">IOError</a> (<span class="keyword">const</span> std::string&amp; w) : std::runtime_error(w) {}
26  <a name="l00019"></a>00019             <a class="code" href="classestraier_1_1Condition.html#w8w2">FAST</a>    = ESTCONDFAST,      <span class="comment">// check N-gram keys skipping by two</span>  <a name="l00019"></a>00019     };
27  <a name="l00020"></a>00020             <a class="code" href="classestraier_1_1Condition.html#w8w3">AGITO</a>   = ESTCONDAGITO,     <span class="comment">// check N-gram keys skipping by three</span>  <a name="l00020"></a>00020
28  <a name="l00021"></a>00021             <a class="code" href="classestraier_1_1Condition.html#w8w4">NOIDF</a>   = ESTCONDNOIDF,     <span class="comment">// without TF-IDF tuning</span>  <a name="l00021"></a><a class="code" href="classestraier_1_1Condition.html">00021</a>     <span class="keyword">class </span><a class="code" href="classestraier_1_1Condition.html">Condition</a> {
29  <a name="l00022"></a>00022             <a class="code" href="classestraier_1_1Condition.html#w8w5">SIMPLE</a>  = ESTCONDSIMPLE,    <span class="comment">// with the simplefied phrase</span>  <a name="l00022"></a>00022     <span class="keyword">public</span>:
30  <a name="l00023"></a>00023         };  <a name="l00023"></a>00023         <span class="keyword">enum</span> {                              <span class="comment">// enumeration for options </span>
31  <a name="l00024"></a><a class="code" href="classestraier_1_1Condition.html#o2">00024</a>         ESTCOND * <a class="code" href="classestraier_1_1Condition.html#o0">cond</a>;  <a name="l00024"></a>00024             <a class="code" href="classestraier_1_1Condition.html#w8w0">SURE</a>    = ESTCONDSURE,      <span class="comment">// check every N-gram key</span>
32  <a name="l00025"></a><a class="code" href="classestraier_1_1Condition.html#a14">00025</a>         <a class="code" href="classestraier_1_1Condition.html">Condition</a>() {  <a name="l00025"></a>00025             <a class="code" href="classestraier_1_1Condition.html#w8w1">USUAL</a>   = ESTCONDUSUAL,     <span class="comment">// check N-gram keys skipping by one</span>
33  <a name="l00029"></a>00029             <a class="code" href="classestraier_1_1Condition.html#o0">cond</a> = est_cond_new();  <a name="l00026"></a>00026             <a class="code" href="classestraier_1_1Condition.html#w8w2">FAST</a>    = ESTCONDFAST,      <span class="comment">// check N-gram keys skipping by two</span>
34  <a name="l00030"></a>00030         }  <a name="l00027"></a>00027             <a class="code" href="classestraier_1_1Condition.html#w8w3">AGITO</a>   = ESTCONDAGITO,     <span class="comment">// check N-gram keys skipping by three</span>
35  <a name="l00031"></a><a class="code" href="classestraier_1_1Condition.html#a15">00031</a>         ~<a class="code" href="classestraier_1_1Condition.html">Condition</a>() {  <a name="l00028"></a>00028             <a class="code" href="classestraier_1_1Condition.html#w8w4">NOIDF</a>   = ESTCONDNOIDF,     <span class="comment">// without TF-IDF tuning</span>
36  <a name="l00035"></a>00035             est_cond_delete(<a class="code" href="classestraier_1_1Condition.html#o0">cond</a>);  <a name="l00029"></a>00029             <a class="code" href="classestraier_1_1Condition.html#w8w5">SIMPLE</a>  = ESTCONDSIMPLE,    <span class="comment">// with the simplefied phrase</span>
37  <a name="l00036"></a>00036         }  <a name="l00030"></a>00030         };
38  <a name="l00037"></a><a class="code" href="classestraier_1_1Condition.html#a16">00037</a>         <span class="keywordtype">void</span> <a class="code" href="classestraier_1_1Condition.html#a2">set_phrase</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *phrase) {  <a name="l00031"></a><a class="code" href="classestraier_1_1Condition.html#o2">00031</a>         ESTCOND * <a class="code" href="classestraier_1_1Condition.html#o0">cond</a>;
39  <a name="l00041"></a>00041             est_cond_set_phrase(<a class="code" href="classestraier_1_1Condition.html#o0">cond</a>, phrase);  <a name="l00032"></a><a class="code" href="classestraier_1_1Condition.html#a14">00032</a>         <a class="code" href="classestraier_1_1Condition.html">Condition</a>() {
40  <a name="l00042"></a>00042         }  <a name="l00036"></a>00036             <a class="code" href="classestraier_1_1Condition.html#o0">cond</a> = est_cond_new();
41  <a name="l00043"></a><a class="code" href="classestraier_1_1Condition.html#a17">00043</a>         <span class="keywordtype">void</span> <a class="code" href="classestraier_1_1Condition.html#a3">add_attr</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *expr) {  <a name="l00037"></a>00037         }
42  <a name="l00047"></a>00047             est_cond_add_attr(<a class="code" href="classestraier_1_1Condition.html#o0">cond</a>, expr);  <a name="l00038"></a><a class="code" href="classestraier_1_1Condition.html#a15">00038</a>         ~<a class="code" href="classestraier_1_1Condition.html">Condition</a>() {
43  <a name="l00048"></a>00048         }  <a name="l00042"></a>00042             est_cond_delete(<a class="code" href="classestraier_1_1Condition.html#o0">cond</a>);
44  <a name="l00049"></a><a class="code" href="classestraier_1_1Condition.html#a18">00049</a>         <span class="keywordtype">void</span> <a class="code" href="classestraier_1_1Condition.html#a4">set_order</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *expr) {  <a name="l00043"></a>00043         }
45  <a name="l00053"></a>00053             est_cond_set_order(<a class="code" href="classestraier_1_1Condition.html#o0">cond</a>, expr);  <a name="l00044"></a><a class="code" href="classestraier_1_1Condition.html#a16">00044</a>         <span class="keywordtype">void</span> <a class="code" href="classestraier_1_1Condition.html#a2">set_phrase</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *phrase) {
46  <a name="l00054"></a>00054         }  <a name="l00048"></a>00048             est_cond_set_phrase(<a class="code" href="classestraier_1_1Condition.html#o0">cond</a>, phrase);
47  <a name="l00055"></a><a class="code" href="classestraier_1_1Condition.html#a19">00055</a>         <span class="keywordtype">void</span> <a class="code" href="classestraier_1_1Condition.html#a5">set_max</a>(<span class="keywordtype">int</span> _max) {  <a name="l00049"></a>00049         }
48  <a name="l00059"></a>00059             est_cond_set_max(<a class="code" href="classestraier_1_1Condition.html#o0">cond</a>, _max);  <a name="l00050"></a><a class="code" href="classestraier_1_1Condition.html#a17">00050</a>         <span class="keywordtype">void</span> <a class="code" href="classestraier_1_1Condition.html#a3">add_attr</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *expr) {
49  <a name="l00060"></a>00060         }  <a name="l00054"></a>00054             est_cond_add_attr(<a class="code" href="classestraier_1_1Condition.html#o0">cond</a>, expr);
50  <a name="l00061"></a><a class="code" href="classestraier_1_1Condition.html#a20">00061</a>         <span class="keywordtype">void</span> <a class="code" href="classestraier_1_1Condition.html#a6">set_options</a>(<span class="keywordtype">int</span> options) {  <a name="l00055"></a>00055         }
51  <a name="l00065"></a>00065             est_cond_set_options(<a class="code" href="classestraier_1_1Condition.html#o0">cond</a>, options);  <a name="l00056"></a><a class="code" href="classestraier_1_1Condition.html#a18">00056</a>         <span class="keywordtype">void</span> <a class="code" href="classestraier_1_1Condition.html#a4">set_order</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *expr) {
52  <a name="l00066"></a>00066         }  <a name="l00060"></a>00060             est_cond_set_order(<a class="code" href="classestraier_1_1Condition.html#o0">cond</a>, expr);
53  <a name="l00067"></a>00067     };  <a name="l00061"></a>00061         }
54  <a name="l00068"></a>00068  <a name="l00062"></a><a class="code" href="classestraier_1_1Condition.html#a19">00062</a>         <span class="keywordtype">void</span> <a class="code" href="classestraier_1_1Condition.html#a5">set_max</a>(<span class="keywordtype">int</span> _max) {
55  <a name="l00069"></a><a class="code" href="classestraier_1_1Document.html">00069</a>     <span class="keyword">class </span><a class="code" href="classestraier_1_1Document.html">Document</a> {  <a name="l00066"></a>00066             est_cond_set_max(<a class="code" href="classestraier_1_1Condition.html#o0">cond</a>, _max);
56  <a name="l00070"></a>00070     <span class="keyword">private</span>:  <a name="l00067"></a>00067         }
57  <a name="l00071"></a>00071         std::string <a class="code" href="classestraier_1_1Document.html#r0">text_buf</a>;  <a name="l00068"></a><a class="code" href="classestraier_1_1Condition.html#a20">00068</a>         <span class="keywordtype">void</span> <a class="code" href="classestraier_1_1Condition.html#a6">set_options</a>(<span class="keywordtype">int</span> options) {
58  <a name="l00072"></a>00072     <span class="keyword">public</span>:  <a name="l00072"></a>00072             est_cond_set_options(<a class="code" href="classestraier_1_1Condition.html#o0">cond</a>, options);
59  <a name="l00073"></a><a class="code" href="classestraier_1_1Document.html#o2">00073</a>         ESTDOC *<a class="code" href="classestraier_1_1Document.html#o0">doc</a>;  <a name="l00073"></a>00073         }
60  <a name="l00074"></a>00074  <a name="l00074"></a>00074     };
61  <a name="l00075"></a><a class="code" href="classestraier_1_1Document.html#a29">00075</a>         <a class="code" href="classestraier_1_1Document.html">Document</a>() {  <a name="l00075"></a>00075
62  <a name="l00079"></a>00079             <a class="code" href="classestraier_1_1Document.html#o0">doc</a> = est_doc_new();  <a name="l00076"></a><a class="code" href="classestraier_1_1Document.html">00076</a>     <span class="keyword">class </span><a class="code" href="classestraier_1_1Document.html">Document</a> {
63  <a name="l00080"></a>00080         }  <a name="l00077"></a>00077     <span class="keyword">private</span>:
64  <a name="l00081"></a><a class="code" href="classestraier_1_1Document.html#a30">00081</a>         <a class="code" href="classestraier_1_1Document.html">Document</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* draft) {  <a name="l00078"></a>00078         std::string <a class="code" href="classestraier_1_1Document.html#r0">text_buf</a>;
65  <a name="l00085"></a>00085             <a class="code" href="classestraier_1_1Document.html#o0">doc</a> = est_doc_new_from_draft(draft);  <a name="l00079"></a>00079     <span class="keyword">public</span>:
66    <a name="l00080"></a><a class="code" href="classestraier_1_1Document.html#o2">00080</a>         ESTDOC *<a class="code" href="classestraier_1_1Document.html#o0">doc</a>;
67    <a name="l00081"></a><a class="code" href="classestraier_1_1Document.html#a29">00081</a>         <a class="code" href="classestraier_1_1Document.html">Document</a>() {
68    <a name="l00085"></a>00085             <a class="code" href="classestraier_1_1Document.html#o0">doc</a> = est_doc_new();
69  <a name="l00086"></a>00086         }  <a name="l00086"></a>00086         }
70  <a name="l00087"></a><a class="code" href="classestraier_1_1Document.html#a31">00087</a>         <a class="code" href="classestraier_1_1Document.html">Document</a>(ESTDOC *_doc) {  <a name="l00087"></a><a class="code" href="classestraier_1_1Document.html#a30">00087</a>         <a class="code" href="classestraier_1_1Document.html">Document</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* draft) {
71  <a name="l00091"></a>00091             <a class="code" href="classestraier_1_1Document.html#o0">doc</a> = _doc;  <a name="l00091"></a>00091             <a class="code" href="classestraier_1_1Document.html#o0">doc</a> = est_doc_new_from_draft(draft);
72  <a name="l00092"></a>00092         }  <a name="l00092"></a>00092         }
73  <a name="l00093"></a><a class="code" href="classestraier_1_1Document.html#a32">00093</a>         ~<a class="code" href="classestraier_1_1Document.html">Document</a>() {  <a name="l00093"></a><a class="code" href="classestraier_1_1Document.html#a31">00093</a>         <a class="code" href="classestraier_1_1Document.html">Document</a>(ESTDOC *_doc) {
74  <a name="l00097"></a>00097             est_doc_delete(<a class="code" href="classestraier_1_1Document.html#o0">doc</a>);  <a name="l00097"></a>00097             <a class="code" href="classestraier_1_1Document.html#o0">doc</a> = _doc;
75  <a name="l00098"></a>00098         }  <a name="l00098"></a>00098         }
76  <a name="l00099"></a><a class="code" href="classestraier_1_1Document.html#a33">00099</a>         <span class="keywordtype">void</span> <a class="code" href="classestraier_1_1Document.html#a4">add_attr</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> * name, <span class="keyword">const</span> <span class="keywordtype">char</span>*value) {  <a name="l00099"></a><a class="code" href="classestraier_1_1Document.html#a32">00099</a>         ~<a class="code" href="classestraier_1_1Document.html">Document</a>() {
77  <a name="l00103"></a>00103             est_doc_add_attr(<a class="code" href="classestraier_1_1Document.html#o0">doc</a>, name, value);  <a name="l00103"></a>00103             est_doc_delete(<a class="code" href="classestraier_1_1Document.html#o0">doc</a>);
78  <a name="l00104"></a>00104         }  <a name="l00104"></a>00104         }
79  <a name="l00105"></a><a class="code" href="classestraier_1_1Document.html#a34">00105</a>         <span class="keywordtype">void</span> <a class="code" href="classestraier_1_1Document.html#a5">add_text</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *text) {  <a name="l00105"></a><a class="code" href="classestraier_1_1Document.html#a33">00105</a>         <span class="keywordtype">void</span> <a class="code" href="classestraier_1_1Document.html#a4">add_attr</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> * name, <span class="keyword">const</span> <span class="keywordtype">char</span>*value) {
80  <a name="l00109"></a>00109             est_doc_add_text(<a class="code" href="classestraier_1_1Document.html#o0">doc</a>, text);  <a name="l00109"></a>00109             est_doc_add_attr(<a class="code" href="classestraier_1_1Document.html#o0">doc</a>, name, value);
81  <a name="l00110"></a>00110         }  <a name="l00110"></a>00110         }
82  <a name="l00111"></a><a class="code" href="classestraier_1_1Document.html#a35">00111</a>         <span class="keywordtype">void</span> <a class="code" href="classestraier_1_1Document.html#a6">add_hidden_text</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> * text) {  <a name="l00111"></a><a class="code" href="classestraier_1_1Document.html#a34">00111</a>         <span class="keywordtype">void</span> <a class="code" href="classestraier_1_1Document.html#a5">add_text</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *text) {
83  <a name="l00115"></a>00115             est_doc_add_hidden_text(<a class="code" href="classestraier_1_1Document.html#o0">doc</a>, text);  <a name="l00115"></a>00115             est_doc_add_text(<a class="code" href="classestraier_1_1Document.html#o0">doc</a>, text);
84  <a name="l00116"></a>00116         }  <a name="l00116"></a>00116         }
85  <a name="l00117"></a><a class="code" href="classestraier_1_1Document.html#a36">00117</a>         <span class="keywordtype">int</span> <a class="code" href="classestraier_1_1Document.html#a7">id</a>() {  <a name="l00117"></a><a class="code" href="classestraier_1_1Document.html#a35">00117</a>         <span class="keywordtype">void</span> <a class="code" href="classestraier_1_1Document.html#a6">add_hidden_text</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> * text) {
86  <a name="l00121"></a>00121             <span class="keywordflow">return</span> est_doc_id(<a class="code" href="classestraier_1_1Document.html#o0">doc</a>);  <a name="l00121"></a>00121             est_doc_add_hidden_text(<a class="code" href="classestraier_1_1Document.html#o0">doc</a>, text);
87  <a name="l00122"></a>00122         }  <a name="l00122"></a>00122         }
88  <a name="l00123"></a><a class="code" href="classestraier_1_1Document.html#a37">00123</a>         std::vector&lt;std::string&gt; * <a class="code" href="classestraier_1_1Document.html#a8">attr_names</a>() {  <a name="l00123"></a><a class="code" href="classestraier_1_1Document.html#a36">00123</a>         <span class="keywordtype">int</span> <a class="code" href="classestraier_1_1Document.html#a7">id</a>() {
89  <a name="l00127"></a>00127             std::vector&lt;std::string&gt; * vs = <span class="keyword">new</span> std::vector&lt;std::string&gt;;  <a name="l00127"></a>00127             <span class="keywordflow">return</span> est_doc_id(<a class="code" href="classestraier_1_1Document.html#o0">doc</a>);
90  <a name="l00128"></a>00128             CBLIST * <a class="code" href="classestraier_1_1Document.html#a8">attr_names</a> = est_doc_attr_names(<a class="code" href="classestraier_1_1Document.html#o0">doc</a>);  <a name="l00128"></a>00128         }
91  <a name="l00129"></a>00129             <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0; i &lt; cblistnum(attr_names); i++) {  <a name="l00129"></a><a class="code" href="classestraier_1_1Document.html#a37">00129</a>         std::vector&lt;std::string&gt; * <a class="code" href="classestraier_1_1Document.html#a8">attr_names</a>() {
92  <a name="l00130"></a>00130                 vs-&gt;push_back(cblistval(attr_names, i, NULL));  <a name="l00133"></a>00133             std::vector&lt;std::string&gt; * vs = <span class="keyword">new</span> std::vector&lt;std::string&gt;;
93  <a name="l00131"></a>00131             }  <a name="l00134"></a>00134             CBLIST * <a class="code" href="classestraier_1_1Document.html#a8">attr_names</a> = est_doc_attr_names(<a class="code" href="classestraier_1_1Document.html#o0">doc</a>);
94  <a name="l00132"></a>00132             cblistclose(attr_names);  <a name="l00135"></a>00135             <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0; i &lt; cblistnum(attr_names); i++) {
95  <a name="l00133"></a>00133             <span class="keywordflow">return</span> vs;  <a name="l00136"></a>00136                 vs-&gt;push_back(cblistval(attr_names, i, NULL));
96  <a name="l00134"></a>00134         }  <a name="l00137"></a>00137             }
97  <a name="l00135"></a><a class="code" href="classestraier_1_1Document.html#a38">00135</a>         <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="classestraier_1_1Document.html#a9">attr</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name) {  <a name="l00138"></a>00138             cblistclose(attr_names);
98  <a name="l00139"></a>00139             <span class="keywordflow">return</span> est_doc_attr(<a class="code" href="classestraier_1_1Document.html#o0">doc</a>, name);  <a name="l00139"></a>00139             <span class="keywordflow">return</span> vs;
99  <a name="l00140"></a>00140         }  <a name="l00140"></a>00140         }
100  <a name="l00141"></a><a class="code" href="classestraier_1_1Document.html#a39">00141</a>         <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="classestraier_1_1Document.html#a10">cat_texts</a>() {  <a name="l00141"></a><a class="code" href="classestraier_1_1Document.html#a38">00141</a>         <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="classestraier_1_1Document.html#a9">attr</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name) {
101  <a name="l00145"></a>00145             <span class="comment">// return est_doc_cat_texts(doc);</span>  <a name="l00145"></a>00145             <span class="keywordflow">return</span> est_doc_attr(<a class="code" href="classestraier_1_1Document.html#o0">doc</a>, name);
102  <a name="l00146"></a>00146             <span class="keywordflow">return</span> <span class="stringliteral">"This is mockup!"</span>;  <a name="l00146"></a>00146         }
103  <a name="l00147"></a>00147         }  <a name="l00147"></a><a class="code" href="classestraier_1_1Document.html#a39">00147</a>         <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="classestraier_1_1Document.html#a10">cat_texts</a>() {
104  <a name="l00148"></a><a class="code" href="classestraier_1_1Document.html#a40">00148</a>         std::vector&lt;std::string&gt;* <a class="code" href="classestraier_1_1Document.html#a11">texts</a>() {  <a name="l00151"></a>00151             <span class="keywordflow">return</span> est_doc_cat_texts(<a class="code" href="classestraier_1_1Document.html#o0">doc</a>);
105  <a name="l00152"></a>00152             std::vector&lt;std::string&gt; * vs = <span class="keyword">new</span> std::vector&lt;std::string&gt;;  <a name="l00152"></a>00152         }
106  <a name="l00153"></a>00153             <span class="keyword">const</span> CBLIST *<a class="code" href="classestraier_1_1Document.html#a11">texts</a>;  <a name="l00153"></a><a class="code" href="classestraier_1_1Document.html#a40">00153</a>         std::vector&lt;std::string&gt;* <a class="code" href="classestraier_1_1Document.html#a11">texts</a>() {
107  <a name="l00154"></a>00154             texts = est_doc_texts(<a class="code" href="classestraier_1_1Document.html#o0">doc</a>);  <a name="l00157"></a>00157             std::vector&lt;std::string&gt; * vs = <span class="keyword">new</span> std::vector&lt;std::string&gt;;
108  <a name="l00155"></a>00155             <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; cblistnum(texts); i++) {  <a name="l00158"></a>00158             <span class="keyword">const</span> CBLIST *<a class="code" href="classestraier_1_1Document.html#a11">texts</a>;
109  <a name="l00156"></a>00156                 vs-&gt;push_back(cblistval(texts, i, NULL));  <a name="l00159"></a>00159             texts = est_doc_texts(<a class="code" href="classestraier_1_1Document.html#o0">doc</a>);
110  <a name="l00157"></a>00157             }  <a name="l00160"></a>00160             <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; cblistnum(texts); i++) {
111  <a name="l00158"></a>00158             <span class="keywordflow">return</span> vs;  <a name="l00161"></a>00161                 vs-&gt;push_back(cblistval(texts, i, NULL));
112  <a name="l00159"></a>00159         }  <a name="l00162"></a>00162             }
113  <a name="l00160"></a><a class="code" href="classestraier_1_1Document.html#a41">00160</a>         <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="classestraier_1_1Document.html#a12">dump_draft</a>() {  <a name="l00163"></a>00163             <span class="keywordflow">return</span> vs;
114  <a name="l00164"></a>00164             <span class="keywordflow">return</span> est_doc_dump_draft(<a class="code" href="classestraier_1_1Document.html#o0">doc</a>);  <a name="l00164"></a>00164         }
115  <a name="l00165"></a>00165         }  <a name="l00165"></a><a class="code" href="classestraier_1_1Document.html#a41">00165</a>         <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="classestraier_1_1Document.html#a12">dump_draft</a>() {
116  <a name="l00166"></a><a class="code" href="classestraier_1_1Document.html#a42">00166</a>         <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="classestraier_1_1Document.html#a13">make_snippet</a>(std::vector&lt;std::string&gt; _words, <span class="keywordtype">int</span> wwidth, <span class="keywordtype">int</span> hwidth, <span class="keywordtype">int</span> awidth) {  <a name="l00169"></a>00169             <span class="keywordflow">return</span> est_doc_dump_draft(<a class="code" href="classestraier_1_1Document.html#o0">doc</a>);
117  <a name="l00170"></a>00170             CBLIST * words;  <a name="l00170"></a>00170         }
118  <a name="l00171"></a>00171             std::vector&lt;std::string&gt;::iterator iter;  <a name="l00171"></a><a class="code" href="classestraier_1_1Document.html#a42">00171</a>         <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="classestraier_1_1Document.html#a13">make_snippet</a>(std::vector&lt;std::string&gt; _words, <span class="keywordtype">int</span> wwidth, <span class="keywordtype">int</span> hwidth, <span class="keywordtype">int</span> awidth) {
119  <a name="l00172"></a>00172  <a name="l00175"></a>00175             CBLIST * words;
120  <a name="l00173"></a>00173             words = cblistopen();  <a name="l00176"></a>00176             std::vector&lt;std::string&gt;::iterator iter;
121  <a name="l00174"></a>00174  <a name="l00177"></a>00177             words = cblistopen();
122  <a name="l00175"></a>00175             <span class="keywordflow">for</span> (iter = _words.begin(); _words.end() != iter; iter++) {  <a name="l00178"></a>00178             <span class="keywordflow">for</span> (iter = _words.begin(); _words.end() != iter; iter++) {
123  <a name="l00176"></a>00176                 cblistpush(words, iter-&gt;c_str(), -1);  <a name="l00179"></a>00179                 cblistpush(words, iter-&gt;c_str(), -1);
124  <a name="l00177"></a>00177             }  <a name="l00180"></a>00180             }
125  <a name="l00178"></a>00178  <a name="l00181"></a>00181             <span class="keyword">const</span> <span class="keywordtype">char</span> *result = est_doc_make_snippet(<a class="code" href="classestraier_1_1Document.html#o0">doc</a>, words, wwidth, hwidth, awidth);
126  <a name="l00179"></a>00179             <span class="keyword">const</span> <span class="keywordtype">char</span> *result = est_doc_make_snippet(<a class="code" href="classestraier_1_1Document.html#o0">doc</a>, words, wwidth, hwidth, awidth);  <a name="l00182"></a>00182             cblistclose(words);
 <a name="l00180"></a>00180  
 <a name="l00181"></a>00181             cblistclose(words);  
 <a name="l00182"></a>00182  
127  <a name="l00183"></a>00183             <span class="keywordflow">return</span> result;  <a name="l00183"></a>00183             <span class="keywordflow">return</span> result;
128  <a name="l00184"></a>00184         }  <a name="l00184"></a>00184         }
129  <a name="l00185"></a>00185     };  <a name="l00185"></a><a class="code" href="classestraier_1_1Document.html#a43">00185</a>         <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="classestraier_1_1Document.html#a14">hidden_texts</a>() {
130  <a name="l00186"></a>00186  <a name="l00189"></a>00189             <span class="keywordflow">return</span> est_doc_hidden_texts(<a class="code" href="classestraier_1_1Document.html#o0">doc</a>);
131  <a name="l00187"></a><a class="code" href="classestraier_1_1Database.html">00187</a>     <span class="keyword">class </span><a class="code" href="classestraier_1_1Database.html">Database</a> {  <a name="l00190"></a>00190         }
132  <a name="l00188"></a>00188     <span class="keyword">private</span>:  <a name="l00191"></a>00191     };
133  <a name="l00189"></a><a class="code" href="classestraier_1_1Database.html#r3">00189</a>         ESTMTDB *<a class="code" href="classestraier_1_1Database.html#r0">db</a>;  <a name="l00192"></a>00192
134  <a name="l00190"></a>00190     <span class="keyword">public</span>:  <a name="l00193"></a><a class="code" href="classestraier_1_1Database.html">00193</a>     <span class="keyword">class </span><a class="code" href="classestraier_1_1Database.html">Database</a> {
135  <a name="l00191"></a>00191         <span class="keyword">enum</span> {                              <span class="comment">// enumeration for error codes</span>  <a name="l00194"></a>00194     <span class="keyword">private</span>:
136  <a name="l00192"></a>00192             <a class="code" href="classestraier_1_1Database.html#w33w0">ERRNOERR</a>    = ESTENOERR,        <span class="comment">// no error</span>  <a name="l00195"></a><a class="code" href="classestraier_1_1Database.html#r3">00195</a>         ESTMTDB *<a class="code" href="classestraier_1_1Database.html#r0">db</a>;
137  <a name="l00193"></a>00193             <a class="code" href="classestraier_1_1Database.html#w33w1">ERRINVAL</a>    = ESTEINVAL,        <span class="comment">// invalid argument</span>  <a name="l00196"></a>00196         <span class="keywordtype">int</span> <a class="code" href="classestraier_1_1Database.html#r1">ecode</a>;
138  <a name="l00194"></a>00194             <a class="code" href="classestraier_1_1Database.html#w33w2">ERRACCES</a>    = ESTEACCES,        <span class="comment">// access forbidden</span>  <a name="l00197"></a>00197     <span class="keyword">public</span>:
139  <a name="l00195"></a>00195             <a class="code" href="classestraier_1_1Database.html#w33w3">ERRLOCK</a>     = ESTELOCK,         <span class="comment">// lock failure</span>  <a name="l00198"></a>00198         <span class="keyword">enum</span> {                              <span class="comment">// enumeration for error codes</span>
140  <a name="l00196"></a>00196             <a class="code" href="classestraier_1_1Database.html#w33w4">ERRDB</a>       = ESTEDB,           <span class="comment">// database problem</span>  <a name="l00199"></a>00199             <a class="code" href="classestraier_1_1Database.html#w33w0">ERRNOERR</a>    = ESTENOERR,        <span class="comment">// no error</span>
141  <a name="l00197"></a>00197             <a class="code" href="classestraier_1_1Database.html#w33w5">ERRIO</a>       = ESTEIO,           <span class="comment">// I/O problem</span>  <a name="l00200"></a>00200             <a class="code" href="classestraier_1_1Database.html#w33w1">ERRINVAL</a>    = ESTEINVAL,        <span class="comment">// invalid argument</span>
142  <a name="l00198"></a>00198             <a class="code" href="classestraier_1_1Database.html#w33w6">ERRNOITEM</a>   = ESTENOITEM,       <span class="comment">// no item</span>  <a name="l00201"></a>00201             <a class="code" href="classestraier_1_1Database.html#w33w2">ERRACCES</a>    = ESTEACCES,        <span class="comment">// access forbidden</span>
143  <a name="l00199"></a>00199             <a class="code" href="classestraier_1_1Database.html#w33w7">ERRMISC</a>     = ESTEMISC          <span class="comment">// miscellaneous</span>  <a name="l00202"></a>00202             <a class="code" href="classestraier_1_1Database.html#w33w3">ERRLOCK</a>     = ESTELOCK,         <span class="comment">// lock failure</span>
144  <a name="l00200"></a>00200         };  <a name="l00203"></a>00203             <a class="code" href="classestraier_1_1Database.html#w33w4">ERRDB</a>       = ESTEDB,           <span class="comment">// database problem</span>
145  <a name="l00201"></a>00201         <span class="keyword">enum</span> {                              <span class="comment">// enumeration for open modes</span>  <a name="l00204"></a>00204             <a class="code" href="classestraier_1_1Database.html#w33w5">ERRIO</a>       = ESTEIO,           <span class="comment">// I/O problem</span>
146  <a name="l00202"></a>00202             DBREADER    = ESTDBREADER,      <span class="comment">// open as a reader</span>  <a name="l00205"></a>00205             <a class="code" href="classestraier_1_1Database.html#w33w6">ERRNOITEM</a>   = ESTENOITEM,       <span class="comment">// no item</span>
147  <a name="l00203"></a>00203             DBWRITER    = ESTDBWRITER,      <span class="comment">// open as a writer</span>  <a name="l00206"></a>00206             <a class="code" href="classestraier_1_1Database.html#w33w7">ERRMISC</a>     = ESTEMISC          <span class="comment">// miscellaneous</span>
148  <a name="l00204"></a>00204             DBCREAT     = ESTDBCREAT,       <span class="comment">// a writer creating</span>  <a name="l00207"></a>00207         };
149  <a name="l00205"></a>00205             DBTRUNC     = ESTDBTRUNC,       <span class="comment">// a writer truncating</span>  <a name="l00208"></a>00208         <span class="keyword">enum</span> {                              <span class="comment">// enumeration for open modes</span>
150  <a name="l00206"></a>00206             DBNOLCK     = ESTDBNOLCK,       <span class="comment">// open without locking</span>  <a name="l00209"></a>00209             DBREADER    = ESTDBREADER,      <span class="comment">// open as a reader</span>
151  <a name="l00207"></a>00207             DBLCKNB     = ESTDBLCKNB,       <span class="comment">// lock without blocking</span>  <a name="l00210"></a>00210             DBWRITER    = ESTDBWRITER,      <span class="comment">// open as a writer</span>
152  <a name="l00208"></a>00208             DBPERFNG    = ESTDBPERFNG       <span class="comment">// use perfect N-gram analyzer</span>  <a name="l00211"></a>00211             DBCREAT     = ESTDBCREAT,       <span class="comment">// a writer creating</span>
153  <a name="l00209"></a>00209         };  <a name="l00212"></a>00212             DBTRUNC     = ESTDBTRUNC,       <span class="comment">// a writer truncating</span>
154  <a name="l00210"></a>00210         <span class="keyword">enum</span> {                              <span class="comment">// enumeration for options of document registration</span>  <a name="l00213"></a>00213             DBNOLCK     = ESTDBNOLCK,       <span class="comment">// open without locking</span>
155  <a name="l00211"></a>00211             PDCLEAN     = ESTPDCLEAN        <span class="comment">// clean up dispensable regions</span>  <a name="l00214"></a>00214             DBLCKNB     = ESTDBLCKNB,       <span class="comment">// lock without blocking</span>
156  <a name="l00212"></a>00212         };  <a name="l00215"></a>00215             DBPERFNG    = ESTDBPERFNG       <span class="comment">// use perfect N-gram analyzer</span>
157  <a name="l00213"></a>00213         <span class="keyword">enum</span> {                              <span class="comment">// enumeration for options of document deletion</span>  <a name="l00216"></a>00216         };
158  <a name="l00214"></a>00214             <a class="code" href="classestraier_1_1Database.html#w36w16">ODCLEAN</a>     = ESTODCLEAN        <span class="comment">// clean up dispensable regions</span>  <a name="l00217"></a>00217         <span class="keyword">enum</span> {                              <span class="comment">// enumeration for options of document registration</span>
159  <a name="l00215"></a>00215         };  <a name="l00218"></a>00218             PDCLEAN     = ESTPDCLEAN        <span class="comment">// clean up dispensable regions</span>
 <a name="l00216"></a>00216         <span class="keyword">enum</span> {                              <span class="comment">// enumeration for options of optimization</span>  
 <a name="l00217"></a>00217             <a class="code" href="classestraier_1_1Database.html#w37w17">OPTNOPURGE</a>  = ESTOPTNOPURGE,    <span class="comment">// omit purging dispensable region of deleted</span>  
 <a name="l00218"></a>00218             <a class="code" href="classestraier_1_1Database.html#w37w18">OPTNODBOPT</a>  = ESTOPTNODBOPT     <span class="comment">// omit optimizization of the database files</span>  
160  <a name="l00219"></a>00219         };  <a name="l00219"></a>00219         };
161  <a name="l00220"></a>00220         <span class="keyword">enum</span> {                              <span class="comment">// enumeration for options of document retrieval</span>  <a name="l00220"></a>00220         <span class="keyword">enum</span> {                              <span class="comment">// enumeration for options of document deletion</span>
162  <a name="l00221"></a>00221             <a class="code" href="classestraier_1_1Database.html#w38w19">GDNOATTR</a>    = ESTGDNOATTR,      <span class="comment">// no attributes</span>  <a name="l00221"></a>00221             <a class="code" href="classestraier_1_1Database.html#w36w16">ODCLEAN</a>     = ESTODCLEAN        <span class="comment">// clean up dispensable regions</span>
163  <a name="l00222"></a>00222             <a class="code" href="classestraier_1_1Database.html#w38w20">GDNOTEXT</a>    = ESTGDNOTEXT       <span class="comment">// no text</span>  <a name="l00222"></a>00222         };
164  <a name="l00223"></a>00223         };  <a name="l00223"></a>00223         <span class="keyword">enum</span> {                              <span class="comment">// enumeration for options of optimization</span>
165  <a name="l00224"></a><a class="code" href="classestraier_1_1Database.html#a45">00224</a>         <a class="code" href="classestraier_1_1Database.html">Database</a>() {  <a name="l00224"></a>00224             <a class="code" href="classestraier_1_1Database.html#w37w17">OPTNOPURGE</a>  = ESTOPTNOPURGE,    <span class="comment">// omit purging dispensable region of deleted</span>
166  <a name="l00228"></a>00228         }  <a name="l00225"></a>00225             <a class="code" href="classestraier_1_1Database.html#w37w18">OPTNODBOPT</a>  = ESTOPTNODBOPT     <span class="comment">// omit optimizization of the database files</span>
167  <a name="l00229"></a><a class="code" href="classestraier_1_1Database.html#a46">00229</a>         ~<a class="code" href="classestraier_1_1Database.html">Database</a>() {  <a name="l00226"></a>00226         };
168  <a name="l00230"></a>00230             <a class="code" href="classestraier_1_1Database.html#a3">close</a>();  <a name="l00227"></a>00227         <span class="keyword">enum</span> {                              <span class="comment">// enumeration for options of document retrieval</span>
169  <a name="l00231"></a>00231         }  <a name="l00228"></a>00228             <a class="code" href="classestraier_1_1Database.html#w38w19">GDNOATTR</a>    = ESTGDNOATTR,      <span class="comment">// no attributes</span>
170  <a name="l00232"></a><a class="code" href="classestraier_1_1Database.html#a47">00232</a>         <span class="keywordtype">bool</span> <a class="code" href="classestraier_1_1Database.html#a2">open</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> * dbname, <span class="keywordtype">int</span> mode) {  <a name="l00229"></a>00229             <a class="code" href="classestraier_1_1Database.html#w38w20">GDNOTEXT</a>    = ESTGDNOTEXT       <span class="comment">// no text</span>
171  <a name="l00236"></a>00236             <span class="keywordtype">int</span> <a class="code" href="classestraier_1_1Database.html#r1">ecode</a>;  <a name="l00230"></a>00230         };
172  <a name="l00237"></a>00237             <a class="code" href="classestraier_1_1Database.html#r0">db</a> = est_mtdb_open(dbname, mode, &amp;ecode);  <a name="l00231"></a><a class="code" href="classestraier_1_1Database.html#a45">00231</a>         <a class="code" href="classestraier_1_1Database.html">Database</a>() {
173  <a name="l00238"></a>00238             <span class="keywordflow">return</span> <a class="code" href="classestraier_1_1Database.html#r0">db</a>;  <a name="l00235"></a>00235             <a class="code" href="classestraier_1_1Database.html#r0">db</a> = NULL;
174  <a name="l00239"></a>00239         }  <a name="l00236"></a>00236             <a class="code" href="classestraier_1_1Database.html#r1">ecode</a> = <a class="code" href="classestraier_1_1Database.html#w33w0">ERRNOERR</a>;
175  <a name="l00240"></a><a class="code" href="classestraier_1_1Database.html#a48">00240</a>         <span class="keywordtype">bool</span> <a class="code" href="classestraier_1_1Database.html#a3">close</a>() {  <a name="l00237"></a>00237         }
176  <a name="l00244"></a>00244             <span class="keywordflow">if</span> (<a class="code" href="classestraier_1_1Database.html#r0">db</a>) {  <a name="l00238"></a><a class="code" href="classestraier_1_1Database.html#a46">00238</a>         ~<a class="code" href="classestraier_1_1Database.html">Database</a>() {
177  <a name="l00245"></a>00245                 <span class="keywordtype">int</span> <a class="code" href="classestraier_1_1Database.html#r1">ecode</a>;  <a name="l00239"></a>00239             <span class="keywordflow">if</span> (<a class="code" href="classestraier_1_1Database.html#r0">db</a>) <a class="code" href="classestraier_1_1Database.html#a3">close</a>();
178  <a name="l00246"></a>00246                 <span class="keywordtype">bool</span> result = est_mtdb_close(<a class="code" href="classestraier_1_1Database.html#r0">db</a>, &amp;ecode);  <a name="l00240"></a>00240         }
179  <a name="l00247"></a>00247                 <a class="code" href="classestraier_1_1Database.html#r0">db</a> = NULL;  <a name="l00241"></a><a class="code" href="classestraier_1_1Database.html#a47">00241</a>         <span class="keywordtype">bool</span> <a class="code" href="classestraier_1_1Database.html#a2">open</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> * dbname, <span class="keywordtype">int</span> mode) {
180  <a name="l00248"></a>00248                 <span class="keywordflow">return</span> result;  <a name="l00245"></a>00245             <span class="keywordflow">if</span> (<a class="code" href="classestraier_1_1Database.html#r0">db</a>) <a class="code" href="classestraier_1_1Database.html#a3">close</a>();
181  <a name="l00249"></a>00249             } <span class="keywordflow">else</span> {  <a name="l00246"></a>00246             <span class="keywordtype">int</span> ec;
182  <a name="l00250"></a>00250                 <span class="keywordflow">return</span> <span class="keyword">false</span>;  <a name="l00247"></a>00247             <a class="code" href="classestraier_1_1Database.html#r0">db</a> = est_mtdb_open(dbname, mode, &amp;ec);
183  <a name="l00251"></a>00251             }  <a name="l00248"></a>00248             <span class="keywordflow">if</span> (!<a class="code" href="classestraier_1_1Database.html#r0">db</a>) <a class="code" href="classestraier_1_1Database.html#r1">ecode</a> = ec;
184  <a name="l00252"></a>00252         }  <a name="l00249"></a>00249             <span class="keywordflow">return</span> <a class="code" href="classestraier_1_1Database.html#r0">db</a>;
185  <a name="l00253"></a><a class="code" href="classestraier_1_1Database.html#a49">00253</a>         <span class="keywordtype">bool</span> <a class="code" href="classestraier_1_1Database.html#a4">put_doc</a>(<a class="code" href="classestraier_1_1Document.html">Document</a> *doc, <span class="keywordtype">int</span> options) {  <a name="l00250"></a>00250         }
186  <a name="l00257"></a>00257             <span class="keywordflow">return</span> est_mtdb_put_doc(<a class="code" href="classestraier_1_1Database.html#r0">db</a>, doc-&gt;doc, options);  <a name="l00251"></a><a class="code" href="classestraier_1_1Database.html#a48">00251</a>         <span class="keywordtype">bool</span> <a class="code" href="classestraier_1_1Database.html#a3">close</a>() {
187  <a name="l00258"></a>00258         }  <a name="l00255"></a>00255             <span class="keywordflow">if</span> (!<a class="code" href="classestraier_1_1Database.html#r0">db</a>) <span class="keywordflow">throw</span> <a class="code" href="classestraier_1_1IOError.html">IOError</a>(<span class="stringliteral">"closed database"</span>);
188  <a name="l00259"></a><a class="code" href="classestraier_1_1Database.html#a50">00259</a>         std::vector&lt;int&gt; * <a class="code" href="classestraier_1_1Database.html#a5">search</a>(<a class="code" href="classestraier_1_1Condition.html">Condition</a> * cond, <span class="keywordtype">int</span> options) {  <a name="l00256"></a>00256             <span class="keywordtype">int</span> ec;
189  <a name="l00263"></a>00263             <span class="keywordtype">int</span> resnum;  <a name="l00257"></a>00257             <span class="keywordtype">bool</span> result = est_mtdb_close(<a class="code" href="classestraier_1_1Database.html#r0">db</a>, &amp;ec);
190  <a name="l00264"></a>00264             <span class="keywordtype">int</span> * result = est_mtdb_search(<a class="code" href="classestraier_1_1Database.html#r0">db</a>, cond-&gt;cond, &amp;resnum, NULL);  <a name="l00258"></a>00258             <span class="keywordflow">if</span> (!result) <a class="code" href="classestraier_1_1Database.html#r1">ecode</a> = ec;
191  <a name="l00265"></a>00265             std::vector&lt;int&gt; *numbers = <span class="keyword">new</span> std::vector&lt;int&gt;;    <a name="l00259"></a>00259             <a class="code" href="classestraier_1_1Database.html#r0">db</a> = NULL;
192  <a name="l00266"></a>00266             <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0; i&lt;resnum; i++) {  <a name="l00260"></a>00260             <span class="keywordflow">return</span> result;
193  <a name="l00267"></a>00267                 numbers-&gt;push_back(result[i]);  <a name="l00261"></a>00261         }
194  <a name="l00268"></a>00268             }  <a name="l00262"></a><a class="code" href="classestraier_1_1Database.html#a49">00262</a>         <span class="keywordtype">bool</span> <a class="code" href="classestraier_1_1Database.html#a4">put_doc</a>(<a class="code" href="classestraier_1_1Document.html">Document</a> *doc, <span class="keywordtype">int</span> options) {
195  <a name="l00269"></a>00269             <span class="keywordflow">return</span> numbers;  <a name="l00266"></a>00266             <span class="keywordflow">if</span> (!<a class="code" href="classestraier_1_1Database.html#r0">db</a>) <span class="keywordflow">throw</span> <a class="code" href="classestraier_1_1IOError.html">IOError</a>(<span class="stringliteral">"closed database"</span>);
196    <a name="l00267"></a>00267             <span class="keywordtype">bool</span> result = est_mtdb_put_doc(<a class="code" href="classestraier_1_1Database.html#r0">db</a>, doc-&gt;doc, options);
197    <a name="l00268"></a>00268             <span class="keywordflow">if</span> (!result) <a class="code" href="classestraier_1_1Database.html#r1">ecode</a> = est_mtdb_error(<a class="code" href="classestraier_1_1Database.html#r0">db</a>);
198    <a name="l00269"></a>00269             <span class="keywordflow">return</span> result;
199  <a name="l00270"></a>00270         }  <a name="l00270"></a>00270         }
200  <a name="l00271"></a><a class="code" href="classestraier_1_1Database.html#e2">00271</a>         <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="classestraier_1_1Database.html#e0">err_msg</a>(<span class="keywordtype">int</span> ecode) {  <a name="l00271"></a><a class="code" href="classestraier_1_1Database.html#a50">00271</a>         std::vector&lt;int&gt; * <a class="code" href="classestraier_1_1Database.html#a5">search</a>(<a class="code" href="classestraier_1_1Condition.html">Condition</a> * cond, <span class="keywordtype">int</span> options) {
201  <a name="l00275"></a>00275             <span class="keywordflow">return</span> est_err_msg(ecode);  <a name="l00275"></a>00275             <span class="keywordflow">if</span> (!<a class="code" href="classestraier_1_1Database.html#r0">db</a>) <span class="keywordflow">throw</span> <a class="code" href="classestraier_1_1IOError.html">IOError</a>(<span class="stringliteral">"closed database"</span>);
202  <a name="l00276"></a>00276         }  <a name="l00276"></a>00276             <span class="keywordtype">int</span> resnum;
203  <a name="l00277"></a><a class="code" href="classestraier_1_1Database.html#a51">00277</a>         <span class="keywordtype">int</span> <a class="code" href="classestraier_1_1Database.html#a6">error</a>() {  <a name="l00277"></a>00277             <span class="keywordtype">int</span> * result = est_mtdb_search(<a class="code" href="classestraier_1_1Database.html#r0">db</a>, cond-&gt;cond, &amp;resnum, NULL);
204  <a name="l00281"></a>00281             <span class="keywordflow">return</span> est_mtdb_error(<a class="code" href="classestraier_1_1Database.html#r0">db</a>);  <a name="l00278"></a>00278             std::vector&lt;int&gt; *numbers = <span class="keyword">new</span> std::vector&lt;int&gt;;  
205  <a name="l00282"></a>00282         }  <a name="l00279"></a>00279             <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0; i&lt;resnum; i++) {
206  <a name="l00283"></a><a class="code" href="classestraier_1_1Database.html#a52">00283</a>         <span class="keywordtype">bool</span> <a class="code" href="classestraier_1_1Database.html#a7">fatal</a>() {  <a name="l00280"></a>00280                 numbers-&gt;push_back(result[i]);
207  <a name="l00287"></a>00287             <span class="keywordflow">return</span> est_mtdb_fatal(<a class="code" href="classestraier_1_1Database.html#r0">db</a>);  <a name="l00281"></a>00281             }
208  <a name="l00288"></a>00288         }  <a name="l00282"></a>00282             <span class="keywordflow">return</span> numbers;
209  <a name="l00289"></a><a class="code" href="classestraier_1_1Database.html#a53">00289</a>         <span class="keywordtype">bool</span> <a class="code" href="classestraier_1_1Database.html#a8">flush</a>(<span class="keywordtype">int</span> _max) {  <a name="l00283"></a>00283         }
210  <a name="l00293"></a>00293             <span class="keywordflow">return</span> est_mtdb_flush(<a class="code" href="classestraier_1_1Database.html#r0">db</a>, _max);  <a name="l00284"></a><a class="code" href="classestraier_1_1Database.html#e2">00284</a>         <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="classestraier_1_1Database.html#e0">err_msg</a>(<span class="keywordtype">int</span> ecode) {
211  <a name="l00294"></a>00294         }  <a name="l00288"></a>00288             <span class="keywordflow">return</span> est_err_msg(ecode);
212  <a name="l00295"></a><a class="code" href="classestraier_1_1Database.html#a54">00295</a>         <span class="keywordtype">bool</span> <a class="code" href="classestraier_1_1Database.html#a9">sync</a>() {  <a name="l00289"></a>00289         }
213  <a name="l00299"></a>00299             <span class="keywordflow">return</span> est_mtdb_sync(<a class="code" href="classestraier_1_1Database.html#r0">db</a>);  <a name="l00290"></a><a class="code" href="classestraier_1_1Database.html#a51">00290</a>         <span class="keywordtype">int</span> <a class="code" href="classestraier_1_1Database.html#a6">error</a>() {
214  <a name="l00300"></a>00300         }  <a name="l00294"></a>00294             <span class="keywordflow">return</span> <a class="code" href="classestraier_1_1Database.html#r1">ecode</a>;
215  <a name="l00301"></a><a class="code" href="classestraier_1_1Database.html#a55">00301</a>         <span class="keywordtype">bool</span> <a class="code" href="classestraier_1_1Database.html#a10">optimize</a>(<span class="keywordtype">int</span> options) {  <a name="l00295"></a>00295         }
216  <a name="l00305"></a>00305             <span class="keywordflow">return</span> est_mtdb_optimize(<a class="code" href="classestraier_1_1Database.html#r0">db</a>, options);  <a name="l00296"></a><a class="code" href="classestraier_1_1Database.html#a52">00296</a>         <span class="keywordtype">bool</span> <a class="code" href="classestraier_1_1Database.html#a7">fatal</a>() {
217  <a name="l00306"></a>00306         }  <a name="l00300"></a>00300             <span class="keywordflow">if</span> (!<a class="code" href="classestraier_1_1Database.html#r0">db</a>) <span class="keywordflow">throw</span> <a class="code" href="classestraier_1_1IOError.html">IOError</a>(<span class="stringliteral">"closed database"</span>);
218  <a name="l00307"></a><a class="code" href="classestraier_1_1Database.html#a56">00307</a>         <span class="keywordtype">bool</span> <a class="code" href="classestraier_1_1Database.html#a11">out_doc</a>(<span class="keywordtype">int</span> <span class="keywordtype">id</span>, <span class="keywordtype">int</span> options) {  <a name="l00301"></a>00301             <span class="keywordflow">return</span> est_mtdb_fatal(<a class="code" href="classestraier_1_1Database.html#r0">db</a>);
219  <a name="l00311"></a>00311             <span class="keywordflow">return</span> est_mtdb_out_doc(<a class="code" href="classestraier_1_1Database.html#r0">db</a>, <span class="keywordtype">id</span>, options);  <a name="l00302"></a>00302         }
220  <a name="l00312"></a>00312         }  <a name="l00303"></a><a class="code" href="classestraier_1_1Database.html#a53">00303</a>         <span class="keywordtype">bool</span> <a class="code" href="classestraier_1_1Database.html#a8">flush</a>(<span class="keywordtype">int</span> _max) {
221  <a name="l00313"></a><a class="code" href="classestraier_1_1Database.html#a57">00313</a>         <a class="code" href="classestraier_1_1Document.html">Document</a> * <a class="code" href="classestraier_1_1Database.html#a13">get_doc</a>(<span class="keywordtype">int</span> <span class="keywordtype">id</span>, <span class="keywordtype">int</span> options) {  <a name="l00307"></a>00307             <span class="keywordflow">if</span> (!<a class="code" href="classestraier_1_1Database.html#r0">db</a>) <span class="keywordflow">throw</span> <a class="code" href="classestraier_1_1IOError.html">IOError</a>(<span class="stringliteral">"closed database"</span>);
222  <a name="l00317"></a>00317             ESTDOC *doc = est_mtdb_get_doc(<a class="code" href="classestraier_1_1Database.html#r0">db</a>, <span class="keywordtype">id</span>, options);  <a name="l00308"></a>00308             <span class="keywordtype">bool</span> result = est_mtdb_flush(<a class="code" href="classestraier_1_1Database.html#r0">db</a>, _max);
223  <a name="l00318"></a>00318             <span class="keywordflow">if</span> (!doc) {  <a name="l00309"></a>00309             <span class="keywordflow">if</span> (!result) <a class="code" href="classestraier_1_1Database.html#r1">ecode</a> = est_mtdb_error(<a class="code" href="classestraier_1_1Database.html#r0">db</a>);
224  <a name="l00319"></a>00319                 <span class="keywordflow">throw</span> est_err_msg(est_mtdb_error(<a class="code" href="classestraier_1_1Database.html#r0">db</a>));  <a name="l00310"></a>00310             <span class="keywordflow">return</span> result;
225  <a name="l00320"></a>00320             } <span class="keywordflow">else</span> {  <a name="l00311"></a>00311         }
226  <a name="l00321"></a>00321                 <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="classestraier_1_1Document.html">Document</a>(doc);  <a name="l00312"></a><a class="code" href="classestraier_1_1Database.html#a54">00312</a>         <span class="keywordtype">bool</span> <a class="code" href="classestraier_1_1Database.html#a9">sync</a>() {
227  <a name="l00322"></a>00322             }  <a name="l00316"></a>00316             <span class="keywordflow">if</span> (!<a class="code" href="classestraier_1_1Database.html#r0">db</a>) <span class="keywordflow">throw</span> <a class="code" href="classestraier_1_1IOError.html">IOError</a>(<span class="stringliteral">"closed database"</span>);
228  <a name="l00323"></a>00323         }  <a name="l00317"></a>00317             <span class="keywordtype">bool</span> result = est_mtdb_sync(<a class="code" href="classestraier_1_1Database.html#r0">db</a>);
229  <a name="l00324"></a><a class="code" href="classestraier_1_1Database.html#a58">00324</a>         <span class="keywordtype">int</span> <a class="code" href="classestraier_1_1Database.html#a14">uri_to_id</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *uri) {  <a name="l00318"></a>00318             <span class="keywordflow">if</span> (!result) <a class="code" href="classestraier_1_1Database.html#r1">ecode</a> = est_mtdb_error(<a class="code" href="classestraier_1_1Database.html#r0">db</a>);
230  <a name="l00328"></a>00328             <span class="keywordflow">return</span> est_mtdb_uri_to_id(<a class="code" href="classestraier_1_1Database.html#r0">db</a>, uri);  <a name="l00319"></a>00319             <span class="keywordflow">return</span> result;
231    <a name="l00320"></a>00320         }
232    <a name="l00321"></a><a class="code" href="classestraier_1_1Database.html#a55">00321</a>         <span class="keywordtype">bool</span> <a class="code" href="classestraier_1_1Database.html#a10">optimize</a>(<span class="keywordtype">int</span> options) {
233    <a name="l00325"></a>00325             <span class="keywordflow">if</span> (!<a class="code" href="classestraier_1_1Database.html#r0">db</a>) <span class="keywordflow">throw</span> <a class="code" href="classestraier_1_1IOError.html">IOError</a>(<span class="stringliteral">"closed database"</span>);
234    <a name="l00326"></a>00326             <span class="keywordtype">bool</span> result = est_mtdb_optimize(<a class="code" href="classestraier_1_1Database.html#r0">db</a>, options);
235    <a name="l00327"></a>00327             <span class="keywordflow">if</span> (!result) <a class="code" href="classestraier_1_1Database.html#r1">ecode</a> = est_mtdb_error(<a class="code" href="classestraier_1_1Database.html#r0">db</a>);
236    <a name="l00328"></a>00328             <span class="keywordflow">return</span> result;
237  <a name="l00329"></a>00329         }  <a name="l00329"></a>00329         }
238  <a name="l00330"></a><a class="code" href="classestraier_1_1Database.html#a59">00330</a>         std::map&lt;std::string, std::string&gt; * <a class="code" href="classestraier_1_1Database.html#a15">etch_doc</a>(<a class="code" href="classestraier_1_1Document.html">Document</a> * doc, <span class="keywordtype">int</span> max) {  <a name="l00330"></a><a class="code" href="classestraier_1_1Database.html#a56">00330</a>         <span class="keywordtype">bool</span> <a class="code" href="classestraier_1_1Database.html#a11">out_doc</a>(<span class="keywordtype">int</span> <span class="keywordtype">id</span>, <span class="keywordtype">int</span> options) {
239  <a name="l00334"></a>00334             std::map&lt;std::string, std::string&gt; * mss = <span class="keyword">new</span> std::map&lt;std::string, std::string&gt;;  <a name="l00334"></a>00334             <span class="keywordflow">if</span> (!<a class="code" href="classestraier_1_1Database.html#r0">db</a>) <span class="keywordflow">throw</span> <a class="code" href="classestraier_1_1IOError.html">IOError</a>(<span class="stringliteral">"closed database"</span>);
240  <a name="l00335"></a>00335  <a name="l00335"></a>00335             <span class="keywordtype">bool</span> result = est_mtdb_out_doc(<a class="code" href="classestraier_1_1Database.html#r0">db</a>, <span class="keywordtype">id</span>, options);
241  <a name="l00336"></a>00336             CBMAP * keys = est_mtdb_etch_doc(<a class="code" href="classestraier_1_1Database.html#r0">db</a>, doc-&gt;doc, max);  <a name="l00336"></a>00336             <span class="keywordflow">if</span> (!result) <a class="code" href="classestraier_1_1Database.html#r1">ecode</a> = est_mtdb_error(<a class="code" href="classestraier_1_1Database.html#r0">db</a>);
242  <a name="l00337"></a>00337  <a name="l00337"></a>00337             <span class="keywordflow">return</span> result;
243  <a name="l00338"></a>00338             cbmapiterinit(keys);  <a name="l00338"></a>00338         }
244  <a name="l00339"></a>00339             <span class="keywordtype">int</span> ksiz;  <a name="l00339"></a><a class="code" href="classestraier_1_1Database.html#a57">00339</a>         <span class="keywordtype">bool</span> <a class="code" href="classestraier_1_1Database.html#a12">edit_doc</a>(<a class="code" href="classestraier_1_1Document.html">Document</a> *doc) {
245  <a name="l00340"></a>00340             <span class="keywordflow">while</span> (<span class="keyword">const</span> <span class="keywordtype">char</span> *key = cbmapiternext(keys, &amp;ksiz)) {  <a name="l00343"></a>00343             <span class="keywordflow">if</span> (!<a class="code" href="classestraier_1_1Database.html#r0">db</a>) <span class="keywordflow">throw</span> <a class="code" href="classestraier_1_1IOError.html">IOError</a>(<span class="stringliteral">"closed database"</span>);
246  <a name="l00341"></a>00341                 mss-&gt;insert(std::make_pair(key, cbmapget(keys, key, ksiz, NULL)));  <a name="l00344"></a>00344             <span class="keywordtype">bool</span> result = est_mtdb_edit_doc(<a class="code" href="classestraier_1_1Database.html#r0">db</a>, doc-&gt;doc);
247  <a name="l00342"></a>00342             }  <a name="l00345"></a>00345             <span class="keywordflow">if</span> (!result) <a class="code" href="classestraier_1_1Database.html#r1">ecode</a> = est_mtdb_error(<a class="code" href="classestraier_1_1Database.html#r0">db</a>);
248  <a name="l00343"></a>00343             <span class="keywordflow">return</span> mss;  <a name="l00346"></a>00346             <span class="keywordflow">return</span> result;
249  <a name="l00344"></a>00344         }  <a name="l00347"></a>00347         }
250  <a name="l00345"></a><a class="code" href="classestraier_1_1Database.html#a60">00345</a>         <span class="keywordtype">bool</span> <a class="code" href="classestraier_1_1Database.html#a37">iter_init</a>() {  <a name="l00348"></a><a class="code" href="classestraier_1_1Database.html#a58">00348</a>         <a class="code" href="classestraier_1_1Document.html">Document</a> * <a class="code" href="classestraier_1_1Database.html#a13">get_doc</a>(<span class="keywordtype">int</span> <span class="keywordtype">id</span>, <span class="keywordtype">int</span> options) {
251  <a name="l00349"></a>00349             <span class="keywordflow">return</span> est_mtdb_iter_init(<a class="code" href="classestraier_1_1Database.html#r0">db</a>);  <a name="l00352"></a>00352             <span class="keywordflow">if</span> (!<a class="code" href="classestraier_1_1Database.html#r0">db</a>) <span class="keywordflow">throw</span> <a class="code" href="classestraier_1_1IOError.html">IOError</a>(<span class="stringliteral">"closed database"</span>);
252  <a name="l00350"></a>00350         }  <a name="l00353"></a>00353             ESTDOC *doc = est_mtdb_get_doc(<a class="code" href="classestraier_1_1Database.html#r0">db</a>, <span class="keywordtype">id</span>, options);
253  <a name="l00351"></a><a class="code" href="classestraier_1_1Database.html#a61">00351</a>         <span class="keywordtype">int</span> <a class="code" href="classestraier_1_1Database.html#a38">iter_next</a>() {  <a name="l00354"></a>00354             <span class="keywordflow">if</span> (!doc) {
254  <a name="l00355"></a>00355             <span class="keywordflow">return</span> est_mtdb_iter_next(<a class="code" href="classestraier_1_1Database.html#r0">db</a>);  <a name="l00355"></a>00355                 <a class="code" href="classestraier_1_1Database.html#r1">ecode</a> = est_mtdb_error(<a class="code" href="classestraier_1_1Database.html#r0">db</a>);
255  <a name="l00356"></a>00356         }  <a name="l00356"></a>00356                 <span class="keywordflow">throw</span> est_err_msg(est_mtdb_error(<a class="code" href="classestraier_1_1Database.html#r0">db</a>));
256  <a name="l00357"></a><a class="code" href="classestraier_1_1Database.html#a62">00357</a>         <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="classestraier_1_1Database.html#a16">name</a>() {  <a name="l00357"></a>00357             } <span class="keywordflow">else</span> {
257  <a name="l00361"></a>00361             <span class="keywordflow">return</span> est_mtdb_name(<a class="code" href="classestraier_1_1Database.html#r0">db</a>);  <a name="l00358"></a>00358                 <span class="keywordflow">return</span> <span class="keyword">new</span> <a class="code" href="classestraier_1_1Document.html">Document</a>(doc);
258  <a name="l00362"></a>00362         }  <a name="l00359"></a>00359             }
259  <a name="l00363"></a><a class="code" href="classestraier_1_1Database.html#a63">00363</a>         <span class="keywordtype">int</span> <a class="code" href="classestraier_1_1Database.html#a17">doc_num</a>() {  <a name="l00360"></a>00360         }
260  <a name="l00367"></a>00367             <span class="keywordflow">return</span> est_mtdb_doc_num(<a class="code" href="classestraier_1_1Database.html#r0">db</a>);  <a name="l00361"></a><a class="code" href="classestraier_1_1Database.html#a59">00361</a>         <span class="keywordtype">int</span> <a class="code" href="classestraier_1_1Database.html#a14">uri_to_id</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *uri) {
261  <a name="l00368"></a>00368         }  <a name="l00365"></a>00365             <span class="keywordflow">if</span> (!<a class="code" href="classestraier_1_1Database.html#r0">db</a>) <span class="keywordflow">throw</span> <a class="code" href="classestraier_1_1IOError.html">IOError</a>(<span class="stringliteral">"closed database"</span>);
262  <a name="l00369"></a><a class="code" href="classestraier_1_1Database.html#a64">00369</a>         <span class="keywordtype">int</span> <a class="code" href="classestraier_1_1Database.html#a18">word_num</a>() {  <a name="l00366"></a>00366             <span class="keywordtype">int</span> result = est_mtdb_uri_to_id(<a class="code" href="classestraier_1_1Database.html#r0">db</a>, uri);
263  <a name="l00373"></a>00373             <span class="keywordflow">return</span> est_mtdb_word_num(<a class="code" href="classestraier_1_1Database.html#r0">db</a>);  <a name="l00367"></a>00367             <span class="keywordflow">if</span>(result == -1) <a class="code" href="classestraier_1_1Database.html#r1">ecode</a> = est_mtdb_error(<a class="code" href="classestraier_1_1Database.html#r0">db</a>);
264  <a name="l00374"></a>00374         }  <a name="l00368"></a>00368             <span class="keywordflow">return</span> result;
265  <a name="l00375"></a><a class="code" href="classestraier_1_1Database.html#a65">00375</a>         <span class="keywordtype">double</span> <a class="code" href="classestraier_1_1Database.html#a19">size</a>() {  <a name="l00369"></a>00369         }
266  <a name="l00379"></a>00379             <span class="keywordflow">return</span> est_mtdb_size(<a class="code" href="classestraier_1_1Database.html#r0">db</a>);  <a name="l00370"></a><a class="code" href="classestraier_1_1Database.html#a60">00370</a>         std::map&lt;std::string, std::string&gt; * <a class="code" href="classestraier_1_1Database.html#a15">etch_doc</a>(<a class="code" href="classestraier_1_1Document.html">Document</a> * doc, <span class="keywordtype">int</span> max) {
267  <a name="l00380"></a>00380         }  <a name="l00374"></a>00374             <span class="keywordflow">if</span> (!<a class="code" href="classestraier_1_1Database.html#r0">db</a>) <span class="keywordflow">throw</span> <a class="code" href="classestraier_1_1IOError.html">IOError</a>(<span class="stringliteral">"closed database"</span>);
268  <a name="l00381"></a><a class="code" href="classestraier_1_1Database.html#a66">00381</a>         <span class="keywordtype">void</span> <a class="code" href="classestraier_1_1Database.html#a20">set_cache_size</a>(size_t size, <span class="keywordtype">int</span> anum, <span class="keywordtype">int</span> tnum) {  <a name="l00375"></a>00375             std::map&lt;std::string, std::string&gt; * mss = <span class="keyword">new</span> std::map&lt;std::string, std::string&gt;;
269  <a name="l00385"></a>00385             est_mtdb_set_cache_size(<a class="code" href="classestraier_1_1Database.html#r0">db</a>, size, anum, tnum);  <a name="l00376"></a>00376             CBMAP * keys = est_mtdb_etch_doc(<a class="code" href="classestraier_1_1Database.html#r0">db</a>, doc-&gt;doc, max);
270  <a name="l00386"></a>00386         }  <a name="l00377"></a>00377             cbmapiterinit(keys);
271  <a name="l00387"></a><a class="code" href="classestraier_1_1Database.html#a67">00387</a>         <span class="keywordtype">void</span> <a class="code" href="classestraier_1_1Database.html#a21">set_special_cache</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">int</span> num) {  <a name="l00378"></a>00378             <span class="keywordtype">int</span> ksiz;
272  <a name="l00392"></a>00392             est_mtdb_set_special_cache(<a class="code" href="classestraier_1_1Database.html#r0">db</a>, name, num);  <a name="l00379"></a>00379             <span class="keywordflow">while</span> (<span class="keyword">const</span> <span class="keywordtype">char</span> *key = cbmapiternext(keys, &amp;ksiz)) {
273  <a name="l00393"></a>00393         }  <a name="l00380"></a>00380                 mss-&gt;insert(std::make_pair(key, cbmapget(keys, key, ksiz, NULL)));
274  <a name="l00394"></a>00394     };  <a name="l00381"></a>00381             }
275  <a name="l00395"></a>00395 };  <a name="l00382"></a>00382             <span class="keywordflow">return</span> mss;
276  </pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Sep 1 08:07:53 2005 for HyperEstraierWrapper by&nbsp;  <a name="l00383"></a>00383         }
277    <a name="l00384"></a><a class="code" href="classestraier_1_1Database.html#a61">00384</a>         <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="classestraier_1_1Database.html#a16">name</a>() {
278    <a name="l00388"></a>00388             <span class="keywordflow">if</span> (!<a class="code" href="classestraier_1_1Database.html#r0">db</a>) <span class="keywordflow">throw</span> <a class="code" href="classestraier_1_1IOError.html">IOError</a>(<span class="stringliteral">"closed database"</span>);
279    <a name="l00389"></a>00389             <span class="keywordflow">return</span> est_mtdb_name(<a class="code" href="classestraier_1_1Database.html#r0">db</a>);
280    <a name="l00390"></a>00390         }
281    <a name="l00391"></a><a class="code" href="classestraier_1_1Database.html#a62">00391</a>         <span class="keywordtype">int</span> <a class="code" href="classestraier_1_1Database.html#a17">doc_num</a>() {
282    <a name="l00395"></a>00395             <span class="keywordflow">if</span> (!<a class="code" href="classestraier_1_1Database.html#r0">db</a>) <span class="keywordflow">throw</span> <a class="code" href="classestraier_1_1IOError.html">IOError</a>(<span class="stringliteral">"closed database"</span>);
283    <a name="l00396"></a>00396             <span class="keywordflow">return</span> est_mtdb_doc_num(<a class="code" href="classestraier_1_1Database.html#r0">db</a>);
284    <a name="l00397"></a>00397         }
285    <a name="l00398"></a><a class="code" href="classestraier_1_1Database.html#a63">00398</a>         <span class="keywordtype">int</span> <a class="code" href="classestraier_1_1Database.html#a18">word_num</a>() {
286    <a name="l00402"></a>00402             <span class="keywordflow">if</span> (!<a class="code" href="classestraier_1_1Database.html#r0">db</a>) <span class="keywordflow">throw</span> <a class="code" href="classestraier_1_1IOError.html">IOError</a>(<span class="stringliteral">"closed database"</span>);
287    <a name="l00403"></a>00403             <span class="keywordflow">return</span> est_mtdb_word_num(<a class="code" href="classestraier_1_1Database.html#r0">db</a>);
288    <a name="l00404"></a>00404         }
289    <a name="l00405"></a><a class="code" href="classestraier_1_1Database.html#a64">00405</a>         <span class="keywordtype">double</span> <a class="code" href="classestraier_1_1Database.html#a19">size</a>() {
290    <a name="l00409"></a>00409             <span class="keywordflow">if</span> (!<a class="code" href="classestraier_1_1Database.html#r0">db</a>) <span class="keywordflow">throw</span> <a class="code" href="classestraier_1_1IOError.html">IOError</a>(<span class="stringliteral">"closed database"</span>);
291    <a name="l00410"></a>00410             <span class="keywordflow">return</span> est_mtdb_size(<a class="code" href="classestraier_1_1Database.html#r0">db</a>);
292    <a name="l00411"></a>00411         }
293    <a name="l00412"></a><a class="code" href="classestraier_1_1Database.html#a65">00412</a>         <span class="keywordtype">void</span> <a class="code" href="classestraier_1_1Database.html#a20">set_cache_size</a>(size_t size, <span class="keywordtype">int</span> anum, <span class="keywordtype">int</span> tnum) {
294    <a name="l00416"></a>00416             <span class="keywordflow">if</span> (!<a class="code" href="classestraier_1_1Database.html#r0">db</a>) <span class="keywordflow">throw</span> <a class="code" href="classestraier_1_1IOError.html">IOError</a>(<span class="stringliteral">"closed database"</span>);
295    <a name="l00417"></a>00417             est_mtdb_set_cache_size(<a class="code" href="classestraier_1_1Database.html#r0">db</a>, size, anum, tnum);
296    <a name="l00418"></a>00418         }
297    <a name="l00419"></a><a class="code" href="classestraier_1_1Database.html#a66">00419</a>         <span class="keywordtype">void</span> <a class="code" href="classestraier_1_1Database.html#a21">set_special_cache</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *name, <span class="keywordtype">int</span> num) {
298    <a name="l00424"></a>00424             est_mtdb_set_special_cache(<a class="code" href="classestraier_1_1Database.html#r0">db</a>, name, num);
299    <a name="l00425"></a>00425         }
300    <a name="l00426"></a>00426     };
301    <a name="l00427"></a>00427
302    <a name="l00428"></a>00428     <span class="keyword">static</span> std::vector&lt;std::string&gt; * <a class="code" href="namespaceestraier.html#a0">break_text</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *text, <span class="keywordtype">bool</span> norm, <span class="keywordtype">bool</span> tail) {
303    <a name="l00429"></a>00429         std::vector&lt;std::string&gt; * vs = <span class="keyword">new</span> std::vector&lt;std::string&gt;;
304    <a name="l00430"></a>00430         CBLIST *list;
305    <a name="l00431"></a>00431         list = cblistopen();
306    <a name="l00432"></a>00432         est_break_text(text, list, norm, tail);
307    <a name="l00433"></a>00433         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0; i &lt; cblistnum(list); i++) {
308    <a name="l00434"></a>00434             vs-&gt;push_back(cblistval(list, i, NULL));
309    <a name="l00435"></a>00435         }
310    <a name="l00436"></a>00436         cblistclose(list);
311    <a name="l00437"></a>00437         <span class="keywordflow">return</span> vs;
312    <a name="l00438"></a>00438     }
313    <a name="l00439"></a>00439
314    <a name="l00440"></a>00440     <span class="keyword">static</span> std::vector&lt;std::string&gt; * <a class="code" href="namespaceestraier.html#a1">break_text_perfng</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *text, <span class="keywordtype">bool</span> norm, <span class="keywordtype">bool</span> tail) {
315    <a name="l00441"></a>00441         std::vector&lt;std::string&gt; * vs = <span class="keyword">new</span> std::vector&lt;std::string&gt;;
316    <a name="l00442"></a>00442         CBLIST *list;
317    <a name="l00443"></a>00443         list = cblistopen();
318    <a name="l00444"></a>00444         est_break_text_perfng(text, list, norm, tail);
319    <a name="l00445"></a>00445         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0; i &lt; cblistnum(list); i++) {
320    <a name="l00446"></a>00446             vs-&gt;push_back(cblistval(list, i, NULL));
321    <a name="l00447"></a>00447         }
322    <a name="l00448"></a>00448         cblistclose(list);
323    <a name="l00449"></a>00449         <span class="keywordflow">return</span> vs;
324    <a name="l00450"></a>00450     }
325    <a name="l00451"></a>00451
326    <a name="l00452"></a>00452 };
327    </pre></div><hr size="1"><address style="align: right;"><small>Generated on Thu Sep 8 02:02:20 2005 for HyperEstraierWrapper by&nbsp;
328  <a href="http://www.doxygen.org/index.html">  <a href="http://www.doxygen.org/index.html">
329  <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>  <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.4 </small></address>
330  </body>  </body>

Legend:
Removed from v.1  
changed lines
  Added in v.14

  ViewVC Help
Powered by ViewVC 1.1.26