public static extern bool c4db_getUUIDs(C4Database *database, C4UUID *publicUUID, C4UUID *privateUUID, C4Error *outError);
 public static bool c4db_purgeDoc(C4Database *database, string docID, C4Error *outError)
 {
     using (var docID_ = new C4String(docID)) {
         return(NativeRaw.c4db_purgeDoc(database, docID_.AsFLSlice(), outError));
     }
 }
 public static long c4doc_getExpiration(C4Database *db, string docID, C4Error *outError)
 {
     using (var docID_ = new C4String(docID)) {
         return(NativeRaw.c4doc_getExpiration(db, docID_.AsFLSlice(), outError));
     }
 }
Example #4
0
 public static extern bool c4enum_next(C4DocEnumerator *e, C4Error *outError);
 public static int c4doc_purgeRevision(C4Document *doc, string revID, C4Error *outError)
 {
     using (var revID_ = new C4String(revID)) {
         return(NativeRaw.c4doc_purgeRevision(doc, revID_.AsFLSlice(), outError));
     }
 }
 public static extern bool c4_shutdown(C4Error *outError);
Example #7
0
 public static extern C4DocEnumerator *c4db_enumerateChanges(C4Database *database, ulong since, C4EnumeratorOptions *options, C4Error *outError);
 public static extern C4Database *c4db_open(C4Slice path, C4DatabaseConfig *config, C4Error *outError);
 public static extern bool c4db_copy(C4Slice sourcePath, C4Slice destinationPath, C4DatabaseConfig *config, C4Error *error);
 public static C4RawDocument *c4raw_get(C4Database *database, string storeName, string docID, C4Error *outError)
 {
     using (var storeName_ = new C4String(storeName))
         using (var docID_ = new C4String(docID)) {
             return(NativeRaw.c4raw_get(database, storeName_.AsC4Slice(), docID_.AsC4Slice(), outError));
         }
 }
 public static bool c4raw_put(C4Database *database, string storeName, string key, string meta, string body, C4Error *outError)
 {
     using (var storeName_ = new C4String(storeName))
         using (var key_ = new C4String(key))
             using (var meta_ = new C4String(meta))
                 using (var body_ = new C4String(body)) {
                     return(NativeRaw.c4raw_put(database, storeName_.AsC4Slice(), key_.AsC4Slice(), meta_.AsC4Slice(), body_.AsC4Slice(), outError));
                 }
 }
 public static extern bool c4db_endTransaction(C4Database *database, [MarshalAs(UnmanagedType.U1)] bool commit, C4Error *outError);
 public static extern bool c4db_beginTransaction(C4Database *database, C4Error *outError);
 public static extern bool c4db_compact(C4Database *database, C4Error *outError);
 public static bool c4db_deleteAtPath(string dbPath, C4Error *outError)
 {
     using (var dbPath_ = new C4String(dbPath)) {
         return(NativeRaw.c4db_deleteAtPath(dbPath_.AsC4Slice(), outError));
     }
 }
 public static extern bool c4db_deleteAtPath(C4Slice dbPath, C4Error *outError);
 public static extern bool c4db_rekey(C4Database *database, C4EncryptionKey *newKey, C4Error *outError);
 public static extern C4RawDocument *c4raw_get(C4Database *database, C4Slice storeName, C4Slice docID, C4Error *outError);
Example #19
0
 public static extern bool c4log_writeToBinaryFile(C4LogFileOptions options, C4Error *error);
 public static extern bool c4raw_put(C4Database *database, C4Slice storeName, C4Slice key, C4Slice meta, C4Slice body, C4Error *outError);
Example #21
0
 public static extern C4DocEnumerator *c4db_enumerateAllDocs(C4Database *database, C4EnumeratorOptions *options, C4Error *outError);
 public static C4Database *c4db_open(string path, C4DatabaseConfig *config, C4Error *outError)
 {
     using (var path_ = new C4String(path)) {
         return(NativeRaw.c4db_open(path_.AsC4Slice(), config, outError));
     }
 }
Example #23
0
 public static extern C4Document *c4enum_getDocument(C4DocEnumerator *e, C4Error *outError);
 public static extern C4Database *c4db_openAgain(C4Database *db, C4Error *outError);
 public static bool c4doc_resolveConflict(C4Document *doc, string winningRevID, string losingRevID, byte[] mergedBody, C4RevisionFlags mergedFlags, C4Error *error)
 {
     using (var winningRevID_ = new C4String(winningRevID))
         using (var losingRevID_ = new C4String(losingRevID))
             fixed(byte *mergedBody_ = mergedBody)
             {
                 return(NativeRaw.c4doc_resolveConflict(doc, winningRevID_.AsFLSlice(), losingRevID_.AsFLSlice(), new FLSlice(mergedBody_, mergedBody == null ? 0 : (ulong)mergedBody.Length), mergedFlags, error));
             }
 }
 public static bool c4db_copy(string sourcePath, string destinationPath, C4DatabaseConfig *config, C4Error *error)
 {
     using (var sourcePath_ = new C4String(sourcePath))
         using (var destinationPath_ = new C4String(destinationPath)) {
             return(NativeRaw.c4db_copy(sourcePath_.AsC4Slice(), destinationPath_.AsC4Slice(), config, error));
         }
 }
 public static bool c4doc_setExpiration(C4Database *db, string docID, long timestamp, C4Error *outError)
 {
     using (var docID_ = new C4String(docID)) {
         return(NativeRaw.c4doc_setExpiration(db, docID_.AsFLSlice(), timestamp, outError));
     }
 }
 public static extern bool c4db_delete(C4Database *database, C4Error *outError);
        public static C4Document *c4doc_put(C4Database *database, C4DocPutRequest *request, ulong *outCommonAncestorIndex, C4Error *outError)
        {
            var uintptr = new UIntPtr();

            var retVal = NativeRaw.c4doc_put(database, request, &uintptr, outError);

            if (outCommonAncestorIndex != null)
            {
                *outCommonAncestorIndex = uintptr.ToUInt64();
            }

            return(retVal);
        }
        private C4Document *PutDoc(C4Database *db, string docID, string revID, string body, C4RevisionFlags flags, C4Error *error = null)
        {
            LiteCoreBridge.Check(err => Native.c4db_beginTransaction(db, err));
            var success = false;

            try {
                using (var docID_ = new C4String(docID))
                    using (var revID_ = new C4String(revID))
                        using (var body_ = new C4String(body)) {
                            var history = new C4Slice[] { revID_.AsC4Slice() };
                            fixed(C4Slice *history_ = history)
                            {
                                var rq = new C4DocPutRequest
                                {
                                    allowConflict = false,
                                    docID         = docID_.AsC4Slice(),
                                    history       = revID == null ? null : history_,
                                    historyCount  = revID == null ? 0UL : 1UL,
                                    body          = body_.AsC4Slice(),
                                    revFlags      = flags,
                                    remoteDBID    = _remoteDocID,
                                    save          = true
                                };

                                C4Document *doc;

                                if (error != null)
                                {
                                    var local = rq;
                                    doc = Native.c4doc_put(db, &local, null, error);
                                }
                                else
                                {
                                    doc = (C4Document *)LiteCoreBridge.Check(err =>
                                    {
                                        var local = rq;
                                        return(Native.c4doc_put(db, &local, null, err));
                                    });
                                }

                                success = true;
                                return(doc);
                            }
                        }
            } finally {
                LiteCoreBridge.Check(err => Native.c4db_endTransaction(db, success, err));
            }
        }