Exemple #1
0
        public override bool ProcessReceivedMessage(Nettention.Proud.ReceivedMessage pa, Object hostTag)
        {
            Nettention.Proud.HostID remote = pa.RemoteHostID;
            if (remote == Nettention.Proud.HostID.HostID_None)
            {
                ShowUnknownHostIDWarning(remote);
            }

            Nettention.Proud.Message __msg = pa.ReadOnlyMessage;
            int orgReadOffset = __msg.ReadOffset;

            Nettention.Proud.RmiID __rmiID = Nettention.Proud.RmiID.RmiID_None;
            if (!__msg.Read(out __rmiID))
            {
                goto __fail;
            }

            switch (__rmiID)
            {
            case Common.RequestLogon:
            {
                Nettention.Proud.RmiContext ctx = new Nettention.Proud.RmiContext();
                ctx.sentFrom     = pa.RemoteHostID;
                ctx.relayed      = pa.IsRelayed;
                ctx.hostTag      = hostTag;
                ctx.encryptMode  = pa.EncryptMode;
                ctx.compressMode = pa.CompressMode;

                String Groupname; CardClient.Marshaler.Read(__msg, out Groupname);
                bool   isNewClient; CardClient.Marshaler.Read(__msg, out isNewClient);
                core.PostCheckReadMessage(__msg, RmiName_RequestLogon);
                if (enableNotifyCallFromStub == true)
                {
                    string parameterString = "";
                    parameterString += Groupname.ToString() + ",";
                    parameterString += isNewClient.ToString() + ",";
                    NotifyCallFromStub(Common.RequestLogon, RmiName_RequestLogon, parameterString);
                }

                if (enableStubProfiling)
                {
                    Nettention.Proud.BeforeRmiSummary summary = new Nettention.Proud.BeforeRmiSummary();
                    summary.rmiID   = Common.RequestLogon;
                    summary.rmiName = RmiName_RequestLogon;
                    summary.hostID  = remote;
                    summary.hostTag = hostTag;
                    BeforeRmiInvocation(summary);
                }

                long t0 = Nettention.Proud.PreciseCurrentTime.GetTimeMs();

                // Call this method.
                bool __ret = RequestLogon(remote, ctx, Groupname, isNewClient);

                if (__ret == false)
                {
                    // Error: RMI function that a user did not create has been called.
                    core.ShowNotImplementedRmiWarning(RmiName_RequestLogon);
                }

                if (enableStubProfiling)
                {
                    Nettention.Proud.AfterRmiSummary summary = new Nettention.Proud.AfterRmiSummary();
                    summary.rmiID       = Common.RequestLogon;
                    summary.rmiName     = RmiName_RequestLogon;
                    summary.hostID      = remote;
                    summary.hostTag     = hostTag;
                    summary.elapsedTime = Nettention.Proud.PreciseCurrentTime.GetTimeMs() - t0;
                    AfterRmiInvocation(summary);
                }
            }
            break;

            case Common.RequestClientCount:
            {
                Nettention.Proud.RmiContext ctx = new Nettention.Proud.RmiContext();
                ctx.sentFrom     = pa.RemoteHostID;
                ctx.relayed      = pa.IsRelayed;
                ctx.hostTag      = hostTag;
                ctx.encryptMode  = pa.EncryptMode;
                ctx.compressMode = pa.CompressMode;

                core.PostCheckReadMessage(__msg, RmiName_RequestClientCount);
                if (enableNotifyCallFromStub == true)
                {
                    string parameterString = "";
                    NotifyCallFromStub(Common.RequestClientCount, RmiName_RequestClientCount, parameterString);
                }

                if (enableStubProfiling)
                {
                    Nettention.Proud.BeforeRmiSummary summary = new Nettention.Proud.BeforeRmiSummary();
                    summary.rmiID   = Common.RequestClientCount;
                    summary.rmiName = RmiName_RequestClientCount;
                    summary.hostID  = remote;
                    summary.hostTag = hostTag;
                    BeforeRmiInvocation(summary);
                }

                long t0 = Nettention.Proud.PreciseCurrentTime.GetTimeMs();

                // Call this method.
                bool __ret = RequestClientCount(remote, ctx);

                if (__ret == false)
                {
                    // Error: RMI function that a user did not create has been called.
                    core.ShowNotImplementedRmiWarning(RmiName_RequestClientCount);
                }

                if (enableStubProfiling)
                {
                    Nettention.Proud.AfterRmiSummary summary = new Nettention.Proud.AfterRmiSummary();
                    summary.rmiID       = Common.RequestClientCount;
                    summary.rmiName     = RmiName_RequestClientCount;
                    summary.hostID      = remote;
                    summary.hostTag     = hostTag;
                    summary.elapsedTime = Nettention.Proud.PreciseCurrentTime.GetTimeMs() - t0;
                    AfterRmiInvocation(summary);
                }
            }
            break;

            case Common.RequestMaching:
            {
                Nettention.Proud.RmiContext ctx = new Nettention.Proud.RmiContext();
                ctx.sentFrom     = pa.RemoteHostID;
                ctx.relayed      = pa.IsRelayed;
                ctx.hostTag      = hostTag;
                ctx.encryptMode  = pa.EncryptMode;
                ctx.compressMode = pa.CompressMode;

                core.PostCheckReadMessage(__msg, RmiName_RequestMaching);
                if (enableNotifyCallFromStub == true)
                {
                    string parameterString = "";
                    NotifyCallFromStub(Common.RequestMaching, RmiName_RequestMaching, parameterString);
                }

                if (enableStubProfiling)
                {
                    Nettention.Proud.BeforeRmiSummary summary = new Nettention.Proud.BeforeRmiSummary();
                    summary.rmiID   = Common.RequestMaching;
                    summary.rmiName = RmiName_RequestMaching;
                    summary.hostID  = remote;
                    summary.hostTag = hostTag;
                    BeforeRmiInvocation(summary);
                }

                long t0 = Nettention.Proud.PreciseCurrentTime.GetTimeMs();

                // Call this method.
                bool __ret = RequestMaching(remote, ctx);

                if (__ret == false)
                {
                    // Error: RMI function that a user did not create has been called.
                    core.ShowNotImplementedRmiWarning(RmiName_RequestMaching);
                }

                if (enableStubProfiling)
                {
                    Nettention.Proud.AfterRmiSummary summary = new Nettention.Proud.AfterRmiSummary();
                    summary.rmiID       = Common.RequestMaching;
                    summary.rmiName     = RmiName_RequestMaching;
                    summary.hostID      = remote;
                    summary.hostTag     = hostTag;
                    summary.elapsedTime = Nettention.Proud.PreciseCurrentTime.GetTimeMs() - t0;
                    AfterRmiInvocation(summary);
                }
            }
            break;

            default:
                goto __fail;
            }
            return(true);

__fail:
            {
                __msg.ReadOffset = orgReadOffset;
                return(false);
            }
        }