CSharpRTMP.Core.Protocols.Cluster.BaseClusterProtocol.SharedObjectTrack C# (CSharp) Method

SharedObjectTrack() public method

public SharedObjectTrack ( BaseClientApplication app, string name, uint version, bool isPersistent, Variant primitives ) : void
app BaseClientApplication
name string
version uint
isPersistent bool
primitives Variant
return void
        public void SharedObjectTrack(BaseClientApplication app, string name, uint version, bool isPersistent, Variant primitives)
        {
            SlaveClusterAppProtocolHandler.GotAppIdDelegate task = appId =>
            {
                Send(ClusterMessageType.SharedObjectTrack, o =>
                {
                    o.Write7BitValue(appId);
                    o.Write(name);
                    o.Write7BitValue(version);
                    o.Write(isPersistent);
                    o.Write(primitives.ToBytes());
                });
                primitives.Recycle();
            };
            if (app.Id == 0)
            {
                var gotAppIdTasks = Application.GetProtocolHandler<SlaveClusterAppProtocolHandler>().GotAppIdTasks;
                if (gotAppIdTasks.ContainsKey(app.Name))
                {
                    gotAppIdTasks[app.Name] += task;
                }
                else
                {
                    gotAppIdTasks[app.Name] = task;
                }
            }
            else
            {
                task(app.Id);
            }
           
        }