Artemis.Utilities.DataReaders.PipeServer.Start C# (CSharp) Method

Start() public method

public Start ( string pipeName ) : void
pipeName string
return void
        public void Start(string pipeName)
        {
            _pipeName = pipeName;

            var security = new PipeSecurity();
            var sid = new SecurityIdentifier(WellKnownSidType.WorldSid, null);
            security.AddAccessRule(new PipeAccessRule(sid, PipeAccessRights.FullControl, AccessControlType.Allow));
            _pipeServer = new NamedPipeServerStream(_pipeName, PipeDirection.In, 254,
                PipeTransmissionMode.Byte, PipeOptions.Asynchronous, 4096, 4096, security);
            _pipeServer.BeginWaitForConnection(WaitForConnectionCallBack, _pipeServer);
            _logger.Info("Opened named pipe '{0}'", _pipeName);
            _closed = false;
        }

Usage Example

示例#1
0
        public MainManager(ILogger logger, LoopManager loopManager, DeviceManager deviceManager,
            EffectManager effectManager, ProfileManager profileManager, PipeServer pipeServer)
        {
            Logger = logger;
            LoopManager = loopManager;
            DeviceManager = deviceManager;
            EffectManager = effectManager;
            ProfileManager = profileManager;
            PipeServer = pipeServer;

            _processTimer = new Timer(1000);
            _processTimer.Elapsed += ScanProcesses;
            _processTimer.Start();

            ProgramEnabled = false;
            Running = false;

            // Create and start the web server
            GameStateWebServer = new GameStateWebServer(logger);
            GameStateWebServer.Start();

            // Start the named pipe
            PipeServer.Start("artemis");

            // Start the update task
            var updateTask = new Task(Updater.UpdateApp);
            updateTask.Start();

            Logger.Info("Intialized MainManager");
            Logger.Info($"Artemis version {Assembly.GetExecutingAssembly().GetName().Version} is ready!");
        }