コード例 #1
0
ファイル: Actor.cs プロジェクト: cernysw/UnityDemo
        /// <summary>
        /// Initializes a new instance of the <see cref="Actor"/> class.
        /// </summary>
        /// <param name="peer">
        /// The peer for this actor.
        /// </param>
        public Actor(HivePeer peer)
        {
            this.Peer = peer;

            // we copy the UserId so it doesn't get lost on peer disconnect
            this.UserId = peer.UserId;
        }
コード例 #2
0
        /// <summary>
        /// Creates a <see cref="HivePeer"/> to handle <see cref="OperationRequest"/>s.
        /// </summary>
        /// <param name="initRequest">
        /// The initialization request.
        /// </param>
        /// <returns>
        /// A new <see cref="HivePeer"/> instance.
        /// </returns>
        protected override PeerBase CreatePeer(InitRequest initRequest)
        {
            var peer = new HivePeer(initRequest);

            if (this.webRpcManager.IsRpcEnabled)
            {
                peer.WebRpcHandler = this.webRpcManager.GetWebRpcHandler();
            }

            return(peer);
        }
コード例 #3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="Actor"/> class.
        /// </summary>
        /// <param name="peer">
        /// The peer for this actor.
        /// </param>
        public Actor(HivePeer peer)
        {
            this.Peer = peer;

            this.LastPeerInfo = peer.ToString();

            this.Peer.Actor = this;

            // we copy the UserId so it doesn't get lost on peer disconnect
            this.UserId = peer.UserId;
            this.RemovedFromInactive = DateTime.MinValue;
        }
コード例 #4
0
ファイル: ActorGroup.cs プロジェクト: theGameShop/Flipper
        public Actor RemoveActorByPeer(HivePeer peer)
        {
            var index = this.FindIndex(actor => actor.Peer == peer);

            if (index == -1)
            {
                return(null);
            }

            var result = this[index];

            this.RemoveAt(index);
            return(result);
        }
コード例 #5
0
        public void Reactivate(HivePeer peer)
        {
            this.Peer       = peer;
            this.Peer.Actor = this;

            this.LastPeerInfo = peer.ToString();

            // rejoin to all previously joined groups
            foreach (var group in this.groups)
            {
                group.Add(this);
            }

            this.KillInActiveActorCleanUpTimer();

            this.DeactivationTime = null;
        }
コード例 #6
0
ファイル: Actor.cs プロジェクト: cernysw/UnityDemo
        public void Reactivate(HivePeer peer)
        {
            this.Peer = peer;

            // rejoin to all previously joined groups
            foreach (var group in this.groups)
            {
                group.Add(this);
            }

            if (this.CleanUpTimer != null)
            {
                this.CleanUpTimer.Dispose();
                this.CleanUpTimer = null;
            }

            this.DeactivationTime = null;
        }
コード例 #7
0
ファイル: HiveApplication.cs プロジェクト: cernysw/UnityDemo
        /// <summary>
        /// Creates a <see cref="HivePeer"/> to handle <see cref="OperationRequest"/>s.
        /// </summary>
        /// <param name="initRequest">
        /// The initialization request.
        /// </param>
        /// <returns>
        /// A new <see cref="HivePeer"/> instance.
        /// </returns>
        protected override PeerBase CreatePeer(InitRequest initRequest)
        {
            var peer = new HivePeer(initRequest);

            var settings = WebRpcSettings.Default;

            if (settings != null && settings.Enabled)
            {
                peer.WebRpcHandler = new WebRpcHandler(
                    settings.BaseUrl.Value,
                    new Dictionary <string, object>
                {
                    { "AppId", this.HwId },
                    { "AppVersion", "" },
                    { "Region", "" },
                    { "Cloud", "" },
                }, null, new HttpRequestQueueOptions(httpQueueReconnectInterval: settings.ReconnectInterval * 1000));
            }

            return(peer);
        }
コード例 #8
0
 /// <summary>
 ///   This method is invoked sequentially for each operation request
 ///   enqueued in the <see cref = "ExecutionFiber" /> using the
 ///   <see cref = "EnqueueOperation" /> method.
 /// </summary>
 /// <param name = "peer">
 ///   The peer.
 /// </param>
 /// <param name = "operation">
 ///   The operation request.
 /// </param>
 /// <param name = "sendParameters">
 ///   The send Parameters.
 /// </param>
 protected virtual void ExecuteOperation(HivePeer peer, OperationRequest operation, SendParameters sendParameters)
 {
 }
コード例 #9
0
 /// <summary>
 ///   Enqueues an <see cref = "OperationRequest" /> to the end of the execution queue.
 /// </summary>
 /// <param name = "peer">
 ///   The peer.
 /// </param>
 /// <param name = "operationRequest">
 ///   The operation request to enqueue.
 /// </param>
 /// <param name = "sendParameters">
 ///   The send Parameters.
 /// </param>
 /// <remarks>
 ///   <see cref = "ExecuteOperation" /> is called sequentially for each operation request
 ///   stored in the execution queue.
 ///   Using an execution queue ensures that operation request are processed in order
 ///   and sequentially to prevent object synchronization (multi threading).
 /// </remarks>
 public void EnqueueOperation(HivePeer peer, OperationRequest operationRequest, SendParameters sendParameters)
 {
     this.ExecutionFiber.Enqueue(() => this.ExecuteOperation(peer, operationRequest, sendParameters));
 }
コード例 #10
0
 public virtual bool IsThisSameSession(HivePeer peer)
 {
     return(false);
 }