csImb.csImb.Subscribe C# (CSharp) Method

Subscribe() public method

Subscribes on updates on the specified event. The specified serializer will be used to convert the incoming IMB byte buffer into an actual object.
public Subscribe ( string channelName, XmlSerializer serializer, OnImbMessageReceived callback ) : void
channelName string The name of the channel.
serializer System.Xml.Serialization.XmlSerializer The serializer to apply in case the specfied event message is received.
callback OnImbMessageReceived The callback.
return void
        public void Subscribe(string channelName, XmlSerializer serializer, OnImbMessageReceived callback)
        {
            if (!IsConnected) return;
            var subscribedEvent = Imb.Subscribe(channelName);

            if (!channelSerializers.ContainsKey(channelName)) channelSerializers.Add(channelName, serializer);
            if (!channelCallbacks.ContainsKey(channelName))
                channelCallbacks.Add(channelName, new List<OnImbMessageReceived>
                {
                   callback
                });
            else channelCallbacks[channelName].Add(callback);

            subscribedEvent.OnBuffer += (aEvent, aTick, aBufferID, aBuffer) => OnImbBuffer(channelName, aBuffer.Buffer);
        }