spymemcached源码分析-2-Operation类分析

1. 基本说明

spymemcached中所有的操作都是封装到operation中进行处理,operation中注册回调,然后将operation放到一个operationFuture中,作为句柄返回;接收到结果后,通过回调函数修改句柄得到结果。

2. Operation的创建

spymemcached采用工厂模式,operation的创建也是通过OperationFactory工厂进行构建,以AsciiOperationFactory类为例,类中提供了很多对应的方法,以store方法为例:通过调用store方法,构造一个StoreOperationImpl类。

3. Operation类结构

Opration类结构如下:

spymemcached源码分析-2-Operation类分析_第1张图片

下面以结果读取过程为例,分析一下operation的调用关系。

结果的读取过程如下:

首先由MemcachedConnection.handleReads获取读操作,若channel中有可读的内容,则将读取到的内容交给MemcachedConnection.readBufferAndLogMetrics处理;

spymemcached源码分析-2-Operation类分析_第2张图片

进入readBufferAndLogMetrics,所有的处理开始与operation相关:

spymemcached源码分析-2-Operation类分析_第3张图片

1) OperationImpl类中的 readFromBuffer

spymemcached源码分析-2-Operation类分析_第4张图片

2) BaseStoreOperationImpl类中的 handleLine (此处根据operation的实际类型决定)

3) BaseOperationImpl类中的 getCallBack transitionState此处的操作实际上就是通过Operation中的回调函数返回结果。


你可能感兴趣的:(spymemcached源码分析-2-Operation类分析)