Esempio n. 1
0
        /// <summary>
        /// リクエストを型付けするためのメソッドです。
        /// </summary>
        private IPbResponse HandleRequestInternal <TReq, TRes>(
            PbRequestHandler <TReq, TRes> handler,
            object requestObj)
            where TRes : class
        {
            var e = new PbRequestEventArgs <TReq, TRes>((TReq)requestObj);

            handler(this, e);

            return(new PbResponse <TRes>()
            {
                Response = e.Response,
                ErrorCode = e.ErrorCode,
            });
        }
Esempio n. 2
0
        /// <summary>
        /// プロトコルのバージョンチェックを行います。
        /// </summary>
        private void HandleCheckProtocolVersionRequest(
            object sender,
            PbRequestEventArgs <PbCheckProtocolVersionRequest,
                                PbCheckProtocolVersionResponse> e)
        {
            var clientVersion = e.Request.ProtocolVersion;
            var result        = PbVersionCheckResult.Ok;

            if (clientVersion == null)
            {
                result = PbVersionCheckResult.InvalidValue;
            }
            else if (clientVersion < ProtocolVersion)
            {
                result = PbVersionCheckResult.TooLower;
            }
            else if (clientVersion > ProtocolVersion)
            {
                result = PbVersionCheckResult.TooUpper;
            }

            // バージョンチェックの結果を返します。
            e.Response = new PbCheckProtocolVersionResponse(result);
        }
Esempio n. 3
0
 /// <summary>
 /// 存在確認リクエストを処理します。
 /// </summary>
 private void HandleKeepAliveRequest(
     object sender,
     PbRequestEventArgs <PbKeepAliveRequest, PbKeepAliveResponse> e)
 {
     e.Response = new PbKeepAliveResponse();
 }