All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.objectbox.InternalAccess Maven / Gradle / Ivy

There is a newer version: 4.0.3
Show newest version
/*
 * Copyright 2017 ObjectBox Ltd. All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package io.objectbox;

import javax.annotation.Nullable;

import io.objectbox.annotation.apihint.Internal;
import io.objectbox.sync.SyncClient;

@Internal
public class InternalAccess {
    public static  Cursor getReader(Box box) {
        return box.getReader();
    }

    public static long getHandle(BoxStore boxStore) {
        return boxStore.internalHandle();
    }

    public static Transaction getActiveTx(BoxStore boxStore) {
        Transaction tx = boxStore.activeTx.get();
        if (tx == null) {
            throw new IllegalStateException("No active transaction");
        }
        tx.checkOpen();
        return tx;
    }

    public static long getHandle(Cursor reader) {
        return reader.internalHandle();
    }

    public static long getHandle(Transaction tx) {
        return tx.internalHandle();
    }

    public static void setSyncClient(BoxStore boxStore, @Nullable SyncClient syncClient) {
        boxStore.setSyncClient(syncClient);
    }

    public static  void releaseReader(Box box, Cursor reader) {
        box.releaseReader(reader);
    }

    public static  Cursor getWriter(Box box) {
        return box.getWriter();
    }

    public static  Cursor getActiveTxCursor(Box box) {
        return box.getActiveTxCursor();
    }

    public static  long getActiveTxCursorHandle(Box box) {
        return box.getActiveTxCursor().internalHandle();
    }

    public static  void releaseWriter(Box box, Cursor writer) {
        box.releaseWriter(writer);
    }

    public static  void commitWriter(Box box, Cursor writer) {
        box.commitWriter(writer);
    }

    /** Makes creation more expensive, but lets Finalizers show the creation stack for dangling resources. */
    public static void enableCreationStackTracking() {
        Transaction.TRACK_CREATION_STACK = true;
        Cursor.TRACK_CREATION_STACK = true;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy