package com.mediafire.sdk.log;
import java.util.LinkedList;
import java.util.List;
/**
* Created by Chris on 5/26/2015.
*/
public class DefaultApiTransactionStore implements MFLogStore<ApiTransaction> {
public final LinkedList<ApiTransaction> apiTransactions = new LinkedList<ApiTransaction>();
private final Object lock = new Object();
@Override
public long deleteAll() {
synchronized (lock) {
int size = apiTransactions.size();
apiTransactions.clear();
return size;
}
}
@Override
public long getCount() {
synchronized (lock) {
return apiTransactions.size();
}
}
@Override
public long addLog(ApiTransaction apiTransaction) {
synchronized (lock) {
boolean added = apiTransactions.add(apiTransaction);
if (added) {
return apiTransactions.size();
} else {
return -1;
}
}
}
public void addLogs(List<ApiTransaction> apiTransactions) {
synchronized (lock) {
apiTransactions.addAll(apiTransactions);
}
}
public LinkedList<ApiTransaction> getAll() {
synchronized (lock) {
return apiTransactions;
}
}
}