internal static DataStoreRequest Create(string journalName, Offset offset, Offset journalSize, RequestUID requestUID, WorkerUID workerUID) { var request = new ReadJournalRequest(journalName, offset, journalSize); var header = new Header(RequestType.READ_JOURNAL, request.SizeOf, requestUID, HeaderProperties.None, workerUID); return new DataStoreRequest(header, request); }
public CommitResponseState(bool success, Offset journalSize) { Response = new Some<IMessageResponse>(new CommitTransactionResponse(success, journalSize)); }
public IResponseState Parse(Header header, IEndianAwareReader reader) { var success = reader.ReadIntAsBool(); var journalSize = new Offset(reader.ReadInt32()); return new CommitResponseState(success, journalSize); }
public NewTransactionResponseState(Offset journalSize, TransactionUID transactionUID) { Response = new Some<IMessageResponse>(new NewTransactionResponse(journalSize, transactionUID)); }
public IResponseState Parse(Header header, IEndianAwareReader reader) { var journalSize = new Offset(reader.ReadInt32()); var transactionUID = new TransactionUID(reader.ReadInt32()); return new NewTransactionResponseState(journalSize, transactionUID); }
public Task<IEnumerable<object>> ReadEventsFromJournal(ITransaction transaction, Offset offset) { return sender.ReadEventsFromJournal((TransactionImpl)transaction, offset); }
public NewTransactionResponse(Offset journalSize, TransactionUID transactionUID) { this.JournalSize = journalSize; this.TransactionUID = transactionUID; }
public CommitFailed(List<object> events, Offset journalSize) { Events = events; JournalSize = journalSize; }
private ReadJournalRequest(string journalName, Offset offset, Offset journalSize) { this.JournalName = journalName; this.Offset = offset; this.JournalSize = journalSize; }
internal Task<IEnumerable<object>> ReadEventsFromJournal(TransactionImpl transaction, Offset offset) { var request = ReadJournalRequest.Create(transaction.Name, offset, transaction.JournalSize, nextRequestUID(), transaction.WorkerUID); var tcs = new TaskCompletionSource<IEnumerable<object>>(); mapper.Add(request.Header.RequestUID, (response) => { var r = (ReadJournalResponse)response.Body; var events = r.Events.Select(evt => serializer.ConvertFromString(evt.Data) ); snapshotManager.ForEach(m => m.SaveSnapshot(transaction.Name, new SnapshotEntry(r.Bytes, r.Events)) ); tcs.SetResult(events); }, (failure) => { tcs.SetException(failure); }); requests.Add(request, cancellationToken.Token); return tcs.Task; }