コード例 #1
0
        private static void WriteRawBlob(DocumentsOperationContext context, List <string> dbIds, List <CounterDetail> counters, ByteString newVal, ManualBlittableJsonDocumentBuilder <UnmanagedWriteBuffer> builder)
        {
            foreach (var counterDetail in counters)
            {
                var dbId = ExtractDbId(context, counterDetail.CounterKey);

                int dbIdIndex;
                for (dbIdIndex = 0; dbIdIndex < dbIds.Count; dbIdIndex++)
                {
                    if (dbIds[dbIdIndex] == dbId)
                    {
                        break;
                    }
                }

                var counterEtag = context.DocumentDatabase.DocumentsStorage.GenerateNextEtag();

                var newEntry = (CountersStorage.CounterValues *)newVal.Ptr + dbIdIndex;
                newEntry->Value = counterDetail.TotalValue;
                newEntry->Etag  = counterEtag;
            }

            builder.WriteRawBlob(newVal.Ptr, newVal.Length);
        }