package com.alibaba.doris.dataserver.core;
import java.util.Iterator;
import com.alibaba.doris.common.data.Key;
import com.alibaba.doris.common.data.Value;
import com.alibaba.doris.dataserver.ApplicationContext;
import com.alibaba.doris.dataserver.action.data.ActionData;
/**
* @author ajun Email:jack.yuj@alibaba-inc.com
*/
public interface Request {
/**
* 获取当前请求输入数据
*
* @return
*/
ActionData getActionData();
/**
* 获取Request中的Key对象,如果当前命令存在Key数据,<br>
* 系统返回一个Key对象实例,否则返回null。
*
* @return
*/
Key getKey();
/**
* 获取Request中的Value对象,如果当前命令存在value数据,<br>
* 系统返回一个value对象实例,否则返回null。
*
* @return
*/
Value getValue();
/**
* 获取请求端(client)的IP地址
*
* @return
*/
String getClientAddress();
/**
* 获取client端的端口号。
*
* @return
*/
int getClientPort();
/**
* 获取当前处理请求所在DataServer实例的监听端口号。
*
* @return
*/
int getServerPort();
/**
* 获取DataServer所在服务器的IP地址
*
* @return
*/
String getServerAddress();
/**
* @param name
* @param item
*/
void setAttribute(String name, Object item);
/**
* @param name
* @return
*/
Object getAttribute(String name);
/**
* 获取应用上下文对象。
*
* @return
*/
ApplicationContext getApplicationContext();
/**
* 获取Filter遍历对象
*
* @return
*/
Iterator<FilterEntry> getFilterEntryIterator();
/**
* @param filterEntryIterator
*/
void setFilterEntryIteraor(Iterator<FilterEntry> filterEntryIterator);
}