Beispiel #1
0
        public override async Task <IResultCursor> RunInExplicitTransactionAsync(IConnection connection,
                                                                                 Query query, bool reactive, long fetchSize = Config.Infinite)
        {
            var summaryBuilder = new SummaryBuilder(query, connection.Server);
            var streamBuilder  = new ResultCursorBuilder(summaryBuilder, connection.ReceiveOneAsync,
                                                         RequestMore(connection, summaryBuilder, null),
                                                         CancelRequest(connection, summaryBuilder, null), null,
                                                         fetchSize, reactive);
            var runHandler = new V4.RunResponseHandler(streamBuilder, summaryBuilder);

            var pullMessage = default(PullMessage);
            var pullHandler = default(V4.PullResponseHandler);

            if (!reactive)
            {
                pullMessage = new PullMessage(fetchSize);
                pullHandler = new V4.PullResponseHandler(streamBuilder, summaryBuilder, null);
            }

            await connection.EnqueueAsync(new RunWithMetadataMessage(query),
                                          runHandler, pullMessage, pullHandler)
            .ConfigureAwait(false);

            await connection.SendAsync().ConfigureAwait(false);

            return(streamBuilder.CreateCursor());
        }
Beispiel #2
0
        public void MergeFrom(Task other)
        {
            if (other == null)
            {
                return;
            }
            if (other.Name.Length != 0)
            {
                Name = other.Name;
            }
            if (other.scheduleTime_ != null)
            {
                if (scheduleTime_ == null)
                {
                    scheduleTime_ = new global::Google.Protobuf.WellKnownTypes.Timestamp();
                }
                ScheduleTime.MergeFrom(other.ScheduleTime);
            }
            if (other.createTime_ != null)
            {
                if (createTime_ == null)
                {
                    createTime_ = new global::Google.Protobuf.WellKnownTypes.Timestamp();
                }
                CreateTime.MergeFrom(other.CreateTime);
            }
            if (other.status_ != null)
            {
                if (status_ == null)
                {
                    status_ = new global::Google.Cloud.Tasks.V2Beta2.TaskStatus();
                }
                Status.MergeFrom(other.Status);
            }
            if (other.View != 0)
            {
                View = other.View;
            }
            switch (other.PayloadTypeCase)
            {
            case PayloadTypeOneofCase.AppEngineHttpRequest:
                if (AppEngineHttpRequest == null)
                {
                    AppEngineHttpRequest = new global::Google.Cloud.Tasks.V2Beta2.AppEngineHttpRequest();
                }
                AppEngineHttpRequest.MergeFrom(other.AppEngineHttpRequest);
                break;

            case PayloadTypeOneofCase.PullMessage:
                if (PullMessage == null)
                {
                    PullMessage = new global::Google.Cloud.Tasks.V2Beta2.PullMessage();
                }
                PullMessage.MergeFrom(other.PullMessage);
                break;
            }

            _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
        }
 private bool ProcessPull(PullMessage pullMessage, IConnection connection)
 {
     if (pullMessage == null)
     {
         return(false);
     }
     //Console.WriteLine("[{0}] Processing pull message ({1}) from {2}", routingManager.Map.OwnAddress, pullMessage.Limit, connection.RemoteAddress);
     for (int i = 0; i < pullMessage.Limit; i++)
     {
         if (!PullPendingMessage(connection))
         {
             break;
         }
         //Console.WriteLine("[{0}] Fast-forwarded a message to {1}", routingManager.Map.OwnAddress, connection.RemoteAddress);
     }
     return(true);
 }
Beispiel #4
0
        private void OnLoginRspMessage(LoginResultMessage msg)
        {
            if (msg.Result == OkTag)
            {
                PlayerObject.Instance.Self.PlayerId = msg.PlayerId;

                var sendMsg = new PullMessage()
                {
                    PlayerId = msg.PlayerId,
                };

                MessageManager.SendMessage("Client.Send", sendMsg);
            }
            else if (msg.Result == ErrorTag)
            {
                MessageManager.SendMessage("Message.Login.Failed");
            }
        }
Beispiel #5
0
        public override async Task <IResultCursor> RunInAutoCommitTransactionAsync(IConnection connection,
                                                                                   Query query,
                                                                                   bool reactive,
                                                                                   IBookmarkTracker bookmarkTracker,
                                                                                   IResultResourceHandler resultResourceHandler,
                                                                                   string database,
                                                                                   Bookmark bookmark,
                                                                                   TransactionConfig config,
                                                                                   string impersonatedUser,
                                                                                   long fetchSize = Config.Infinite)
        {
            var summaryBuilder = new SummaryBuilder(query, connection.Server);
            var streamBuilder  = new ResultCursorBuilder(summaryBuilder, connection.ReceiveOneAsync,
                                                         RequestMore(connection, summaryBuilder, bookmarkTracker),
                                                         CancelRequest(connection, summaryBuilder, bookmarkTracker),
                                                         resultResourceHandler,
                                                         fetchSize, reactive);
            var runHandler = new V4.RunResponseHandler(streamBuilder, summaryBuilder);

            var pullMessage = default(PullMessage);
            var pullHandler = default(V4.PullResponseHandler);

            if (!reactive)
            {
                pullMessage = new PullMessage(fetchSize);
                pullHandler = new V4.PullResponseHandler(streamBuilder, summaryBuilder, bookmarkTracker);
            }

            await connection
            .EnqueueAsync(
                GetRunWithMetaDataMessage(query, bookmark, config,
                                          connection.GetEnforcedAccessMode(), database, impersonatedUser), runHandler,
                pullMessage, pullHandler)
            .ConfigureAwait(false);

            await connection.SendAsync().ConfigureAwait(false);

            return(streamBuilder.CreateCursor());
        }
Beispiel #6
0
        public override int GetHashCode()
        {
            int hash = 1;

            if (Name.Length != 0)
            {
                hash ^= Name.GetHashCode();
            }
            if (payloadTypeCase_ == PayloadTypeOneofCase.AppEngineHttpRequest)
            {
                hash ^= AppEngineHttpRequest.GetHashCode();
            }
            if (payloadTypeCase_ == PayloadTypeOneofCase.PullMessage)
            {
                hash ^= PullMessage.GetHashCode();
            }
            if (scheduleTime_ != null)
            {
                hash ^= ScheduleTime.GetHashCode();
            }
            if (createTime_ != null)
            {
                hash ^= CreateTime.GetHashCode();
            }
            if (status_ != null)
            {
                hash ^= Status.GetHashCode();
            }
            if (View != 0)
            {
                hash ^= View.GetHashCode();
            }
            hash ^= (int)payloadTypeCase_;
            if (_unknownFields != null)
            {
                hash ^= _unknownFields.GetHashCode();
            }
            return(hash);
        }