internal static unsafe ServiceGroupDescription CreateFromNative(NativeClient.IFabricServiceGroupDescriptionResult nativeResult) { if (nativeResult == null) { return(null); } var nativeDescription = (NativeTypes.FABRIC_SERVICE_GROUP_DESCRIPTION *)nativeResult.get_Description(); var nativeServiceDescription = (NativeTypes.FABRIC_SERVICE_DESCRIPTION *)nativeDescription->Description; ServiceDescription serviceDescription = ServiceDescription.CreateFromNative(nativeDescription->Description); bool isStateful = (serviceDescription.Kind == ServiceDescriptionKind.Stateful); ServiceGroupDescription description = new ServiceGroupDescription(serviceDescription); var members = (NativeTypes.FABRIC_SERVICE_GROUP_MEMBER_DESCRIPTION *)nativeDescription->MemberDescriptions; for (int i = 0; i < nativeDescription->MemberCount; ++i) { var memberDescription = ServiceGroupMemberDescription.CreateFromNative((IntPtr)(members + i), isStateful); description.MemberDescriptions.Add(memberDescription); } GC.KeepAlive(nativeResult); return(description); }
internal static void Validate(ServiceGroupDescription description) { Requires.Argument <ServiceDescription>("ServiceDescription", description.ServiceDescription).NotNull(); ServiceDescription.Validate(description.ServiceDescription); foreach (ServiceGroupMemberDescription memberDescription in description.MemberDescriptions) { ServiceGroupMemberDescription.Validate(memberDescription); } }