liurunyu
2023-11-20 aab5b6fc250e074c8cac9e5d244bab011b9d9a32
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
package com.dy.common.mw.channel.rmi;
 
import java.io.Serial;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
 
import com.dy.common.threadPool.ThreadPool;
import com.dy.common.threadPool.TreadPoolFactory;
 
public class RmiFrameWorkImpl extends UnicastRemoteObject implements RmiFrameWork {
 
    @Serial
    private static final long serialVersionUID = 201807220009001L;
    
    private RmiUnitAdapter adapter ;
    /**
     * 构造方法
     * @throws RemoteException 异常
     */
    protected RmiFrameWorkImpl(RmiUnitAdapter adapter) throws RemoteException {
        super();
        this.adapter = adapter ;
    }
 
    /**
     * 同步请求
     * @param obj 命令参数
     * @return 返回命令结果
     * @throws RemoteException 异常
     */
    @Override
    public Object syncRequest(Object obj) throws RemoteException {
        if(obj == null){
            throw new RemoteException("严重错误,输入命令参数为空!") ;
        }
        return adapter.newRequestCallback().syncRequest(obj) ;
    }
    
    /**
     * 异步请求
     * @param obj 参数
     * @return 命令结果的ID,如果为空,则说明邮错
     * @throws RemoteException 异常
     */
    @Override
    public String asyncRequest(Object obj) throws RemoteException {
        try {
            TreadPoolFactory.getThreadPoolShort().putJob(new ThreadPool.Job() {
                public void execute() throws RemoteException {
                    throw new RemoteException("此方法未实现") ;
                }
                @Override
                public void destroy() {
                }
                @Override
                public boolean isDestroy() {
                    return false;
                }
                
            });
        }catch (RemoteException ee) {
            throw ee ;
        }catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
 
    /**
     * 关闭服务的请求
     */
    @Override
    public String shutRequest() throws RemoteException {
        throw new RemoteException("此方法未实现") ;
    }
    
 
}