/*
* Copyright 2013-2015 EMC Corporation. 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.
* A copy of the License is located at
*
* http://www.apache.org/licenses/LICENSE-2.0.txt
*
* or in the "license" file accompanying this file. This file 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 com.emc.ecs.sync.service;
import com.emc.ecs.sync.model.ObjectContext;
import java.io.Closeable;
public interface DbService extends Closeable {
/**
* Implementations must provide a method to wipe out their database. This may mean deleting a .db file (Sqlite) or
* dropping relevant tables, etc. Be aware that this operation may be done after {@link #close()} is called
*/
void deleteDatabase();
boolean setStatus(ObjectContext context, String error, boolean newRow);
boolean setDeleted(ObjectContext context, boolean newRow);
SyncRecord getSyncRecord(ObjectContext context);
Iterable<SyncRecord> getAllRecords();
Iterable<SyncRecord> getSyncErrors();
String getObjectsTableName();
void setObjectsTableName(String objectsTableName);
int getMaxErrorSize();
void setMaxErrorSize(int maxErrorSize);
}