/**
*
*/
package com.taobao.tair.extend;
import java.io.Serializable;
import com.taobao.tair.Result;
import com.taobao.tair.ResultCode;
/**
* Tair 扩展接口,支持Set系列操作
*
* @author YeXiang
*
*/
public interface TairManagerSet {
/**
* 对对应的set插入value
* @param namespace 对应的namespace的名字
* @param key 对应的Set的名字
* @param value 要插入的value
* @param version sadd的带版本验证版本,版本不对,返回错误
* @param expire 超时时间 功能参见expire API
* @return 返回成功或者失败
*/
public ResultCode sadd(short namespace, Serializable key, Serializable value,
short version, int expire);
/**
* 获取对应Set的value的个数
* @param namespace 对应的namespace的名字
* @param key 对应的Set的名字
* @return 返回一个DataEntryLong key为输入的key,value为long型的个数 否则返回失败
*/
public Result<DataEntryLong> scard(short namespace, Serializable key);
/**
* 获取对应Set的所有value
* @param namespace 对应的namespace的名字
* @param key 对应的Set的名字
* @return 返回返回一个DataEntrySet,key为输入的key,value为Set<Object>表示返回的集合,
* 否则失败返回错误码
*/
public Result<DataEntrySet> smembers(short namespace, Serializable key);
/**
* 随机从Set中去除掉一个value
* @param namespace 对应的namespace的名字
* @param key 对应的Set的名字
* @param version spop的带版本验证版本,版本不对,返回错误
* @param expire 超时时间 功能参见expire API
* @return 返回一个DataEntrySimple, key为输入的key,value为去除的object
*/
public Result<DataEntrySimple> spop(short namespace, Serializable key, short version,
int expire);
}