Exemplo n.º 1
0
 /// <summary>
 /// 共通処理をコントローラーに登録
 /// </summary>
 /// <param name="code">イベントセグメント</param>
 /// <param name="mask">セグメントマスク(0-15)。0:root 1:leaf</param>
 /// <param name="m">ミドルウェアメソッド</param>
 public void RegisterMiddleware(ushort code, int mask, PacketMiddleware m)
 {
     mask &= 0x0f;
     code  = (ushort)((code >> (0x10 - mask)) << (0x10 - mask));
     if (!m_rawMiddlewareTable.TryGetValue(code, out PacketMiddleware[] middlewareMap))
Exemplo n.º 2
0
 /// <summary>
 /// 処理ロジック(共通部分)を登録する
 /// </summary>
 /// <param name="code">イベントコード</param>
 /// <param name="mask">セグメントマスク(0-16)。0=ルート, 16=リーフ</param>
 /// <param name="m">ミドルウェア関数</param>
 public void Use(ushort code, int mask, PacketMiddleware m)
 {
     _controller.RegisterMiddleware(code, mask, m);
 }
Exemplo n.º 3
0
 protected static PacketMiddleware Combine(PacketMiddleware l, PacketMiddleware r)
 {
     return((PacketHandler h) => l(r(h)));
 }
Exemplo n.º 4
0
 /// <summary>
 /// 受信時の処理メソッドにミドルウェアを付加
 /// </summary>
 /// <param name="code">イベントコード</param>
 /// <param name="m">処理メソッドのミドルウェア</param>
 public void OnReceivedPacket(ushort code, PacketMiddleware m)
 {
     Use(code, 0x10, m);
 }