Beispiel #1
0
        internal void ToNative(PinCollection pinCollection, ref NativeTypes.FABRIC_APPLICATION_HEALTH_STATE_FILTER publicFilter)
        {
            publicFilter.HealthStateFilter          = (UInt32)this.HealthStateFilter;
            publicFilter.ApplicationNameFilter      = pinCollection.AddObject(this.ApplicationNameFilter);
            publicFilter.ServiceFilters             = ServiceHealthStateFilter.ToNativeList(pinCollection, this.ServiceFilters);
            publicFilter.DeployedApplicationFilters = DeployedApplicationHealthStateFilter.ToNativeList(pinCollection, this.DeployedApplicationFilters);

            if (!string.IsNullOrEmpty(this.ApplicationTypeNameFilter))
            {
                var ex1 = new NativeTypes.FABRIC_APPLICATION_HEALTH_STATE_FILTER_EX1[1];
                ex1[0].ApplicationTypeNameFilter = pinCollection.AddObject(this.ApplicationTypeNameFilter);
                ex1[0].Reserved       = IntPtr.Zero;
                publicFilter.Reserved = pinCollection.AddBlittable(ex1);
            }
        }
Beispiel #2
0
        internal static IntPtr ToNativeList(PinCollection pinCollection, IList <ApplicationHealthStateFilter> applicationList)
        {
            if (applicationList == null || applicationList.Count == 0)
            {
                return(IntPtr.Zero);
            }

            var nativeArray = new NativeTypes.FABRIC_APPLICATION_HEALTH_STATE_FILTER[applicationList.Count];

            for (int i = 0; i < applicationList.Count; i++)
            {
                applicationList[i].ToNative(pinCollection, ref nativeArray[i]);
            }

            var nativeList = new NativeTypes.FABRIC_APPLICATION_HEALTH_STATE_FILTER_LIST();

            nativeList.Count = (uint)applicationList.Count;
            nativeList.Items = pinCollection.AddBlittable(nativeArray);

            return(pinCollection.AddBlittable(nativeList));
        }