public void Test2EnsureCollection() { EJDB jb = new EJDB("testdb1", EJDB.DEFAULT_OPEN_MODE | EJDB.JBOTRUNC); EJDBCollectionOptionsN co = new EJDBCollectionOptionsN(); co.large = true; co.compressed = false; co.records = 50000; Assert.IsTrue(jb.EnsureCollection("mycoll2", co)); jb.Dispose(); }
internal static IntPtr _ejdbcreatecoll(IntPtr db, String cname, EJDBCollectionOptionsN?opts) { IntPtr cptr = Native.NativeUtf8FromString(cname); //UnixMarshal.StringToHeap(cname, Encoding.UTF8); try { if (opts == null) { return(_ejdbcreatecoll(db, cptr, IntPtr.Zero)); } else { EJDBCollectionOptionsN nopts = (EJDBCollectionOptionsN)opts; return(_ejdbcreatecoll(db, cptr, ref nopts)); } } finally { Marshal.FreeHGlobal(cptr); //UnixMarshal.FreeHeap(cptr); } }
internal static IntPtr _ejdbcreatecoll(IntPtr db, String cname, EJDBCollectionOptionsN? opts) { IntPtr cptr = UnixMarshal.StringToHeap(cname, Encoding.UTF8); try { if (opts == null) { return _ejdbcreatecoll(db, cptr, IntPtr.Zero); } else { EJDBCollectionOptionsN nopts = (EJDBCollectionOptionsN) opts; return _ejdbcreatecoll(db, cptr, ref nopts); } } finally { UnixMarshal.FreeHeap(cptr); } }
internal static extern IntPtr _ejdbcreatecoll([In] IntPtr db, [In] IntPtr cname, ref EJDBCollectionOptionsN opts);
/// <summary> /// Automatically creates new collection if it does't exists. /// </summary> /// <remarks> /// Collection options <c>copts</c> are applied only for newly created collection. /// For existing collections <c>copts</c> has no effect. /// </remarks> /// <returns><c>false</c> error ocurried.</returns> /// <param name="cname">Name of collection.</param> /// <param name="copts">Collection options.</param> public bool EnsureCollection(string cname, EJDBCollectionOptionsN? copts = null) { CheckDisposed(); IntPtr cptr = _ejdbcreatecoll(_db, cname, copts); bool rv = (cptr != IntPtr.Zero); if (_throwonfail && !rv) { throw new EJDBException(this); } return rv; }
internal static extern IntPtr _ejdbcreatecoll([In] IntPtr db, [In] IntPtr cname, ref EJDBCollectionOptionsN opts);