Exemple #1
0
 public mmServer(int port, int SendToPort, OnDataDelegate onData)
 {
     this.port               = port;
     this._onData            = onData;
     mmServer.ServerInstance = this;
     sendToPort              = SendToPort;
 }
Exemple #2
0
 /// <summary>
 /// Adds a data handler {dataDelegate} after the given handler {next}.
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <typeparam name="R"></typeparam>
 /// <param name="next"></param>
 /// <param name="dataDelegate"></param>
 /// <returns></returns>
 public bool AddIncomingAfter <T, R>(OnDataDelegate <T> next, OnDataDelegate <R> dataDelegate)
 {
     lock (incomingHandlers)
     {
         return(incomingHandlers.AddAfter(new DelegateReference <T>(next), new DelegateReference <R>(dataDelegate)));
     }
 }
Exemple #3
0
        public void Destroy()
        {
            this._onData = null;
            this._event.RemoveListener();

            this.Close(null);
        }
Exemple #4
0
 /// <summary>
 /// Removes the given handler.
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="dataDelegate"></param>
 /// <returns></returns>
 public bool RemoveIncoming <T>(OnDataDelegate <T> dataDelegate)
 {
     lock (incomingHandlers)
     {
         return(incomingHandlers.Remove(new DelegateReference <T>(dataDelegate)));
     }
 }
Exemple #5
0
 /// <summary>
 /// Adds a data handler {dataDelegate} before the given handler {previous}.
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <typeparam name="R"></typeparam>
 /// <param name="previous"></param>
 /// <param name="dataDelegate"></param>
 /// <returns></returns>
 public bool AddIncomingBefore <T, R>(OnDataDelegate <T> previous, OnDataDelegate <R> dataDelegate)
 {
     lock (incomingHandlers)
     {
         return(incomingHandlers.AddBefore(new DelegateReference <T>(previous), new DelegateReference <R>(dataDelegate)));
     }
 }
Exemple #6
0
 /// <summary>
 /// Adds this given data handler as the last handler in the  data handler chain.
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="dataDelegate"></param>
 public void AddIncomingLast <T>(OnDataDelegate <T> dataDelegate)
 {
     lock (incomingHandlers)
     {
         incomingHandlers.AddLast(new DelegateReference <T>(dataDelegate));
     }
 }
Exemple #7
0
 /// <summary>
 /// Adds this given data handler as the last handler in the  data handler chain.
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="dataDelegate"></param>
 public void AddOutgoingLast <T>(OnDataDelegate <T> dataDelegate)
 {
     lock (outgoingHandlers)
     {
         outgoingHandlers.AddLast(new DelegateReference <T>(dataDelegate));
     }
 }
 public FPSocket(OnDataDelegate onData, string host, int port, int timeout)
 {
     this._host    = host;
     this._port    = port;
     this._timeout = timeout;
     this._onData  = onData;
 }
 private void Destroy()
 {
     this._onData        = null;
     this.Socket_Connect = null;
     this.Socket_Close   = null;
     this.Socket_Error   = null;
 }
Exemple #10
0
 public mmServer(int port, int SendToPort, OnDataDelegate onData, OnNoCommsDelegate onNoComms)
 {
     this.port               = port;
     this._onData            = onData;
     mmServer.ServerInstance = this;
     sendToPort              = SendToPort;
     _onNoComms              = onNoComms;
 }
Exemple #11
0
    public CksAdapterCallback()
    {
        instance = Marshal.AllocHGlobal(IntPtr.Size * 6);
        IntPtr vtblPtr = IntPtr.Add(instance, IntPtr.Size);

        Marshal.WriteIntPtr(instance, vtblPtr);
        Marshal.WriteIntPtr(vtblPtr, IntPtr.Zero);     //dummy entry for the destructor
        OnConnectedInternal = new OnConnectedDelegate(OnConnected);
        Marshal.WriteIntPtr(IntPtr.Add(vtblPtr, IntPtr.Size), Marshal.GetFunctionPointerForDelegate(OnConnectedInternal));
        OnDataInternal = new OnDataDelegate(OnData);
        Marshal.WriteIntPtr(IntPtr.Add(vtblPtr, 2 * IntPtr.Size), Marshal.GetFunctionPointerForDelegate(OnDataInternal));
        public void EnqueueDataCall(OnDataDelegate callback, byte[] data)
        {
            Hashtable hashtable = new Hashtable();

            hashtable["callback"] = callback;
            hashtable["data"]     = data;
            lock (inQueueLocker)
            {
                inThreadQueue.Enqueue(hashtable);
                inHasQueuedItems = true;
            }
        }
        private void ProcessItem(Hashtable item)
        {
            object         obj            = item["callback"];
            OnDataDelegate onDataDelegate = obj as OnDataDelegate;

            if (onDataDelegate != null)
            {
                byte[] msg = (byte[])item["data"];
                onDataDelegate(msg);
            }
            else
            {
                (obj as ParameterizedThreadStart)?.Invoke(item);
            }
        }
        private void ProcessItem(Hashtable item)
        {
            object         cb             = item["callback"];
            OnDataDelegate onDataDelegate = cb as OnDataDelegate;

            if (onDataDelegate != null)
            {
                ByteBuffer msg = (ByteBuffer)item["data"];
                onDataDelegate(msg);
            }
            else
            {
                (cb as ParameterizedThreadStart)?.Invoke(item);
            }
        }
Exemple #15
0
        public void EnqueueDataCall(OnDataDelegate callback, byte[] data)
        {
            UnityEngine.Debug.Log("EnqueueDataCall--OnDataDelegate");
            Hashtable hashtable = new Hashtable();

            hashtable["callback"] = callback;
            hashtable["data"]     = data;
            object obj = this.inQueueLocker;

            Monitor.Enter(obj);
            try
            {
                this.inThreadQueue.Enqueue(hashtable);
                this.inHasQueuedItems = true;
            }
            finally
            {
                Monitor.Exit(obj);
            }
        }
Exemple #16
0
 public DelegateReference(OnDataDelegate <T> dataDelegate)
 {
     Delegate     = (Delegate)dataDelegate;
     DelegateType = typeof(T);
 }