package com.gustz.dove.cli.api.service;
import java.io.Serializable;
/**
*
* TODO: Base service
*
* @author ZHENFENG ZHANG
* @since [ Aug 4, 2015 ]
*/
public interface BaseService<REQ extends Serializable> {
/**
* Post for upload file
*
* @param websUrl
* @param sn
* @param cliAppCode client appCode
* @param reqVo
* @param rspVo
* @return
*/
<T> T uploadFile(BaseWebsUrl websUrl, long sn, String cliAppCode, REQ reqVo, T rspVo);
/**
* Get for download file
*
* @param websUrl
* @param sn
* @param cliAppCode client appCode
* @param reqVo
* @param rspVo
* @return
*/
<T> T downloadFile(BaseWebsUrl websUrl, long sn, String cliAppCode, REQ reqVo, T rspVo);
/**
* HTTP post request
*
* @param websUrl
* @param cliAppCode client appCode
* @param reqVo
* @param rspVo
* @return
*/
<T> T httpPost(BaseWebsUrl websUrl, String cliAppCode, REQ reqVo, T rspVo);
/**
* HTTP post request
*
* @param websUrl
* @param sn
* @param cliAppCode client appCode
* @param reqVo
* @param rspVo
* @return
*/
<T> T httpPost(BaseWebsUrl websUrl, long sn, String cliAppCode, REQ reqVo, T rspVo);
/**
* HTTP post request
*
* @param websUrl
* @param sn
* @param cliAppCode
* @param content
* @return
*/
String httpPost(String websUrl, long sn, String cliAppCode, String content);
/**
* HTTP get request
*
* @param websUrl
* @param cliAppCode client appCode
* @param rspVo
* @return
*/
<T> T httpGet(BaseWebsUrl websUrl, String cliAppCode, T rspVo);
/**
* HTTP get request
*
* @param websUrl
* @param sn
* @param cliAppCode client appCode
* @param rspVo
* @return
*/
<T> T httpGet(BaseWebsUrl websUrl, long sn, String cliAppCode, T rspVo);
/**
* Create cache
*
* @return
*/
CacheService<?, ?> createCache();
}