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