public void TestAddRemoveConnectionListener()
        {
            ConnectionListenerFunction callback = (uid, connected, conn) =>
            {
            };

            int id = CoreMethods.AddConnectionListener(callback, true);

            Assert.That(id, Is.Not.EqualTo(0));

            CoreMethods.RemoveEntryListener(id);
        }
예제 #2
0
        internal static int AddConnectionListener(ConnectionListenerFunction callback, bool immediateNotify)
        {
            Interop.NT_ConnectionListenerCallback modCallback =
                (uint uid, IntPtr data, int connected, ref NtConnectionInfo conn) =>
                {
                    string remoteName = ReadUTF8String(conn.RemoteName);
                    ConnectionInfo info = new ConnectionInfo(conn.RemoteId.ToString(), remoteName, (int)conn.RemotePort, (long)conn.LastUpdate, (int)conn.ProtocolVersion);
                    callback((int)uid, connected != 0, info);
                };

            int retVal = (int)Interop.NT_AddConnectionListener(IntPtr.Zero, modCallback, immediateNotify ? 1 : 0);
            s_connectionCallbacks.Add(retVal, modCallback);
            return retVal;
        }
예제 #3
0
        internal static int AddConnectionListener(ConnectionListenerFunction callback, bool immediateNotify)
        {
            Interop.NT_ConnectionListenerCallback modCallback =
                (uint uid, IntPtr data, int connected, ref NtConnectionInfo conn) =>
            {
                string         remoteName = ReadUTF8String(conn.RemoteName);
                ConnectionInfo info       = new ConnectionInfo(conn.RemoteId.ToString(), remoteName, (int)conn.RemotePort, (long)conn.LastUpdate, (int)conn.ProtocolVersion);
                callback((int)uid, connected != 0, info);
            };

            int retVal = (int)Interop.NT_AddConnectionListener(IntPtr.Zero, modCallback, immediateNotify ? 1 : 0);

            s_connectionCallbacks.Add(retVal, modCallback);
            return(retVal);
        }
예제 #4
0
        /// <inheritdoc/>
        public void AddConnectionListener(Action <IRemote, ConnectionInfo, bool> listener, bool immediateNotify)
        {
            if (m_actionConnectionListenerMap.ContainsKey(listener))
            {
                throw new ArgumentException("Cannot add the same listener twice", nameof(listener));
            }

            ConnectionListenerFunction func = (uid, connected, conn) =>
            {
                listener(this, conn, connected);
            };

            int id = CoreMethods.AddConnectionListener(func, immediateNotify);

            m_actionConnectionListenerMap.Add(listener, id);
        }
예제 #5
0
        ///<inheritdoc/>
        public void AddConnectionListener(IRemoteConnectionListener listener, bool immediateNotify)
        {
            if (m_connectionListenerMap.ContainsKey(listener))
            {
                throw new ArgumentException("Cannot add the same listener twice", nameof(listener));
            }

            ConnectionListenerFunction func = (uid, connected, conn) =>
            {
                if (connected)
                {
                    listener.Connected(this, conn);
                }
                else
                {
                    listener.Disconnected(this, conn);
                }
            };

            int id = CoreMethods.AddConnectionListener(func, immediateNotify);

            m_connectionListenerMap.Add(listener, id);
        }