public static void ProcessMessage(FFMsg_G2H message)
        {
            using (ILogMethod method = Log.LogMethod(DYN_MODULE_NAME, "ProcessMessage(G2H)"))
            {
                try
                {
                    FreeformExecutorBase executor = GetMessageType(message.SessionID);
                    bool result = false;

                    if (message.SessionID == FF_AppId_SessionIds.GIM)
                    {
                        result = executor.ProcessMessage(message);
                    }
                    else
                    {
                        if (UpdateInstallationNo(ref message))
                        {
                            result = executor.ProcessMessage(message);
                        }
                    }

                    if (!result)
                    {
                        Log.Info("Freeform message received before GIM message.");
                    }
                }
                catch (Exception ex)
                {
                    method.Exception(ex);
                }
            }
        }
        internal static void StartThreads()
        {
            using (ILogMethod method = Log.LogMethod(DYN_MODULE_NAME, "StartThreads"))
            {
                try
                {
                    _executorPriority = new FreeformExecutor_PriorityMessages();
                    _executorPriority.Start(PriorityG2HThreadCount, PriorityH2GThreadCount);

                    _executorGIM = new FreeformExecutor_GIMMessages();
                    _executorGIM.Start(GIMG2HThreadCount, GIMH2GThreadCount);

                    _executorNonPriority = new FreeformExecutor_NonPriorityMessages();
                    _executorNonPriority.Start(NonPriorityG2HThreadCount, NonPriorityH2GThreadCount);
                }
                catch (Exception ex)
                {
                    method.Exception(ex);
                }
            }
        }
 public static void ProcessMessage(FFMsg_H2G message)
 {
     using (ILogMethod method = Log.LogMethod(DYN_MODULE_NAME, "ProcessMessage(H2G)"))
     {
         try
         {
             FreeformExecutorBase executor = GetMessageType(message.SessionID);
             if (message.SessionID == FF_AppId_SessionIds.GIM)
             {
                 UpdateInstallationIP(message.IpAddress, message.InstallationNo);
             }
             else
             {
                 UpdateIP(ref message);
             }
             executor.ProcessMessage(message);
         }
         catch (Exception ex)
         {
             method.Exception(ex);
         }
     }
 }