public IEnumerable <T> GetAllPayloads <T>(ComplianceSerializationDescription <T> description, byte[] blob, out FaultDefinition faultDefinition) where T : Payload, new() { T t; if (ComplianceSerializer.TryDeserialize <T>(description, blob, out t, out faultDefinition, "GetAllPayloads", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\TaskDistributionSystem\\TaskDistributionFabric\\Payload\\PayloadRetriever.cs", 88)) { return(new T[] { t }); } PayloadReference reference; if (ComplianceSerializer.TryDeserialize <PayloadReference>(PayloadReference.Description, blob, out reference, out faultDefinition, "GetAllPayloads", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\TaskDistributionSystem\\TaskDistributionFabric\\Payload\\PayloadRetriever.cs", 95)) { PayloadRetriever.DriverRetriever retriever = new PayloadRetriever.DriverRetriever(); IEnumerable <T> payloads = null; if (ExceptionHandler.Proxy.TryRun(delegate { payloads = retriever.RetrievePayload <T>(description, reference, int.MaxValue); }, TaskDistributionSettings.DataLookupTime, out faultDefinition, null, null, default(CancellationToken), null, "GetAllPayloads", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\TaskDistributionSystem\\TaskDistributionFabric\\Payload\\PayloadRetriever.cs", 99)) { return(payloads); } faultDefinition = retriever.FaultDefinition; } return(null); }
public IEnumerable <T> RetrievePayload <T>(ComplianceSerializationDescription <T> description, PayloadReference reference, int count = 2147483647) where T : Payload, new() { ComplianceMessage message = new ComplianceMessage { CorrelationId = Guid.NewGuid(), ComplianceMessageType = ComplianceMessageType.RetrieveRequest, WorkDefinitionType = WorkDefinitionType.Unrecognized }; bool isComplete = false; string bookmark = null; DriverClientBase driverClient; if (Registry.Instance.TryGetInstance <DriverClientBase>(RegistryComponent.Client, ClientType.DriverClient, out driverClient, out this.faultDefinition, "RetrievePayload", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\TaskDistributionSystem\\TaskDistributionFabric\\Payload\\PayloadRetriever.cs", 161)) { for (;;) { reference.Bookmark = bookmark; reference.Count = count; message.Payload = ComplianceSerializer.Serialize <PayloadReference>(PayloadReference.Description, reference); Task <ComplianceMessage> payloadTask = driverClient.GetResponseAsync(message); if (!payloadTask.Wait(TaskDistributionSettings.DataLookupTime)) { break; } ComplianceMessage payloadResponse = payloadTask.Result; RetrievedPayload retrievedPayload; if (ComplianceSerializer.TryDeserialize <RetrievedPayload>(RetrievedPayload.Description, payloadResponse.Payload, out retrievedPayload, out this.faultDefinition, "RetrievePayload", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\TaskDistributionSystem\\TaskDistributionFabric\\Payload\\PayloadRetriever.cs", 174)) { bookmark = retrievedPayload.Bookmark; isComplete = retrievedPayload.IsComplete; foreach (byte[] childBlob in retrievedPayload.Children) { T payload; if (ComplianceSerializer.TryDeserialize <T>(description, childBlob, out payload, out this.faultDefinition, "RetrievePayload", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\TaskDistributionSystem\\TaskDistributionFabric\\Payload\\PayloadRetriever.cs", 181)) { yield return(payload); } } } if (count <= 1) { goto IL_236; } if (isComplete) { goto Block_5; } } throw new TimeoutException(); Block_5: IL_236: yield break; } throw new InvalidOperationException(); }
// Token: 0x06000285 RID: 645 RVA: 0x0000BC38 File Offset: 0x00009E38 static FaultRecord() { ComplianceSerializationDescription <FaultRecord.MutableKeyValuePair> complianceSerializationDescription = new ComplianceSerializationDescription <FaultRecord.MutableKeyValuePair>(); complianceSerializationDescription.ComplianceStructureId = 98; complianceSerializationDescription.RegisterStringPropertyGetterAndSetter(0, (FaultRecord.MutableKeyValuePair item) => item.Key, delegate(FaultRecord.MutableKeyValuePair item, string value) { item.Key = value; }); complianceSerializationDescription.RegisterStringPropertyGetterAndSetter(1, (FaultRecord.MutableKeyValuePair item) => item.Value, delegate(FaultRecord.MutableKeyValuePair item, string value) { item.Value = value; }); FaultRecord.description = new ComplianceSerializationDescription <FaultRecord>(); FaultRecord.description.ComplianceStructureId = 11; FaultRecord.description.RegisterComplexCollectionAccessor <FaultRecord.MutableKeyValuePair>(0, (FaultRecord item) => item.Data.Count, (FaultRecord item, int index) => FaultRecord.MutableKeyValuePair.From(item.Data.ToList <KeyValuePair <string, string> >()[index]), delegate(FaultRecord item, FaultRecord.MutableKeyValuePair value, int index) { item.Data[value.Key] = value.Value; }, complianceSerializationDescription); }
public bool TryGetPayload <T>(ComplianceSerializationDescription <T> description, byte[] blob, out T payload, out FaultDefinition faultDefinition) where T : Payload, new() { if (ComplianceSerializer.TryDeserialize <T>(description, blob, out payload, out faultDefinition, "TryGetPayload", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\TaskDistributionSystem\\TaskDistributionFabric\\Payload\\PayloadRetriever.cs", 39)) { return(true); } PayloadReference reference; if (ComplianceSerializer.TryDeserialize <PayloadReference>(PayloadReference.Description, blob, out reference, out faultDefinition, "TryGetPayload", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\TaskDistributionSystem\\TaskDistributionFabric\\Payload\\PayloadRetriever.cs", 48)) { PayloadRetriever.DriverRetriever retriever = new PayloadRetriever.DriverRetriever(); T currentPayload = default(T); if (ExceptionHandler.Proxy.TryRun(delegate { currentPayload = retriever.RetrievePayload <T>(description, reference, int.MaxValue).FirstOrDefault <T>(); }, TaskDistributionSettings.DataLookupTime, out faultDefinition, null, null, default(CancellationToken), null, "TryGetPayload", "f:\\15.00.1497\\sources\\dev\\EDiscovery\\src\\TaskDistributionSystem\\TaskDistributionFabric\\Payload\\PayloadRetriever.cs", 53)) { payload = currentPayload; return(true); } faultDefinition = retriever.FaultDefinition; } return(false); }