1 /* ----------------------------------------------------------------------------
2  * This file was automatically generated by SWIG (http://www.swig.org).
3  * Version 2.0.5
4  *
5  * Do not make changes to this file unless you know what you are doing--modify
6  * the SWIG interface file instead.
7  * ----------------------------------------------------------------------------- */
8 
9 namespace Xapian {
10 
11 using System;
12 using System.Runtime.InteropServices;
13 
14 public class Compactor : IDisposable {
15   private HandleRef swigCPtr;
16   protected bool swigCMemOwn;
17 
Compactor(IntPtr cPtr, bool cMemoryOwn)18   internal Compactor(IntPtr cPtr, bool cMemoryOwn) {
19     swigCMemOwn = cMemoryOwn;
20     swigCPtr = new HandleRef(this, cPtr);
21   }
22 
getCPtr(Compactor obj)23   internal static HandleRef getCPtr(Compactor obj) {
24     return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr;
25   }
26 
~Compactor()27   ~Compactor() {
28     Dispose();
29   }
30 
Dispose()31   public virtual void Dispose() {
32     lock(this) {
33       if (swigCPtr.Handle != IntPtr.Zero) {
34         if (swigCMemOwn) {
35           swigCMemOwn = false;
36           XapianPINVOKE.delete_Compactor(swigCPtr);
37         }
38         swigCPtr = new HandleRef(null, IntPtr.Zero);
39       }
40       GC.SuppressFinalize(this);
41     }
42   }
43 
Compactor()44   public Compactor() : this(XapianPINVOKE.new_Compactor(), true) {
45     if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
46     SwigDirectorConnect();
47   }
48 
SetBlockSize(uint block_size)49   public void SetBlockSize(uint block_size) {
50     XapianPINVOKE.Compactor_SetBlockSize(swigCPtr, block_size);
51     if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
52   }
53 
SetRenumber(bool renumber)54   public void SetRenumber(bool renumber) {
55     XapianPINVOKE.Compactor_SetRenumber(swigCPtr, renumber);
56     if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
57   }
58 
SetMultipass(bool multipass)59   public void SetMultipass(bool multipass) {
60     XapianPINVOKE.Compactor_SetMultipass(swigCPtr, multipass);
61     if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
62   }
63 
SetCompactionLevel(Compactor.compaction_level compaction)64   public void SetCompactionLevel(Compactor.compaction_level compaction) {
65     XapianPINVOKE.Compactor_SetCompactionLevel(swigCPtr, (int)compaction);
66     if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
67   }
68 
SetDestdir(string destdir)69   public void SetDestdir(string destdir) {
70     XapianPINVOKE.Compactor_SetDestdir(swigCPtr, destdir);
71     if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
72   }
73 
AddSource(string srcdir)74   public void AddSource(string srcdir) {
75     XapianPINVOKE.Compactor_AddSource(swigCPtr, srcdir);
76     if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
77   }
78 
Compact()79   public void Compact() {
80     XapianPINVOKE.Compactor_Compact(swigCPtr);
81     if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
82   }
83 
SetStatus(string table, string status)84   public virtual void SetStatus(string table, string status) {
85     if (SwigDerivedClassHasMethod("SetStatus", swigMethodTypes0)) XapianPINVOKE.Compactor_SetStatusSwigExplicitCompactor(swigCPtr, table, status); else XapianPINVOKE.Compactor_SetStatus(swigCPtr, table, status);
86     if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
87   }
88 
ResolveDuplicateMetadata(string key, uint num_tags, SWIGTYPE_p_std__string tags)89   public virtual string ResolveDuplicateMetadata(string key, uint num_tags, SWIGTYPE_p_std__string tags) {
90     string ret = (SwigDerivedClassHasMethod("ResolveDuplicateMetadata", swigMethodTypes1) ? XapianPINVOKE.Compactor_ResolveDuplicateMetadataSwigExplicitCompactor(swigCPtr, key, num_tags, SWIGTYPE_p_std__string.getCPtr(tags)) : XapianPINVOKE.Compactor_ResolveDuplicateMetadata(swigCPtr, key, num_tags, SWIGTYPE_p_std__string.getCPtr(tags)));
91     if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
92     return ret;
93   }
94 
SwigDirectorConnect()95   private void SwigDirectorConnect() {
96     if (SwigDerivedClassHasMethod("SetStatus", swigMethodTypes0))
97       swigDelegate0 = new SwigDelegateCompactor_0(SwigDirectorSetStatus);
98     if (SwigDerivedClassHasMethod("ResolveDuplicateMetadata", swigMethodTypes1))
99       swigDelegate1 = new SwigDelegateCompactor_1(SwigDirectorResolveDuplicateMetadata);
100     XapianPINVOKE.Compactor_director_connect(swigCPtr, swigDelegate0, swigDelegate1);
101   }
102 
SwigDerivedClassHasMethod(string methodName, Type[] methodTypes)103   private bool SwigDerivedClassHasMethod(string methodName, Type[] methodTypes) {
104     System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance, null, methodTypes, null);
105     bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(Compactor));
106     return hasDerivedMethod;
107   }
108 
SwigDirectorSetStatus(string table, string status)109   private void SwigDirectorSetStatus(string table, string status) {
110     SetStatus(table, status);
111   }
112 
SwigDirectorResolveDuplicateMetadata(string key, uint num_tags, IntPtr tags)113   private string SwigDirectorResolveDuplicateMetadata(string key, uint num_tags, IntPtr tags) {
114     return ResolveDuplicateMetadata(key, num_tags, (tags == IntPtr.Zero) ? null : new SWIGTYPE_p_std__string(tags, false));
115   }
116 
SwigDelegateCompactor_0(string table, string status)117   public delegate void SwigDelegateCompactor_0(string table, string status);
SwigDelegateCompactor_1(string key, uint num_tags, IntPtr tags)118   public delegate string SwigDelegateCompactor_1(string key, uint num_tags, IntPtr tags);
119 
120   private SwigDelegateCompactor_0 swigDelegate0;
121   private SwigDelegateCompactor_1 swigDelegate1;
122 
123   private static Type[] swigMethodTypes0 = new Type[] { typeof(string), typeof(string) };
124   private static Type[] swigMethodTypes1 = new Type[] { typeof(string), typeof(uint), typeof(SWIGTYPE_p_std__string) };
125   public enum compaction_level {
126     STANDARD,
127     FULL,
128     FULLER
129   }
130 
131 }
132 
133 }
134