コード例 #1
0
        private void AddStringEventData(Variant variant, int index)
        {
            EventData dataDescriptor = default(EventData);

            dataDescriptor.Reserved = 0;
            if (variant.IsString())
            {
                var str = variant.ConvertToString();
                dataDescriptor.Size  = str == null ? 0 : (uint)(str.Length + 1) * 2;
                eventData[index]     = dataDescriptor;
                this.totalEventSize += eventData[index].Size;
                this.currentBuffer  += EventDataArrayBuilder.BasicTypeAllocationBufferSize;
            }
        }
コード例 #2
0
        private static void EncodeVariant(Variant data, EventData *dataDescriptor, byte *dataBuffer)
        {
            dataDescriptor->Reserved = 0;
            if (data.IsString())
            {
                var str = data.ConvertToString();
                dataDescriptor->Size = str == null ? 0 : (uint)(str.Length + 1) * 2;
                return;
            }

            // Copy the entire 16B field even if only 1B is being used.
            Guid *guidptr = (Guid *)dataBuffer;

            *guidptr = data.ConvertToGuid();
            dataDescriptor->DataPointer = (ulong)guidptr;
            dataDescriptor->Size        = data.Size;
        }
コード例 #3
0
        private int GetAverageStringVariantLength(ref Variant v0, ref Variant v1, ref Variant v2, ref Variant v3, ref Variant v4, ref Variant v5, ref Variant v6, ref Variant v7, ref Variant v8, ref Variant v9, ref Variant v10, ref Variant v11, ref Variant v12, ref Variant v13)
        {
            int count       = 0;
            int totalLength = 0;

            if (v0.IsString() && !string.IsNullOrEmpty(v0.ConvertToString()))
            {
                count++;
                totalLength += v0.ConvertToString().Length;
            }

            if (v1.IsString() && !string.IsNullOrEmpty(v1.ConvertToString()))
            {
                count++;
                totalLength += v1.ConvertToString().Length;
            }

            if (v2.IsString() && !string.IsNullOrEmpty(v2.ConvertToString()))
            {
                count++;
                totalLength += v2.ConvertToString().Length;
            }

            if (v3.IsString() && !string.IsNullOrEmpty(v3.ConvertToString()))
            {
                count++;
                totalLength += v3.ConvertToString().Length;
            }

            if (v4.IsString() && !string.IsNullOrEmpty(v4.ConvertToString()))
            {
                count++;
                totalLength += v4.ConvertToString().Length;
            }

            if (v5.IsString() && !string.IsNullOrEmpty(v5.ConvertToString()))
            {
                count++;
                totalLength += v5.ConvertToString().Length;
            }

            if (v6.IsString() && !string.IsNullOrEmpty(v6.ConvertToString()))
            {
                count++;
                totalLength += v6.ConvertToString().Length;
            }

            if (v7.IsString() && !string.IsNullOrEmpty(v7.ConvertToString()))
            {
                count++;
                totalLength += v7.ConvertToString().Length;
            }

            if (v8.IsString() && !string.IsNullOrEmpty(v8.ConvertToString()))
            {
                count++;
                totalLength += v8.ConvertToString().Length;
            }

            if (v9.IsString() && !string.IsNullOrEmpty(v9.ConvertToString()))
            {
                count++;
                totalLength += v9.ConvertToString().Length;
            }

            if (v10.IsString() && !string.IsNullOrEmpty(v10.ConvertToString()))
            {
                count++;
                totalLength += v10.ConvertToString().Length;
            }

            if (v11.IsString() && !string.IsNullOrEmpty(v11.ConvertToString()))
            {
                count++;
                totalLength += v11.ConvertToString().Length;
            }

            if (v12.IsString() && !string.IsNullOrEmpty(v12.ConvertToString()))
            {
                count++;
                totalLength += v12.ConvertToString().Length;
            }

            if (v13.IsString() && !string.IsNullOrEmpty(v13.ConvertToString()))
            {
                count++;
                totalLength += v13.ConvertToString().Length;
            }

            var overflow          = GetOverflow();
            var adjustedOverFlow  = (overflow % 2 == 1) ? (overflow + 1) : (overflow);
            var characterOverflow = (adjustedOverFlow / 2);

            return((totalLength - characterOverflow) / count);
        }