package org.kevoree.core;
import org.kevoree.ContainerRoot;
import org.kevoree.api.handler.*;
import org.kevoree.pmodeling.api.trace.TraceSequence;
import java.util.UUID;
/**
* Created by duke on 6/2/14.
*/
public interface ContextAwareModelService {
UUIDModel getCurrentModel();
ContainerRoot getPendingModel();
void compareAndSwap(ContainerRoot model, UUID uuid, UpdateCallback callback, String callerPath);
void update(ContainerRoot model, UpdateCallback callback, String callerPath);
void registerModelListener(ModelListener listener, String callerPath);
void unregisterModelListener(ModelListener listener, String callerPath);
void acquireLock(LockCallBack callBack, Long timeout, String callerPath);
void releaseLock(UUID uuid, String callerPath);
String getNodeName();
void submitScript(String script, UpdateCallback callback, String callerPath);
void submitSequence(TraceSequence sequence, UpdateCallback callback, String callerPath);
}