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

46 lines
906 B
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 {
2019-04-20 15:54:40 +02:00
/**
* Get reference info
* @param reference reference
* @return reference info
2019-04-22 12:18:25 +02:00
* @throws IOException
2019-04-20 15:54:40 +02:00
*/
2019-04-22 12:18:25 +02:00
ReferenceInfo getReferenceInfo(long reference) throws IOException;
2019-03-07 16:19:53 +01:00
/**
2019-04-22 12:18:25 +02:00
* Allocate a new reference
2019-04-20 15:54:40 +02:00
*
2019-04-22 12:18:25 +02:00
* @param index index
* @param size size
2019-03-07 16:19:53 +01:00
* @return reference
*/
2019-04-22 12:18:25 +02:00
long newReference(long index, int size) throws IOException;
2019-03-07 16:19:53 +01:00
/**
2019-04-20 15:54:40 +02:00
* Change reference
2019-03-07 16:19:53 +01:00
* @param reference reference
2019-04-22 12:18:25 +02:00
* @param info info
2019-03-07 16:19:53 +01:00
*/
2019-04-22 12:18:25 +02:00
void editReference(long reference, ReferenceInfo info) throws IOException;
2019-04-20 15:54:40 +02:00
/**
* 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();
}