当前位置: 首页>>代码示例>>C#>>正文


C# InternalEvent.getName方法代码示例

本文整理汇总了C#中JTS.InternalEvent.getName方法的典型用法代码示例。如果您正苦于以下问题:C# InternalEvent.getName方法的具体用法?C# InternalEvent.getName怎么用?C# InternalEvent.getName使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在JTS.InternalEvent的用法示例。


在下文中一共展示了InternalEvent.getName方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: processTransitions

        //    This is the function that will process an event either generated
        //  by the service, sent to it by another service on the same component,
        //  or as a message sent by a different component.
        public override bool processTransitions(InternalEvent ie)
        {
            bool done = false;

               // Since this function can be called from multiple threads,
               // we use a mutex to ensure only one state transition is
               // active at a time.
               mutex.WaitOne();

                // Invoke the FSM transition for this event.
            try
            {
                if (ie.getName().CompareTo("Receive") == 0 && (ie.getSource().CompareTo("PingClient_PingClientFSM") != 0) && (!done))
                {
                    Receive casted_ie = (Receive) ie;
                    int pos = 0;
                    ushort id = BitConverter.ToUInt16(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos);
                    if ( id == new ReportHeartbeatPulse().getID())
                    {
                        ReportHeartbeatPulse msg = new ReportHeartbeatPulse();
                        msg.decode(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos);
                        pPingClient_PingClientFSM.context.ReportHeartbeatPulseTransition();
                        done = true;
                    }
                }
            } catch (Exception e) {}

            mutex.ReleaseMutex();
            return done;
        }
开发者ID:nikola-v,项目名称:jaustoolset,代码行数:33,代码来源:PingClientService.cs

示例2: defaultTransitions

        //    This is the function that will check for default transitions if
        //  no other transitions were satisfied.
        //
        public override bool defaultTransitions(InternalEvent ie)
        {
            bool done = false;

               // Since this function can be called from multiple threads,
               // we use a mutex to ensure only one state transition is
               // active at a time.
               mutex.WaitOne();

            // Invoke the FSM transition for this event.
            try
            {
                if (ie.getName().CompareTo("Receive") == 0 && (ie.getSource().CompareTo("AdditionServerServiceDef_additionServerFSM") != 0) && (!done))
                {
                    Receive casted_ie = (Receive) ie;
                    int pos = 0;
                    ushort id = BitConverter.ToUInt16(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos);
                    if ( id == new QueryAddition().getID())
                    {
                        QueryAddition msg = new QueryAddition();
                        msg.decode(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos);
                        pAdditionServerServiceDef_additionServerFSM.context.QueryAdditionTransition();
                        done = true;
                    }
                }
            } catch (Exception e) {}

            try
            {
                if (ie.getName().CompareTo("InitToReadyEventDef") == 0 && (ie.getSource().CompareTo("AdditionServerServiceDef_additionServerFSM") != 0) && (!done))
                {
                    InitToReadyEventDef casted_ie = (InitToReadyEventDef) ie;
                        pAdditionServerServiceDef_additionServerFSM.context.InitToReadyEventDefTransition();
                        done = true;
                }
            } catch (Exception e) {}

            mutex.ReleaseMutex();
            return done;
        }
开发者ID:nikola-v,项目名称:jaustoolset,代码行数:43,代码来源:AdditionServerServiceDefService.cs

示例3: processTransitions

        //    This is the function that will process an event either generated
        //  by the service, sent to it by another service on the same component,
        //  or as a message sent by a different component.
        public override bool processTransitions(InternalEvent ie)
        {
            bool done = false;

               // Since this function can be called from multiple threads,
               // we use a mutex to ensure only one state transition is
               // active at a time.
               mutex.WaitOne();

            // Invoke the FSM transition for this event.
            try
            {
                if (ie.getName().CompareTo("Receive") == 0 && (ie.getSource().CompareTo("Events_ReceiveFSM") != 0) && (!done))
                {
                    Receive casted_ie = (Receive) ie;
                    int pos = 0;
                    ushort id = BitConverter.ToUInt16(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos);
                    if ( id == new QueryEvents().getID())
                    {
                        QueryEvents msg = new QueryEvents();
                        msg.decode(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos);
                        Receive.Body.ReceiveRec transportData = casted_ie.getBody().getReceiveRec();
                        pEvents_ReceiveFSM.context.ReceiveTransition(msg, transportData);
                        done = true;
                    }
                }
            } catch (Exception e) {}

            try
            {
                if (ie.getName().CompareTo("Receive") == 0 && (ie.getSource().CompareTo("Events_ReceiveFSM") != 0) && (!done))
                {
                    Receive casted_ie = (Receive) ie;
                    int pos = 0;
                    ushort id = BitConverter.ToUInt16(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos);
                    if ( id == new QueryEventTimeout().getID())
                    {
                        QueryEventTimeout msg = new QueryEventTimeout();
                        msg.decode(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos);
                        Receive.Body.ReceiveRec transportData = casted_ie.getBody().getReceiveRec();
                        pEvents_ReceiveFSM.context.ReceiveTransition(msg, transportData);
                        done = true;
                    }
                }
            } catch (Exception e) {}

            try
            {
                if (ie.getName().CompareTo("Receive") == 0 && (ie.getSource().CompareTo("Events_ReceiveFSM") != 0) && (!done))
                {
                    Receive casted_ie = (Receive) ie;
                    int pos = 0;
                    ushort id = BitConverter.ToUInt16(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos);
                    if ( id == new CreateEvent().getID())
                    {
                        CreateEvent msg = new CreateEvent();
                        msg.decode(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos);
                        Receive.Body.ReceiveRec transportData = casted_ie.getBody().getReceiveRec();
                        pEvents_ReceiveFSM.context.ReceiveTransition(msg, transportData);
                        done = true;
                    }
                }
            } catch (Exception e) {}

            try
            {
                if (ie.getName().CompareTo("Receive") == 0 && (ie.getSource().CompareTo("Events_ReceiveFSM") != 0) && (!done))
                {
                    Receive casted_ie = (Receive) ie;
                    int pos = 0;
                    ushort id = BitConverter.ToUInt16(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos);
                    if ( id == new CreateEvent().getID())
                    {
                        CreateEvent msg = new CreateEvent();
                        msg.decode(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos);
                        Receive.Body.ReceiveRec transportData = casted_ie.getBody().getReceiveRec();
                        pEvents_ReceiveFSM.context.ReceiveTransition(msg, transportData);
                        done = true;
                    }
                }
            } catch (Exception e) {}

            try
            {
                if (ie.getName().CompareTo("Receive") == 0 && (ie.getSource().CompareTo("Events_ReceiveFSM") != 0) && (!done))
                {
                    Receive casted_ie = (Receive) ie;
                    int pos = 0;
                    ushort id = BitConverter.ToUInt16(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos);
                    if ( id == new CreateEvent().getID())
                    {
                        CreateEvent msg = new CreateEvent();
                        msg.decode(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos);
                        Receive.Body.ReceiveRec transportData = casted_ie.getBody().getReceiveRec();
                        pEvents_ReceiveFSM.context.ReceiveTransition(msg, transportData);
                        done = true;
                    }
//.........这里部分代码省略.........
开发者ID:nikola-v,项目名称:jaustoolset,代码行数:101,代码来源:EventsService.cs

示例4: defaultTransitions

        //    This is the function that will check for default transitions if
        //  no other transitions were satisfied.
        //
        public override bool defaultTransitions(InternalEvent ie)
        {
            bool done = false;

               // Since this function can be called from multiple threads,
               // we use a mutex to ensure only one state transition is
               // active at a time.
               mutex.WaitOne();

            // Invoke the FSM transition for this event.
            try
            {
                if (ie.getName().CompareTo("Send") == 0 && (ie.getSource().CompareTo("Transport_ReceiveFSM") != 0) && (!done))
                {
                    Send casted_ie = (Send) ie;
                        pTransport_ReceiveFSM.context.SendTransition();
                        done = true;
                }
            } catch (Exception e) {}

            try
            {
                if (ie.getName().CompareTo("BroadcastLocal") == 0 && (ie.getSource().CompareTo("Transport_ReceiveFSM") != 0) && (!done))
                {
                    BroadcastLocal casted_ie = (BroadcastLocal) ie;
                        pTransport_ReceiveFSM.context.BroadcastLocalTransition();
                        done = true;
                }
            } catch (Exception e) {}

            try
            {
                if (ie.getName().CompareTo("BroadcastGlobal") == 0 && (ie.getSource().CompareTo("Transport_ReceiveFSM") != 0) && (!done))
                {
                    BroadcastGlobal casted_ie = (BroadcastGlobal) ie;
                        pTransport_ReceiveFSM.context.BroadcastGlobalTransition();
                        done = true;
                }
            } catch (Exception e) {}

            try
            {
                if (ie.getName().CompareTo("Send") == 0 && (ie.getSource().CompareTo("Transport_SendFSM") != 0) && (!done))
                {
                    Send casted_ie = (Send) ie;
                        pTransport_SendFSM.context.SendTransition();
                        done = true;
                }
            } catch (Exception e) {}

            try
            {
                if (ie.getName().CompareTo("BroadcastLocal") == 0 && (ie.getSource().CompareTo("Transport_SendFSM") != 0) && (!done))
                {
                    BroadcastLocal casted_ie = (BroadcastLocal) ie;
                        pTransport_SendFSM.context.BroadcastLocalTransition();
                        done = true;
                }
            } catch (Exception e) {}

            try
            {
                if (ie.getName().CompareTo("BroadcastGlobal") == 0 && (ie.getSource().CompareTo("Transport_SendFSM") != 0) && (!done))
                {
                    BroadcastGlobal casted_ie = (BroadcastGlobal) ie;
                        pTransport_SendFSM.context.BroadcastGlobalTransition();
                        done = true;
                }
            } catch (Exception e) {}

            mutex.ReleaseMutex();
            return done;
        }
开发者ID:nikola-v,项目名称:jaustoolset,代码行数:76,代码来源:TransportService.cs

示例5: processTransitions

        //    This is the function that will process an event either generated
        //  by the service, sent to it by another service on the same component,
        //  or as a message sent by a different component.
        public override bool processTransitions(InternalEvent ie)
        {
            bool done = false;

               // Since this function can be called from multiple threads,
               // we use a mutex to ensure only one state transition is
               // active at a time.
               mutex.WaitOne();

            // Invoke the FSM transition for this event.
            try
            {
                if (ie.getName().CompareTo("InternalStateChange_To_Management_ReceiveFSM_Receiving_Ready_NotControlled_NotAvailable_Init") == 0 && (ie.getSource().CompareTo("Management_ReceiveFSM") != 0) && (!done))
                {
                        pManagement_ReceiveFSM.context.InternalStateChange_To_Management_ReceiveFSM_Receiving_Ready_NotControlled_NotAvailable_InitTransition(ie);
                        done = true;
                }
            } catch (Exception e) {}

            try
            {
                if (ie.getName().CompareTo("InternalStateChange_To_Management_ReceiveFSM_Receiving_Ready_NotControlled_NotAvailable_Failure") == 0 && (ie.getSource().CompareTo("Management_ReceiveFSM") != 0) && (!done))
                {
                        pManagement_ReceiveFSM.context.InternalStateChange_To_Management_ReceiveFSM_Receiving_Ready_NotControlled_NotAvailable_FailureTransition(ie);
                        done = true;
                }
            } catch (Exception e) {}

            try
            {
                if (ie.getName().CompareTo("InternalStateChange_To_Management_ReceiveFSM_Receiving_Ready_NotControlled_NotAvailable_Shutdown") == 0 && (ie.getSource().CompareTo("Management_ReceiveFSM") != 0) && (!done))
                {
                        pManagement_ReceiveFSM.context.InternalStateChange_To_Management_ReceiveFSM_Receiving_Ready_NotControlled_NotAvailable_ShutdownTransition(ie);
                        done = true;
                }
            } catch (Exception e) {}

            try
            {
                if (ie.getName().CompareTo("InternalStateChange_To_Management_ReceiveFSM_Receiving_Ready_NotControlled_NotAvailable_Emergency") == 0 && (ie.getSource().CompareTo("Management_ReceiveFSM") != 0) && (!done))
                {
                        pManagement_ReceiveFSM.context.InternalStateChange_To_Management_ReceiveFSM_Receiving_Ready_NotControlled_NotAvailable_EmergencyTransition(ie);
                        done = true;
                }
            } catch (Exception e) {}

            try
            {
                if (ie.getName().CompareTo("InternalStateChange_To_Management_ReceiveFSM_Receiving_Ready_NotControlled_NotAvailable") == 0 && (ie.getSource().CompareTo("Management_ReceiveFSM") != 0) && (!done))
                {
                        pManagement_ReceiveFSM.context.InternalStateChange_To_Management_ReceiveFSM_Receiving_Ready_NotControlled_NotAvailableTransition(ie);
                        done = true;
            }
            } catch (Exception e) {}

            try
            {
                if (ie.getName().CompareTo("InternalStateChange_To_Management_ReceiveFSM_Receiving_Ready_Controlled_Available_Standby") == 0 && (ie.getSource().CompareTo("Management_ReceiveFSM") != 0) && (!done))
            {
                        pManagement_ReceiveFSM.context.InternalStateChange_To_Management_ReceiveFSM_Receiving_Ready_Controlled_Available_StandbyTransition(ie);
                        done = true;
              	}
            } catch (Exception e) {}

            try
            {
                if (ie.getName().CompareTo("InternalStateChange_To_Management_ReceiveFSM_Receiving_Ready_Controlled_Available_Ready") == 0 && (ie.getSource().CompareTo("Management_ReceiveFSM") != 0) && (!done))
                {
                        pManagement_ReceiveFSM.context.InternalStateChange_To_Management_ReceiveFSM_Receiving_Ready_Controlled_Available_ReadyTransition(ie);
                        done = true;
            }
            } catch (Exception e) {}

            try
            {
                if (ie.getName().CompareTo("InternalStateChange_To_Management_ReceiveFSM_Receiving_Ready_Controlled_Available") == 0 && (ie.getSource().CompareTo("Management_ReceiveFSM") != 0) && (!done))
                {
                        pManagement_ReceiveFSM.context.InternalStateChange_To_Management_ReceiveFSM_Receiving_Ready_Controlled_AvailableTransition(ie);
                        done = true;
                }
            } catch (Exception e) {}

            try
            {
                if (ie.getName().CompareTo("InternalStateChange_To_Management_ReceiveFSM_Receiving_Ready_Controlled_NotAvailable_Emergency") == 0 && (ie.getSource().CompareTo("Management_ReceiveFSM") != 0) && (!done))
                {
                        pManagement_ReceiveFSM.context.InternalStateChange_To_Management_ReceiveFSM_Receiving_Ready_Controlled_NotAvailable_EmergencyTransition(ie);
                        done = true;
            }
            } catch (Exception e) {}

            try
            {
                if (ie.getName().CompareTo("InternalStateChange_To_Management_ReceiveFSM_Receiving_Ready_Controlled_NotAvailable") == 0 && (ie.getSource().CompareTo("Management_ReceiveFSM") != 0) && (!done))
                {
                        pManagement_ReceiveFSM.context.InternalStateChange_To_Management_ReceiveFSM_Receiving_Ready_Controlled_NotAvailableTransition(ie);
                        done = true;
//.........这里部分代码省略.........
开发者ID:nikola-v,项目名称:jaustoolset,代码行数:101,代码来源:ManagementService.cs

示例6: defaultTransitions

        //    This is the function that will check for default transitions if
        //  no other transitions were satisfied.
        //
        public override bool defaultTransitions(InternalEvent ie)
        {
            bool done = false;

               // Since this function can be called from multiple threads,
               // we use a mutex to ensure only one state transition is
               // active at a time.
               mutex.WaitOne();

            // Invoke the FSM transition for this event.
            try
            {
                if (ie.getName().CompareTo("Receive") == 0 && (ie.getSource().CompareTo("Management_ReceiveFSM") != 0) && (!done))
                {
                    Receive casted_ie = (Receive) ie;
                    int pos = 0;
                    ushort id = BitConverter.ToUInt16(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos);
                    if ( id == new Resume().getID())
                    {
                        Resume msg = new Resume();
                        msg.decode(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos);
                        pManagement_ReceiveFSM.context.ResumeTransition();
                        done = true;
                    }
                }
            } catch (Exception e) {}

            try
            {
                if (ie.getName().CompareTo("Receive") == 0 && (ie.getSource().CompareTo("Management_ReceiveFSM") != 0) && (!done))
                {
                    Receive casted_ie = (Receive) ie;
                    int pos = 0;
                    ushort id = BitConverter.ToUInt16(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos);
                    if ( id == new Reset().getID())
                    {
                        Reset msg = new Reset();
                        msg.decode(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos);
                        pManagement_ReceiveFSM.context.ResetTransition();
                        done = true;
                    }
                }
            } catch (Exception e) {}

            try
            {
                if (ie.getName().CompareTo("Receive") == 0 && (ie.getSource().CompareTo("Management_ReceiveFSM") != 0) && (!done))
                {
                    Receive casted_ie = (Receive) ie;
                    int pos = 0;
                    ushort id = BitConverter.ToUInt16(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos);
                    if ( id == new SetEmergency().getID())
                    {
                        SetEmergency msg = new SetEmergency();
                        msg.decode(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos);
                        pManagement_ReceiveFSM.context.SetEmergencyTransition();
                        done = true;
                    }
                }
            } catch (Exception e) {}

            try
            {
                if (ie.getName().CompareTo("Receive") == 0 && (ie.getSource().CompareTo("Management_ReceiveFSM") != 0) && (!done))
                {
                    Receive casted_ie = (Receive) ie;
                    int pos = 0;
                    ushort id = BitConverter.ToUInt16(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos);
                    if ( id == new ClearEmergency().getID())
                    {
                        ClearEmergency msg = new ClearEmergency();
                        msg.decode(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos);
                        pManagement_ReceiveFSM.context.ClearEmergencyTransition();
                        done = true;
                    }
                }
            } catch (Exception e) {}

            try
            {
                if (ie.getName().CompareTo("Receive") == 0 && (ie.getSource().CompareTo("Management_ReceiveFSM") != 0) && (!done))
                {
                    Receive casted_ie = (Receive) ie;
                    int pos = 0;
                    ushort id = BitConverter.ToUInt16(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos);
                    if ( id == new QueryStatus().getID())
                    {
                        QueryStatus msg = new QueryStatus();
                        msg.decode(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos);
                        pManagement_ReceiveFSM.context.QueryStatusTransition();
                        done = true;
                    }
                }
            } catch (Exception e) {}

            try
            {
//.........这里部分代码省略.........
开发者ID:nikola-v,项目名称:jaustoolset,代码行数:101,代码来源:ManagementService.cs

示例7: defaultTransitions

        //    This is the function that will check for default transitions if
        //  no other transitions were satisfied.
        //
        public override bool defaultTransitions(InternalEvent ie)
        {
            bool done = false;

               // Since this function can be called from multiple threads,
               // we use a mutex to ensure only one state transition is
               // active at a time.
               mutex.WaitOne();

            // Invoke the FSM transition for this event.
            try
            {
                if (ie.getName().CompareTo("Receive") == 0 && (ie.getSource().CompareTo("ManagementOCU_ManagementOcuFSM") != 0) && (!done))
                {
                    Receive casted_ie = (Receive) ie;
                    int pos = 0;
                    ushort id = BitConverter.ToUInt16(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos);
                    if ( id == new ReportStatus().getID())
                    {
                        ReportStatus msg = new ReportStatus();
                        msg.decode(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos);
                        pManagementOCU_ManagementOcuFSM.context.ReportStatusTransition();
                        done = true;
                    }
                }
            } catch (Exception e) {}

            try
            {
                if (ie.getName().CompareTo("Receive") == 0 && (ie.getSource().CompareTo("ManagementOCU_ManagementOcuFSM") != 0) && (!done))
                {
                    Receive casted_ie = (Receive) ie;
                    int pos = 0;
                    ushort id = BitConverter.ToUInt16(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos);
                    if ( id == new ConfirmControl().getID())
                    {
                        ConfirmControl msg = new ConfirmControl();
                        msg.decode(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos);
                        pManagementOCU_ManagementOcuFSM.context.ConfirmControlTransition();
                        done = true;
                    }
                }
            } catch (Exception e) {}

            try
            {
                if (ie.getName().CompareTo("Receive") == 0 && (ie.getSource().CompareTo("ManagementOCU_ManagementOcuFSM") != 0) && (!done))
                {
                    Receive casted_ie = (Receive) ie;
                    int pos = 0;
                    ushort id = BitConverter.ToUInt16(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos);
                    if ( id == new ReportControl().getID())
                    {
                        ReportControl msg = new ReportControl();
                        msg.decode(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos);
                        pManagementOCU_ManagementOcuFSM.context.ReportControlTransition();
                        done = true;
                    }
                }
            } catch (Exception e) {}

            try
            {
                if (ie.getName().CompareTo("Receive") == 0 && (ie.getSource().CompareTo("ManagementOCU_ManagementOcuFSM") != 0) && (!done))
                {
                    Receive casted_ie = (Receive) ie;
                    int pos = 0;
                    ushort id = BitConverter.ToUInt16(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos);
                    if ( id == new RejectControl().getID())
                    {
                        RejectControl msg = new RejectControl();
                        msg.decode(casted_ie.getBody().getReceiveRec().getMessagePayload().getData(), pos);
                        pManagementOCU_ManagementOcuFSM.context.RejectControlTransition();
                        done = true;
                    }
                }
            } catch (Exception e) {}

            try
            {
                if (ie.getName().CompareTo("MenuItemEntered") == 0 && (ie.getSource().CompareTo("ManagementOCU_ManagementOcuFSM") != 0) && (!done))
                {
                    MenuItemEntered casted_ie = (MenuItemEntered) ie;
                        pManagementOCU_ManagementOcuFSM.context.MenuItemEnteredTransition();
                        done = true;
                }
            } catch (Exception e) {}

            mutex.ReleaseMutex();
            return done;
        }
开发者ID:nikola-v,项目名称:jaustoolset,代码行数:94,代码来源:ManagementOCUService.cs


注:本文中的JTS.InternalEvent.getName方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。