package cn.edu.tsinghua.hpc.syncbroker;
/**
* User sync commands.
* */
public enum SyncCommand {
ADD,
UPDATE,
DEACTIVATE, // MARK ARCHIVED
ACTIVATE, // MARK CACHED
RECYCLE, // MARK DELETED
RECOVER, // MARK CACHED
FIRSTSYNC, // sync for a new phone
SEARCH,
REMOVE,
GETCOUNT;
protected static final SyncCommandOut getSyncCommandOut(SyncCommand csc) {
switch (csc) {
case ADD:
return SyncCommandOut.ADD;
case UPDATE:
return SyncCommandOut.UPDATE;
case FIRSTSYNC:
return SyncCommandOut.FIRSTSYNC;
case SEARCH:
return SyncCommandOut.SEARCH;
case REMOVE:
return SyncCommandOut.REMOVE;
case GETCOUNT:
return SyncCommandOut.GETCOUNT;
default:
return SyncCommandOut.MARK;
}
}
protected static final SyncTag getSyncCammandTag(SyncCommand csc) {
if (getSyncCommandOut(csc) != SyncCommandOut.MARK) {
return SyncTag.INVALID;
}
switch (csc) {
case DEACTIVATE:
return SyncTag.ARCHIVED;
case ACTIVATE:
return SyncTag.CACHED;
case RECYCLE:
return SyncTag.DELETED;
case RECOVER:
return SyncTag.CACHED;
default:
return SyncTag.INVALID;
}
}
}
/**
* Commands send out to server.
* */
enum SyncCommandOut {
FIRSTSYNC,
ADD,
UPDATE,
MARK,
SEARCH,
REMOVE,
GETCOUNT
}