public void Monitor(String addr, SocketEvent events) { if (m_ctxTerminated) { throw TerminatingException.Create(); } // Support deregistering monitoring endpoints as well if (addr == null) { StopMonitor(); return; } string address; string protocol; DecodeAddress(addr, out address, out protocol); CheckProtocol(protocol); // Event notification only supported over inproc:// if (!protocol.Equals("inproc")) { throw NetMQException.Create(ErrorCode.EPROTONOSUPPORT); } // Register events to monitor m_monitorEvents = events; m_monitorSocket = Ctx.CreateSocket(ZmqSocketType.Pair); if (m_monitorSocket == null) { throw NetMQException.Create(ErrorCode.EFAULT); } // Never block context termination on pending event messages int linger = 0; try { m_monitorSocket.SetSocketOption(ZmqSocketOptions.Linger, linger); } catch (NetMQException) { StopMonitor(); throw; } // Spawn the monitor socket endpoint try { m_monitorSocket.Bind(addr); } catch (NetMQException) { StopMonitor(); throw; } }
public static void Bind(SocketBase s, String addr) { if (s == null || !s.CheckTag()) { throw NetMQException.Create(ErrorCode.EFAULT); } s.Bind(addr); }
public void Monitor([CanBeNull] string addr, SocketEvent events) { CheckContextTerminated(); // Support de-registering monitoring endpoints as well if (addr == null) { StopMonitor(); return; } string address; string protocol; DecodeAddress(addr, out address, out protocol); CheckProtocol(protocol); // Event notification only supported over inproc:// if (!protocol.Equals(Address.InProcProtocol)) { throw new ProtocolNotSupportedException(String.Format("In SocketBase.Monitor({0},), protocol must be inproc", addr)); } // Register events to monitor m_monitorEvents = events; m_monitorSocket = Ctx.CreateSocket(ZmqSocketType.Pair); if (m_monitorSocket == null) { throw new FaultException("In SocketBase.Monitor, Ctx.CreateSocket(ZmqSocketType.Pair) failed."); } // Never block context termination on pending event messages const int linger = 0; try { m_monitorSocket.SetSocketOption(ZmqSocketOptions.Linger, linger); } catch (NetMQException) { StopMonitor(); throw; } // Spawn the monitor socket endpoint try { m_monitorSocket.Bind(addr); } catch (NetMQException) { StopMonitor(); throw; } }
public static bool Bind(SocketBase s, String addr) { if (s == null || !s.CheckTag()) { throw new InvalidOperationException(); } return s.Bind(addr); }
public void Monitor(String addr, SocketEvent events) { if (m_ctxTerminated) { throw TerminatingException.Create(); } // Support deregistering monitoring endpoints as well if (addr == null) { StopMonitor(); return; } string address; string protocol; DecodeAddress(addr, out address, out protocol); CheckProtocol(protocol); // Event notification only supported over inproc:// if (!protocol.Equals(Address.InProcProtocol)) { throw NetMQException.Create(ErrorCode.EPROTONOSUPPORT); } // Register events to monitor m_monitorEvents = events; m_monitorSocket = Ctx.CreateSocket(ZmqSocketType.Pair); if (m_monitorSocket == null) throw NetMQException.Create(ErrorCode.EFAULT); // Never block context termination on pending event messages int linger = 0; try { m_monitorSocket.SetSocketOption(ZmqSocketOptions.Linger, linger); } catch (NetMQException) { StopMonitor(); throw; } // Spawn the monitor socket endpoint try { m_monitorSocket.Bind(addr); } catch (NetMQException) { StopMonitor(); throw; } }
public bool Monitor(String addr, SocketEvent events) { bool rc; if (m_ctxTerminated) { ZError.ErrorNumber = (ErrorNumber.ETERM); return false; } // Support deregistering monitoring endpoints as well if (addr == null) { StopMonitor(); return true; } // Parse addr_ string. //Uri uri; //try //{ // uri = new Uri(addr); //} //catch (UriFormatException ex) //{ // ZError.ErrorNumber = (ErrorNumber.EINVAL); // throw new ArgumentException(addr, ex); //} //String protocol = uri.Scheme; //String address = uri.Authority; //String path = uri.AbsolutePath; //if (string.IsNullOrEmpty(address)) // address = path; string address; string protocol; DecodeAddress(addr, out address, out protocol); CheckProtocol(protocol); // Event notification only supported over inproc:// if (!protocol.Equals("inproc")) { ZError.ErrorNumber = (ErrorNumber.EPROTONOSUPPORT); return false; } // Register events to monitor m_monitorEvents = events; m_monitorSocket = Ctx.CreateSocket(ZmqSocketType.Pair); if (m_monitorSocket == null) return false; // Never block context termination on pending event messages int linger = 0; rc = m_monitorSocket.SetSocketOption(ZmqSocketOptions.Linger, linger); if (!rc) StopMonitor(); // Spawn the monitor socket endpoint rc = m_monitorSocket.Bind(addr); if (!rc) StopMonitor(); return rc; }
public void Monitor([CanBeNull] string addr, SocketEvent events) { CheckContextTerminated(); // Support de-registering monitoring endpoints as well if (addr == null) { StopMonitor(); return; } string address; string protocol; DecodeAddress(addr, out address, out protocol); CheckProtocol(protocol); // Event notification only supported over inproc:// if (!protocol.Equals(Address.InProcProtocol)) { throw new ProtocolNotSupportedException(string.Format("In SocketBase.Monitor({0},), protocol must be inproc", addr)); } // Register events to monitor m_monitorEvents = events; m_monitorSocket = Ctx.CreateSocket(ZmqSocketType.Pair); if (m_monitorSocket == null) throw new FaultException("In SocketBase.Monitor, Ctx.CreateSocket(ZmqSocketType.Pair) failed."); // Never block context termination on pending event messages const int linger = 0; try { m_monitorSocket.SetSocketOption(ZmqSocketOptions.Linger, linger); } catch (NetMQException) { StopMonitor(); throw; } // Spawn the monitor socket endpoint try { m_monitorSocket.Bind(addr); } catch (NetMQException) { StopMonitor(); throw; } }