DefaultSocketSessionConfig 类

extends AbstractSocketSessionConfig extends AbstractIoSessionConfig

implements SocketSessionConfig,IoSessionConfig

protected IoService parent;
private boolean defaultReuseAddress;
private boolean reuseAddress;
//接受数据缓冲区大小
private int receiveBufferSize = -1;
//发送数据缓冲区大小
private int sendBufferSize = -1; private int trafficClass = 0;
private boolean keepAlive = false;
private boolean oobInline = false;
private int soLinger = -1;
private boolean tcpNoDelay = false;
 public void init(IoService parent) {
this.parent = parent; if (parent instanceof SocketAcceptor) {
defaultReuseAddress = true;
} else {
defaultReuseAddress = false;
} reuseAddress = defaultReuseAddress;
}

doSetAll方法

 protected final void doSetAll(IoSessionConfig config) {
if (!(config instanceof SocketSessionConfig)) {
return;
} if (config instanceof AbstractSocketSessionConfig) {
// Minimize unnecessary system calls by checking all 'propertyChanged' properties.
AbstractSocketSessionConfig cfg = (AbstractSocketSessionConfig) config;
if (cfg.isKeepAliveChanged()) {
setKeepAlive(cfg.isKeepAlive());
}
if (cfg.isOobInlineChanged()) {
setOobInline(cfg.isOobInline());
}
if (cfg.isReceiveBufferSizeChanged()) {
setReceiveBufferSize(cfg.getReceiveBufferSize());
}
if (cfg.isReuseAddressChanged()) {
setReuseAddress(cfg.isReuseAddress());
}
if (cfg.isSendBufferSizeChanged()) {
setSendBufferSize(cfg.getSendBufferSize());
}
if (cfg.isSoLingerChanged()) {
setSoLinger(cfg.getSoLinger());
}
if (cfg.isTcpNoDelayChanged()) {
setTcpNoDelay(cfg.isTcpNoDelay());
}
if (cfg.isTrafficClassChanged() && getTrafficClass() != cfg.getTrafficClass()) {
setTrafficClass(cfg.getTrafficClass());
}
} else {
SocketSessionConfig cfg = (SocketSessionConfig) config;
setKeepAlive(cfg.isKeepAlive());
setOobInline(cfg.isOobInline());
setReceiveBufferSize(cfg.getReceiveBufferSize());
setReuseAddress(cfg.isReuseAddress());
setSendBufferSize(cfg.getSendBufferSize());
setSoLinger(cfg.getSoLinger());
setTcpNoDelay(cfg.isTcpNoDelay());
if (getTrafficClass() != cfg.getTrafficClass()) {
setTrafficClass(cfg.getTrafficClass());
}
}
}

Apache MINA 框架之默认session管理类实现的更多相关文章

  1. 使用Apache MINA框架搭建服务端

    使用MINA框架搭建服务端步骤: 1.定义一个启动服务的类MinaServer,并实现接口ServletContextListener 2.定义一个处理业务逻辑的类MinaServerHandler, ...

  2. hibernate框架学习之Session管理

    Session对象的生命周期 lHibernate中数据库连接最终包装成Session对象,使用Session对象可以对数据库进行操作. lSession对象获取方式: •加载所有配置信息得到Conf ...

  3. Apache MINA 框架之Handler介绍

    IoHandler 具备以下几个功能: sessionCreated sessionOpened sessionClosed sessionIdle exceptionCaught messageRe ...

  4. apache mina框架

    http://blog.csdn.net/ljx8928358/article/details/7759024

  5. JDBC 学习笔记(四)—— 自定义JDBC框架+Apache—DBUtils框架+事务管理+操作多表

    本文目录:       1.自定义JDBC框架 ——数据库元数据:DataBaseMetaData        2.自定义JDBC框架 ——数据库元数据:DataBaseMetaData       ...

  6. Apache MiNa 实现多人聊天室

    Apache MiNa 实现多人聊天室 开发环境: System:Windows JavaSDK:1.6 IDE:eclipse.MyEclipse 6.6 开发依赖库: Jdk1.4+.mina-c ...

  7. Openfire的启动过程与session管理

    说明   本文源码基于Openfire4.0.2.   Openfire的启动       Openfire的启动过程非常的简单,通过一个入口初始化lib目录下的openfire.jar包,并启动一个 ...

  8. Golang的session管理器

    对于一些需要对用户进行管理(比如验证操作的权限等)的站点来说,session管理器是必不可少的.下面实现了一个线程安全的简单session管理类.生产环境:golang1.4.2+win7x64gol ...

  9. Apache Mina 2.x 框架+源码分析

    源码下载 http://www.apache.org/dyn/closer.cgi/mina/mina/2.0.9/apache-mina-2.0.9-src.tar.gz 整体架构 核心过程(IoA ...

随机推荐

  1. 一个C++程序员学习C#语言

    感悟:C++是一门语法非常严谨的语言,只是指针就很难掌握,这其中肯定要经历很多折腾,特别是自学者. 折腾了一年半的C++,在即将毕业之际,对Unity3d游戏开发感兴趣,先是用cocos2dx开发了个 ...

  2. iOS:关于获取网络类型和运营商信息

    目录 1. 获取运营商网络类型 2. 获取运营商信息 返回目录 1. 获取运营商网络类型 Apple的Reachability Sample看起来不错,但是只可以判断是否连接到互联网和是否连接Wifi ...

  3. 【技术贴】解决127.0.0.1和http://localhost均被拦截跳转到另一个网页

    很艰难的历程. 今天安装一个OA系统,要用到http://127.0.0.1输入完成之后,可以进入安装界面,but,我输入完了之后,自动跳到了129129垃圾网站,艹,我真TM服了,我把本地连接网线都 ...

  4. onchange事件

    一.onchange 一般input type text的onchange事件的触发需要两个条件:1.输入框的值发生了改变:2.该文本框失去了焦点,而真正的事件的触发却是发生在该文本框失去焦点的时候, ...

  5. 【HDU3440】House Man (差分约束)

    题目: Description In Fuzhou, there is a crazy super man. He can’t fly, but he could jump from housetop ...

  6. (转)Mono for Android 优势与劣势

    最近有兴趣了解一下Mono for Andriod,也就是使用.NET平台来开发Andriod程序.Mono for Android API 几乎映射标准的Andriod API.例如,两边API几乎 ...

  7. EAFP和LBYL 两种防御性编程风格

    EAFP:Easier to ask for forgiveness than permission 获得事后原理总是比事先得到许可要容易的多. 这个EAFP在python中表现的比较多.EAFP,T ...

  8. Node.js权威指南 (4) - 模块与npm包管理工具

    4.1 核心模块与文件模块 / 574.2 从模块外部访问模块内的成员 / 58 4.2.1 使用exports对象 / 58 4.2.2 将模块定义为类 / 58 4.2.3 为模块类定义类变量或类 ...

  9. 如何给循环中的对象添加事件--深入理解JavaScript的闭包特性

    初学者经常碰到的,即获取HTML元素集合,循环给元素添加事件.在事件响应函数中(event handler)获取对应的索引.但每次获取的都是最后一次循环的索引.原因是初学者并未理解JavaScript ...

  10. MyEclipse 设置字体

    过了好几年,又开始用myeclipse  都忘了,  这里贴图用于记录 1.打开window - preferences . 2.打开General-Appearance-Colors and Fon ...