AcTools.LapTimes.LevelDbUtils.LevelDbInterop.leveldb_comparator_create C# (CSharp) Method

leveldb_comparator_create() private method

private leveldb_comparator_create ( IntPtr state, IntPtr destructor, IntPtr compare, IntPtr name ) : IntPtr
state System.IntPtr
destructor System.IntPtr
compare System.IntPtr
name System.IntPtr
return System.IntPtr
                leveldb_comparator_create(
                IntPtr /* void* */ state,
                IntPtr /* void (*)(void*) */ destructor,
                IntPtr
                        /* int (*compare)(void*,
                              const char* a, size_t alen,
                              const char* b, size_t blen) */
                        compare,
                IntPtr /* const char* (*)(void*) */ name);

Usage Example

Example #1
0
            public IntPtr Init(string name, Func <NativeArray, NativeArray, int> cmp)
            {
                // TODO: Complete member initialization
                _cmp = cmp;

                _namePinned = GCHandle.Alloc(
                    Encoding.ASCII.GetBytes(name),
                    GCHandleType.Pinned);

                var thisHandle = GCHandle.Alloc(this);
                var chandle    = LevelDbInterop.leveldb_comparator_create(
                    GCHandle.ToIntPtr(thisHandle),
                    Marshal.GetFunctionPointerForDelegate(DestructorInstance),
                    Marshal.GetFunctionPointerForDelegate(CompareInstance),
                    Marshal.GetFunctionPointerForDelegate(NameAccessor));

                if (chandle == default(IntPtr))
                {
                    thisHandle.Free();
                }

                return(chandle);
            }