コード例 #1
0
        public void ServiceCorrelationDescription_Parse()
        {
            var expected = HelperInstance.CreateDefaultDescription();

            using (var pc = new PinCollection())
            {
                NativeTypes.FABRIC_SERVICE_CORRELATION_DESCRIPTION[] native = new NativeTypes.FABRIC_SERVICE_CORRELATION_DESCRIPTION[1];
                expected.ToNative(pc, ref native[0]);

                var actual = ServiceCorrelationDescription.CreateFromNative(pc.AddBlittable(native));

                HelperInstance.Compare(expected, actual);
            }
        }
コード例 #2
0
        internal Tuple <uint, IntPtr> ToNativeCorrelations(PinCollection pin)
        {
            if (this.Correlations.Count == 0)
            {
                return(Tuple.Create((uint)0, IntPtr.Zero));
            }

            var correlationArray = new NativeTypes.FABRIC_SERVICE_CORRELATION_DESCRIPTION[this.Correlations.Count];

            for (int i = 0; i < this.Correlations.Count; i++)
            {
                this.Correlations[i].ToNative(pin, ref correlationArray[i]);
            }

            return(Tuple.Create((uint)this.Correlations.Count, pin.AddBlittable(correlationArray)));
        }
コード例 #3
0
        internal unsafe void ToNative(PinCollection pin, ref NativeTypes.FABRIC_SERVICE_CORRELATION_DESCRIPTION description)
        {
            description.ServiceName = pin.AddObject(this.ServiceName);

            switch (this.Scheme)
            {
            case ServiceCorrelationScheme.Affinity:
                description.Scheme = NativeTypes.FABRIC_SERVICE_CORRELATION_SCHEME.FABRIC_SERVICE_CORRELATION_SCHEME_AFFINITY;
                break;

            case ServiceCorrelationScheme.AlignedAffinity:
                description.Scheme = NativeTypes.FABRIC_SERVICE_CORRELATION_SCHEME.FABRIC_SERVICE_CORRELATION_SCHEME_ALIGNED_AFFINITY;
                break;

            case ServiceCorrelationScheme.NonAlignedAffinity:
                description.Scheme = NativeTypes.FABRIC_SERVICE_CORRELATION_SCHEME.FABRIC_SERVICE_CORRELATION_SCHEME_NONALIGNED_AFFINITY;
                break;

            default:
                ReleaseAssert.Failfast(string.Format(CultureInfo.CurrentCulture, StringResources.Error_InvalidServiceCorrelationScheme_Formatted, this.Scheme));
                break;
            }
        }