コード例 #1
0
        public void SetDefaultIncomingEventProcessor(HaywireStartUpMode mode)
        {
            //TODO Change this to use MEF to load processors

            switch (mode)
            {
            case HaywireStartUpMode.Default:
#if (DEBUG)
                //If a debug release then use the debug processor, otherwise fall through and use the normal one
                ProcessEventDelegate = DebugProcessIncomingEvent;
                break;
#endif
            case HaywireStartUpMode.Normal:
                ProcessEventDelegate = NormalProcessIncomingEvent;
                break;

            case HaywireStartUpMode.Debug:
                ProcessEventDelegate = DebugProcessIncomingEvent;
                break;

            case HaywireStartUpMode.PerformanceTest:
                ProcessEventDelegate = PerformanceTestProcessIncomingEvent;
                break;
            }
        }
コード例 #2
0
        private void SetDefaultIncomingEventProcessor(HaywireStartUpMode mode)
        {
            ProcessEventDelegate = SubscribedProcessIncomingEvent;
            ProcessEventDelegates.Add(MessageType.Default, ProcessIncomingEventDoNothing);
            return;


            //TODO Change this to use MEF to load processors

            switch (mode)
            {
            case HaywireStartUpMode.Default:
#if (DEBUG)
                //If a debug release then use the debug processor, otherwise fall through and use the normal one
                ProcessEventDelegate = DebugProcessIncomingEvent;
                break;
#endif
            case HaywireStartUpMode.Normal:
                ProcessEventDelegate = NormalProcessIncomingEvent;
                break;

            case HaywireStartUpMode.Debug:
                ProcessEventDelegate = DebugProcessIncomingEvent;
                break;

            case HaywireStartUpMode.PerformanceTest:
                ProcessEventDelegate = PerformanceTestProcessIncomingEvent;
                break;
            }
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: darcythomas/HaywireOwin
        static void Main(string[] args)
        {
            Mutex shutDownSynchMutex = new Mutex(false, "haywireShutDownSyncMutex");

            String             filename    = HaywireBridge.DefaultMemorymappedFileName;
            HaywireStartUpMode startUpMode = HaywireStartUpMode.Default;

            if (args.Any())
            {
                filename = args[0];
                Enum.TryParse(args[1], true, out startUpMode);
            }

            using (HaywireBridge hb1 = new HaywireBridge(filename, startUpMode))
            {
                try
                {
                    Console.WriteLine("Minion Runner Started running HaywireBridge version {0}", hb1.Version);

                    //Mutex used to close minion app when a parent debug app is closed
                    shutDownSynchMutex.WaitOne();
                    shutDownSynchMutex.ReleaseMutex();
                }
                catch (AbandonedMutexException)
                {
                    //swallow
                    Console.WriteLine("Shutting Down");
                }
            }
        }
コード例 #4
0
        //Implement IOWIN
        //Event loop
        //Read string back
        // pseudo GC ring buffer (bonus: grow and shrink)
        //serialize dictionary
        //Stream
        //Create one memmap with access wrapped in a global mutex to write/read init coms to



        public HaywireBridge(String fileName = null, HaywireStartUpMode mode = HaywireStartUpMode.Default, MemoryMappedFileSecurity customSecurity = null)
        {
            SetDefaultIncomingEventProcessor(mode);
            SetMemoryMappedFileName(fileName);
            SetupMemoryMappedFileSecurity(customSecurity);
            SetupMemoryMappedFiles(customSecurity);
            _eventLoaderUnloader = new EventLoaderUnloader(this);
            _eventSpinners       = new EventSpinners(this);
            SetupAddEventToQueueDelegate();
        }