• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# GrainReference类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C#中GrainReference的典型用法代码示例。如果您正苦于以下问题:C# GrainReference类的具体用法?C# GrainReference怎么用?C# GrainReference使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



GrainReference类属于命名空间,在下文中一共展示了GrainReference类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。

示例1: WriteStateAsync

        public async Task WriteStateAsync(string grainType, GrainReference grainReference, IGrainState grainState)
        {
            try
            {
                var collection = await this.EnsureCollection(grainType);
                var documents = await this.Client.ReadDocumentFeedAsync(collection.DocumentsLink);
                var documentId = grainReference.ToKeyString();

                var document = documents.Where(d => d.Id == documentId).FirstOrDefault();

                if(document != null)
                {
                    document.State = grainState.AsDictionary();
                    await this.Client.ReplaceDocumentAsync(document);
                }
                else
                {
                    await this.Client.CreateDocumentAsync(collection.DocumentsLink,
                        new GrainStateDocument { Id = documentId, State = grainState.AsDictionary() });
                }
            }
            catch (Exception ex)
            {
                Log.Error(0, "Error in WriteStateAsync", ex);
            }
        }
开发者ID:SmartFire,项目名称:orleans.storageprovider.documentdb,代码行数:26,代码来源:DocumentDBStorageProvider.cs


示例2: ReadRows

 public ReminderTableData ReadRows(GrainReference grainRef)
 {
     Dictionary<string, ReminderEntry> reminders;
     reminderTable.TryGetValue(grainRef, out reminders);
     return reminders == null ? new ReminderTableData() :
         new ReminderTableData(reminders.Values.ToList());
 }
开发者ID:Rejendo,项目名称:orleans,代码行数:7,代码来源:InMemoryRemindersTable.cs


示例3: ToElasticValue

 public string ToElasticValue(GrainReference gref)
 {
     ///"GrainReference=00000000000000000000000000000000060000006aa96326+abc"
     /// to
     /// "GrainReference^00000000000000000000000000000000060000006aa96326_abc"
     return gref.ToKeyString().Replace("=", "__").Replace("_", "+");
 }
开发者ID:kowalot,项目名称:Pk.OrleansUtils,代码行数:7,代码来源:ElasticReminderEntry.cs


示例4: ReadStateAsync

		public async Task ReadStateAsync(string grainType, GrainReference grainReference, IGrainState grainState)
		{
			var tableResult = await _table.ExecuteAsync(TableOperation.Retrieve<DynamicTableEntity>(grainReference.ToKeyString(), grainType));
			if (tableResult.Result == null)
			{
				return;
			}
			var entity = tableResult.Result as DynamicTableEntity;

			var serializer = new JsonSerializer();
			using (var memoryStream = new MemoryStream())
			{
				foreach (var propertyName in entity.Properties.Keys.Where(p => p.StartsWith("d")).OrderBy(p => p))
				{
					var dataPart = entity.Properties[propertyName];
					await memoryStream.WriteAsync(dataPart.BinaryValue, 0, dataPart.BinaryValue.Length);
				}

				memoryStream.Position = 0;
				using (var bsonReader = new BsonReader(memoryStream))
				{
					var data = serializer.Deserialize<Dictionary<string, object>>(bsonReader);
					grainState.SetAll(data);
				}
			}
		}
开发者ID:justinliew,项目名称:Orleans.StorageEx,代码行数:26,代码来源:AzureTableStorageEx.cs


示例5: ReadStateAsync

        public async Task ReadStateAsync(string grainType, GrainReference grainId, IGrainState grainState)
        {
            try
            {
                var blobName = BlobStorageProvider.GetBlobName(grainType, grainId);
                var blob = container.GetBlockBlobReference(blobName);
                var text = await blob.DownloadTextAsync();
                if (string.IsNullOrWhiteSpace(text))
                {
                    return;
                }

                var data = JsonConvert.DeserializeObject(text, grainState.GetType());
                var dict = ((IGrainState)data).AsDictionary();
                grainState.SetAll(dict);
            }
            catch (StorageException ex)
            {
                ;
            }
            catch (Exception ex)
            {
                Log.Error(0, ex.ToString());
            }
        }
开发者ID:justinliew,项目名称:OrleansBlobStorageProvider,代码行数:25,代码来源:BlobStorageProvider.cs


示例6: ReadStateAsync

        public async Task ReadStateAsync(string grainType, GrainReference grainReference, IGrainState grainState)
        {
            if (!(grainState is IAggregateState))
                throw new NotAggregateStateException(grainState.GetType());

            var stream = this.GetStreamName(grainType, grainReference);

            var sliceStart = 0;
            StreamEventsSlice currentSlice;

            do
            {
                var sliceCount = sliceStart + ReadPageSize;

                currentSlice = await this.Connection.ReadStreamEventsForwardAsync(stream, sliceStart, sliceCount, true);

                if (currentSlice.Status == SliceReadStatus.StreamNotFound)
                    return;

                if (currentSlice.Status == SliceReadStatus.StreamDeleted)
                    throw new StreamDeletedException();

                sliceStart = currentSlice.NextEventNumber;

                foreach (var @event in currentSlice.Events)
                {
                    dynamic deserialisedEvent = DeserializeEvent(@event.Event);
                    StateTransformer.ApplyEvent(deserialisedEvent, grainState as IAggregateState);
                }

            } while (!currentSlice.IsEndOfStream);
        }
开发者ID:timfun,项目名称:orleans.eventsourcing,代码行数:32,代码来源:EventStoreProvider.cs


示例7: ReadRow

 public async Task<ReminderEntry> ReadRow(GrainReference grainRef, string reminderName)
 {
     using (var conn = new SqlConnection(connectionString))
     {
         conn.Open();
         return await ReadRowInternal(grainRef, reminderName, conn, null);
     }
 }
开发者ID:stanroze,项目名称:orleans,代码行数:8,代码来源:SqlReminderTable.cs


示例8: CreateIdFrom

 public static string CreateIdFrom(GrainReference grainRef,string reminderName)
 {
     if (String.IsNullOrEmpty(reminderName))
         throw new ArgumentNullException("reminderName");
     if (grainRef==null)
         throw new ArgumentNullException("grainRef");
     return grainRef.ToKeyString() + "," + reminderName;
 }
开发者ID:kowalot,项目名称:Pk.OrleansUtils,代码行数:8,代码来源:ElasticReminderEntry.cs


示例9: OnStorageActivate

 internal static void OnStorageActivate(IStorageProvider storage, string grainType, GrainReference grain, TimeSpan latency)
 {
     StorageActivateTotal.Increment();
     if (latency > TimeSpan.Zero)
     {
         StorageReadLatency.AddSample(latency);
     }
 }
开发者ID:stanroze,项目名称:orleans,代码行数:8,代码来源:StorageStatisticsGroup.cs


示例10: ReadStateAsync

 /// <summary>
 /// Reads persisted state from the backing store and deserializes it into the the target
 /// grain state object.
 /// </summary>
 /// <param name="grainType">A string holding the name of the grain class.</param>
 /// <param name="grainReference">Represents the long-lived identity of the grain.</param>
 /// <param name="grainState">A reference to an object to hold the persisted state of the grain.</param>
 /// <returns>Completion promise for this operation.</returns>
 public async Task ReadStateAsync(string grainType, GrainReference grainReference, IGrainState grainState)
 {
     if (DataManager == null) throw new ArgumentException("DataManager property not initialized");
     var entityData = await DataManager.Read(grainState.GetType().Name, grainReference.ToKeyString());
     if (entityData != null)
     {
         ConvertFromStorageFormat(grainState, entityData);
     }
 }
开发者ID:Joshua-Ferguson,项目名称:orleans,代码行数:17,代码来源:BaseJSONStorageProvider.cs


示例11: ClearStateAsync

        public Task ClearStateAsync(string grainType, GrainReference grainReference, IGrainState grainState)
        {
            if (!(grainState is IAggregateState))
                throw new NotAggregateStateException(grainState.GetType());

            var state = grainState as IAggregateState;
            var stream = this.GetStreamName(grainType, grainReference);

            return this.Connection.DeleteStreamAsync(stream, state.Version);
        }
开发者ID:timfun,项目名称:orleans.eventsourcing,代码行数:10,代码来源:EventStoreProvider.cs


示例12: OnRead

 /// <summary>
 /// Throws a storage exception if one has been added for the grain reference for reading.
 /// </summary>
 /// <param name="grainReference"></param>
 /// <returns></returns>
 public Task OnRead(GrainReference grainReference)
 {
     Exception exception;
     if (readFaults.TryGetValue(grainReference, out exception))
     {
         readFaults.Remove(grainReference);
         throw exception;
     }
     return TaskDone.Done;
 }
开发者ID:Rejendo,项目名称:orleans,代码行数:15,代码来源:StorageFaultGrain.cs


示例13: CreateReminder

 private static ReminderEntry CreateReminder(GrainReference grainRef, string reminderName)
 {
     return new ReminderEntry
     {
         GrainRef = grainRef,
         Period = TimeSpan.FromMinutes(1),
         StartAt = DateTime.UtcNow.Add(TimeSpan.FromMinutes(1)),
         ReminderName = reminderName
     };
 }
开发者ID:Robin--,项目名称:orleans,代码行数:10,代码来源:ReminderTablePluginTests.cs


示例14: UpsertReminder

 private static async Task<string> UpsertReminder(IReminderTable reminder, GrainReference grainRef, string reminderName, DateTime startAt, TimeSpan period)
 {
     var reminderRow = new ReminderEntry
                       {
                           GrainRef = grainRef,
                           Period = period,
                           StartAt = startAt,
                           ReminderName = reminderName
                       };
     return await reminder.UpsertRow(reminderRow);
 }
开发者ID:sbambach,项目名称:orleans,代码行数:11,代码来源:ReminderTablePluginTests.cs


示例15: Get

 internal static async Task<ElasticReminderEntry> Get(ElasticClient elastic, GrainReference grainRef, string reminderName)
 {
     var op = await elastic.GetAsync<ElasticReminderEntry>(CreateIdFrom(grainRef, reminderName));
     if (op.IsValid)
     {
         op.Source.ETag = op.Version;
         return op.Source;
     }
     else
         throw new ElasticsearchStorageException();
 }
开发者ID:kowalot,项目名称:Pk.OrleansUtils,代码行数:11,代码来源:ElasticReminderEntry.cs


示例16: GetLastState

 private IDictionary<string, object> GetLastState(string grainType, GrainReference grainReference)
 {
     lock (StateStore)
     {
         var keys = MakeGrainStateKeys(grainType, grainReference);
         var storedState = StateStore.ReadRow(keys);
         LastId = GetId(grainReference);
         LastState = storedState;
         return storedState;
     }
 }
开发者ID:sbambach,项目名称:orleans,代码行数:11,代码来源:MockStorageProvider.cs


示例17: RemoveRow

 /// <summary>
 /// Remove a row from the table
 /// </summary>
 /// <param name="grainRef"></param>
 /// <param name="reminderName"></param>
 /// <param name="eTag"></param>
 /// <returns>true if a row with <paramref name="grainRef"/> and <paramref name="reminderName"/> existed and was removed successfully, false otherwise</returns>
 public Task<bool> RemoveRow(GrainReference grainRef, string reminderName, string eTag)
 {
     if (logger.IsVerbose) logger.Verbose("RemoveRow entry grainRef = {0}, reminderName = {1}, eTag = {2}", grainRef, reminderName, eTag);
     bool result = remTable.RemoveRow(grainRef, reminderName, eTag);
     if (result == false)
     {
         logger.Warn(ErrorCode.RS_Table_Remove, "RemoveRow failed for grainRef = {0}, ReminderName = {1}, eTag = {2}. Table now is: {3}",
             grainRef.ToDetailedString(), reminderName, eTag, remTable.ReadAll());
     }
     return Task.FromResult(result);
 }
开发者ID:PaulNorth,项目名称:orleans,代码行数:18,代码来源:GrainBasedReminderTable.cs


示例18: WriteStateAsync

        public async Task WriteStateAsync(string grainType, GrainReference grainReference, GrainState grainState)
        {
            var stateName = grainState.GetType().Name;
            var key = grainReference.ToKeyString();
            var id = string.Format(CultureInfo.InvariantCulture, "{0}/{1}", stateName, key);

            using (IAsyncDocumentSession session = this.documentStore.OpenAsyncSession())
            {
                await session.StoreAsync(grainState, id);
                await session.SaveChangesAsync();
            }
        }
开发者ID:nahugrau,项目名称:OrleansTest,代码行数:12,代码来源:RavenDBStorageProvider.cs


示例19: FromGrainReference

        /// <summary>
        /// Createa a GrainIdentity from a grain reference and type name
        /// </summary>
        /// <param name="grainType"></param>
        /// <param name="grainReference"></param>
        /// <returns></returns>
        public static GrainIdentity FromGrainReference(string grainType, GrainReference grainReference)
        {
            Guard.NotNullOrEmpty(grainType, "grainType");
            Guard.NotNull(grainReference, "grainReference");

            return new GrainIdentity()
            {
                GrainType = grainType,
                ShardKey = (int)grainReference.GetUniformHashCode(),
                GrainKey = grainReference.ToKeyString()
            };
        }
开发者ID:sbambach,项目名称:orleans,代码行数:18,代码来源:GrainIdentity.cs


示例20: WriteStateAsync

 public async Task WriteStateAsync(string grainType, GrainReference grainId, IGrainState grainState)
 {
     try
     {
         var blobName = BlobStorageProvider.GetBlobName(grainType, grainId);
         var storedData = JsonConvert.SerializeObject(grainState.AsDictionary());
         var blob = container.GetBlockBlobReference(blobName);
         await blob.UploadTextAsync(storedData);
     }
     catch (Exception ex)
     {
         Log.Error(0, ex.ToString());
     }
 }
开发者ID:justinliew,项目名称:OrleansBlobStorageProvider,代码行数:14,代码来源:BlobStorageProvider.cs



注:本文中的GrainReference类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# Grammar类代码示例发布时间:2022-05-24
下一篇:
C# GrainId类代码示例发布时间:2022-05-24
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap