strangedb-core/src/main/java/it/cavallium/strangedb/database/IReferencesMetadata.java

51 lines
1.0 KiB
Java
Raw Normal View History

2019-03-07 16:19:53 +01:00
package it.cavallium.strangedb.database;
2019-04-20 15:54:40 +02:00
import it.cavallium.strangedb.database.references.ReferenceInfo;
2019-03-07 16:19:53 +01:00
import java.io.IOException;
public interface IReferencesMetadata {
/**
* Get block of reference
* @param reference reference
* @return block id
*/
2019-04-20 15:54:40 +02:00
long getReferenceBlockId(long reference) throws IOException;
/**
* Get reference info
* @param reference reference
* @return reference info
*/
ReferenceInfo getCleanReference(long reference) throws IOException;
2019-03-07 16:19:53 +01:00
/**
* Allocate a block for a new reference
2019-04-20 15:54:40 +02:00
*
2019-03-07 16:19:53 +01:00
* @param blockId block id
* @return reference
*/
long newReference(long blockId) throws IOException;
/**
2019-04-20 15:54:40 +02:00
* Change reference
2019-03-07 16:19:53 +01:00
* @param reference reference
2019-04-20 15:54:40 +02:00
* @param cleanerId cleaner id
2019-03-07 16:19:53 +01:00
* @param blockId block id
*/
2019-04-20 15:54:40 +02:00
void editReference(long reference, byte cleanerId, long blockId) throws IOException;
/**
* Delete reference
* @param reference reference
*/
void deleteReference(long reference) throws IOException;
2019-03-07 16:19:53 +01:00
/**
* Close file
*/
void close() throws IOException;
long getFirstFreeReference();
}