using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; namespace FObjBase { public interface IFObjSysAsClient { /// /// 添加OBJ 入 本地OBJSys /// /// void ObjAdd(IFObj obj); /// /// 获取一个没有被分配的 Obj ID /// /// UInt32 GetFreeObjID(); /// /// 创建了一个远端服务的客户代理, 删除这个代理; /// 还需要通知远端,这个代理已经不存在,与它相关的推送,都要关闭 /// 当没有一个obj 与远端服务连接,socket也会被释放 /// /// /// void ObjRemove(IFObj obj, IFConn conn); /// /// 连接到远端的OBJSys连接 /// /// 远端地址 /// 连接成功后,通知这些obj /// TCPCConn Connect_to_Another_OBJSys(IPEndPoint ep, params UInt32[] objids); /// /// 断开到远端OBJSys的连接 /// /// 远端地址 /// 连接成功后,通知这些obj /// void Disconnect_to_Another_OBJSys(IPEndPoint ep, params UInt32[] objids); /// /// 注册本地obj 为远端obj的敏感对象,得到远端obj的推送消息 /// /// 远端对应的连接代理 /// 远端的ID /// 本地obj /// 注册的敏感源 /// 动作,添加?删除? void SenseConfigEx(IFConn s1, UInt32 objid, UInt32 senobjid, UInt32 sense_mask, SENSE_CONFIG action); /// /// 对外发送消息 /// /// 远端对应的连接代理 /// 远端的ID /// 本地的ID /// 交易码 /// 信息码 /// 信息内容 void SendMessageEx(IFConn s1, UInt32 destid, UInt32 srcid, UInt32 magic, UInt16 info_no, byte[] info_data); /// /// 向远端GetValue /// /// 远端对应的连接代理 /// 远端的ID /// 本地的ID /// 成员ID void GetValueEx(IFConn s1, UInt32 destid, UInt32 srcid, UInt16 memid); /// /// 向远端SetValue /// /// 远端对应的连接代理 /// 远端的ID /// 本地的ID /// 成员ID /// 成员内容 void SetValueEx(IFConn s1, UInt32 destid, UInt32 srcid, UInt16 memid, byte[] value); /// /// 向远端CallFunction /// /// 远端对应的连接代理 /// 远端对象ID /// 本地对象ID /// 函数ID /// 函数参数 /// 在其上调用异步调用的委托对象 /// 作为 BeginInvoke 方法调用的最后一个参数而提供的对象 UInt32 CallFunctionEx(IFConn s1, UInt32 destid, UInt32 srcid, UInt16 funcid, byte[] param, object AsyncDelegate, object AsyncState); /// /// 向远端CallFunction /// /// 远端对应的连接代理 /// 远端对象ID /// 本地对象ID /// 函数ID /// 函数参数 UInt32 CallFunctionEx(IFConn s1, UInt32 destid, UInt32 srcid, UInt16 funcid, byte[] param); } public interface IFObjSysAsServer { /// /// 添加OBJ 入 本地OBJSys /// /// void ObjAdd(IFObj obj); /// /// 本地OBJSys 删除指定OBJ /// /// void ObjRemove(IFObj obj); /// /// 启动本地OBJSys网络 /// /// 本地地址 /// 建立成功后,通知这些obj void Start_Conn_Server(IPEndPoint ep, params UInt32[] objids); /// /// 指定推送到某个远端 /// /// 本地obj /// 信息码 /// 信息内容 /// 连接conn /// 目标obj void PushObjInfoEx(IFObj srcobj, UInt16 infoid, byte[] infodata, IFConn s1, UInt32 destid); /// /// 推送到远端,系统判定根据敏感对象推送 /// /// 本地obj /// 信息码 /// 信息内容 void PushObjInfoEx(IFObj srcobj, UInt16 infoid, byte[] infodata); /// /// 推送到远端,系统判定根据敏感对象推送,但不推送给特定某对象 /// /// 本地的obj /// 信息码 /// 信息内容 /// 排除在外的连接conn /// 排除在外的目标obj void PushObjInfoEx_except(IFObj srcobj, UInt16 infoid, byte[] infodata, IFConn except_s1, UInt32 except_destid); /// /// 回复 客户端的CallFunction /// /// 客户端对应的连接代理 /// 本地服务端的对象ID /// 客户端的对象ID /// 交易码 /// 函数ID /// 函数参数 void PushCallFunctionEx(IFConn s1, UInt32 destid, UInt32 srcid, UInt32 magic, UInt16 funcid, byte[] retdata); } }