Android Open Source - Jello Paged File Native






From Project

Back to project page Jello.

License

The source code is released under:

Apache License

If you think the Android project Jello listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.atteo.jello.store;
//from   w  w  w  .j  a v  a 2  s .  c  o m
import java.io.File;
import java.io.IOException;

import com.atteo.jello.Jello;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import com.google.inject.name.Named;

@Singleton
public class PagedFileNative implements PagedFile {
  private boolean readOnly;
  private final short pageSize;
  private final File file;

  static {
    System.loadLibrary("PagedFileNative");
  }

  @Inject
  public PagedFileNative(@Named("pageSize") final short pageSize,
      @Named("fullpath") final String fullpath) {
    this.pageSize = pageSize;

    file = new File(fullpath);

    init();
  }

  synchronized native public int addPages(int count);

  synchronized native public void close();

  public boolean create() {
    file.getParentFile().mkdirs();
    if (!file.getParentFile().exists())
      return false;
    try {
      file.createNewFile();
    } catch (final IOException e) {
      e.printStackTrace();
      return false;
    }
    return true;
  }

  public boolean exists() {
    return file.exists();
  }

  native public long getFileLength();

  native public int getPageCount();

  public boolean isReadOnly() {
    return readOnly;
  }

  synchronized public int open() {
    if (!file.exists())
      return Jello.OPEN_FAILED;

    if (!file.canRead())
      return Jello.OPEN_FAILED;

    readOnly = !file.canWrite();

    try {
      openNative(file.getCanonicalPath(), readOnly, pageSize);
    } catch (final IOException e) {
      e.printStackTrace();
      return Jello.OPEN_FAILED;
    }

    if (readOnly)
      return Jello.OPEN_READONLY;
    else
      return Jello.OPEN_SUCCESS;
  }

  native public void readPage(Page page);

  public void remove() {
    file.delete();
  }

  synchronized native public void removePages(int count);

  native public void syncAll();

  native public void syncPages(int startPage, int count);

  synchronized native public void writePage(Page page);

  private native void init();

  native private int openNative(String fullpath, boolean readOnly,
      short pageSize) throws IOException;

  @Override
  protected void finalize() {
    close();
  }

}




Java Source Code List

android.util.FinitePool.java
android.util.Pool.java
android.util.PoolableManager.java
android.util.Poolable.java
android.util.Pools.java
android.util.SynchronizedPool.java
com.atteo.jello.DatabaseFile.java
com.atteo.jello.Expression.java
com.atteo.jello.JelloModule.java
com.atteo.jello.Jello.java
com.atteo.jello.PageUsage.java
com.atteo.jello.RecordPoolableManager.java
com.atteo.jello.Record.java
com.atteo.jello.StorableCollection.java
com.atteo.jello.StorableFactory.java
com.atteo.jello.StorableInfo.java
com.atteo.jello.Storable.java
com.atteo.jello.associations.BelongsTo.java
com.atteo.jello.associations.DatabaseField.java
com.atteo.jello.associations.HasMany.java
com.atteo.jello.index.BTree.java
com.atteo.jello.index.IndexFactory.java
com.atteo.jello.index.IndexModule.java
com.atteo.jello.index.Index.java
com.atteo.jello.index.PagePoolProxy.java
com.atteo.jello.klass.KlassManager.java
com.atteo.jello.klass.SimpleKlassManager.java
com.atteo.jello.schema.SchemaManagerFactory.java
com.atteo.jello.schema.SchemaManager.java
com.atteo.jello.schema.SchemaModule.java
com.atteo.jello.schema.Schema.java
com.atteo.jello.schema.SimpleSchemaManager.java
com.atteo.jello.schema.StorableWriter.java
com.atteo.jello.schema.VanillaStorableWriter.java
com.atteo.jello.space.AppendOnlyCacheNative.java
com.atteo.jello.space.AppendOnlyCache.java
com.atteo.jello.space.AppendOnly.java
com.atteo.jello.space.Hybrid.java
com.atteo.jello.space.NextFitHistogramNative.java
com.atteo.jello.space.NextFitHistogram.java
com.atteo.jello.space.NextFit.java
com.atteo.jello.space.SpaceManagerNative.java
com.atteo.jello.space.SpaceManagerPolicy.java
com.atteo.jello.space.SpaceManager.java
com.atteo.jello.space.SpaceModule.java
com.atteo.jello.space.VanillaHistogram.java
com.atteo.jello.store.HeaderPage.java
com.atteo.jello.store.ListPage.java
com.atteo.jello.store.PagePoolableManager.java
com.atteo.jello.store.PageSizeProvider.java
com.atteo.jello.store.Page.java
com.atteo.jello.store.PagedFileNative.java
com.atteo.jello.store.PagedFileRAF.java
com.atteo.jello.store.PagedFile.java
com.atteo.jello.store.StoreModule.java
com.atteo.jello.transaction.LockManager.java
com.atteo.jello.transaction.SimpleLockManager.java
com.atteo.jello.transaction.SimpleTransactionManager.java
com.atteo.jello.transaction.TransactionManager.java
com.atteo.jello.transaction.TransactionModule.java