@Override public void shutdown() { logger.info("Shutting down RegistrationClient"); shutdownSubject.onCompleted(); } }
@Override public void onError(Throwable e) { termSubject.onNext(null); termSubject.onCompleted(); }
@Override public void onCompleted() { InternalGDMGraphService.LOG.debug("received '{}' records in GDM writer overall", counter.get()); if (!seenFirstModel.get()) { responseAsyncSubject.onCompleted(); } subscriber.onCompleted(); }
@Override public void onCompleted() { termSubject.onNext(null); termSubject.onCompleted(); }
@Override public void onCompleted() { termSubject.onNext(null); termSubject.onCompleted(); }
@Override public void onError(Throwable e) { termSubject.onNext(null); termSubject.onCompleted(); }
public void performPublish(final String topic, final EnumSet<PublishFlags> flags, final ArrayNode arguments, final ObjectNode argumentsKw, AsyncSubject<Long> resultSubject) { final long requestId = IdGenerator.newLinearId(lastRequestId, requestMap); lastRequestId = requestId; ObjectNode options = stateController.clientConfig().objectMapper().createObjectNode(); if (flags != null && flags.contains(PublishFlags.DontExcludeMe)) { options.put("exclude_me", false); } if (flags != null && flags.contains(PublishFlags.RequireAcknowledge)) { // An acknowledge from the router in the form of a PUBLISHED or ERROR message // is expected. The request is stored in the requestMap and the resultSubject will be // completed once a response was received. options.put("acknowledge", true); requestMap.put(requestId, new RequestMapEntry(WampMessages.PublishMessage.ID, resultSubject)); } else { // No acknowledge will be sent from the router. // Treat the publish as a success resultSubject.onNext(0L); resultSubject.onCompleted(); } final WampMessages.PublishMessage msg = new WampMessages.PublishMessage(requestId, options, topic, arguments, argumentsKw); connectionController.sendMessage(msg, IWampConnectionPromise.Empty); }
public void performPublish(final String topic, final EnumSet<PublishFlags> flags, final ArrayNode arguments, final ObjectNode argumentsKw, AsyncSubject<Long> resultSubject) { final long requestId = IdGenerator.newLinearId(lastRequestId, requestMap); lastRequestId = requestId; ObjectNode options = stateController.clientConfig().objectMapper().createObjectNode(); if (flags != null && flags.contains(PublishFlags.DontExcludeMe)) { options.put("exclude_me", false); } if (flags != null && flags.contains(PublishFlags.RequireAcknowledge)) { // An acknowledge from the router in the form of a PUBLISHED or ERROR message // is expected. The request is stored in the requestMap and the resultSubject will be // completed once a response was received. options.put("acknowledge", true); requestMap.put(requestId, new RequestMapEntry(WampMessages.PublishMessage.ID, resultSubject)); } else { // No acknowledge will be sent from the router. // Treat the publish as a success resultSubject.onNext(0L); resultSubject.onCompleted(); } final WampMessages.PublishMessage msg = new WampMessages.PublishMessage(requestId, options, topic, arguments, argumentsKw); connectionController.sendMessage(msg, IWampConnectionPromise.Empty); }
@Override public void run() { AsyncSubject<Integer> s = AsyncSubject.create(); s.subscribe(new Action1<Integer>() { @Override public void call(Integer integer) { log("" + integer); } }); s.onNext(0); s.onNext(1); s.onNext(2); s.onCompleted(); } });
@Override public void handlerRemoved(final ChannelHandlerContext ctx) throws Exception { if (viewRowObservable != null) { viewRowObservable.onCompleted(); viewRowObservable = null; } if (viewInfoObservable != null) { viewInfoObservable.onCompleted(); viewInfoObservable = null; } if (viewErrorObservable != null) { viewErrorObservable.onCompleted(); viewErrorObservable = null; } cleanupViewStates(); if (responseContent != null && responseContent.refCnt() > 0) { responseContent.release(); } super.handlerRemoved(ctx); }
@Override public void handlerRemoved(final ChannelHandlerContext ctx) throws Exception { if (viewRowObservable != null) { viewRowObservable.onCompleted(); viewRowObservable = null; } if (viewInfoObservable != null) { viewInfoObservable.onCompleted(); viewInfoObservable = null; } if (viewErrorObservable != null) { viewErrorObservable.onCompleted(); viewErrorObservable = null; } cleanupViewStates(); if (responseContent != null && responseContent.refCnt() > 0) { responseContent.release(); } super.handlerRemoved(ctx); }
@Override public void handlerRemoved(final ChannelHandlerContext ctx) throws Exception { if (queryRowObservable != null) { queryRowObservable.onCompleted(); } if (queryInfoObservable != null) { queryInfoObservable.onCompleted(); } if (queryErrorObservable != null) { queryErrorObservable.onCompleted(); } if (queryStatusObservable != null) { queryStatusObservable.onCompleted(); } if (querySignatureObservable != null) { querySignatureObservable.onCompleted(); } cleanupQueryStates(); if (responseContent != null && responseContent.refCnt() > 0) { responseContent.release(); } super.handlerRemoved(ctx); }
@Override public void handlerRemoved(final ChannelHandlerContext ctx) throws Exception { if (queryRowObservable != null) { queryRowObservable.onCompleted(); } if (queryInfoObservable != null) { queryInfoObservable.onCompleted(); } if (queryErrorObservable != null) { queryErrorObservable.onCompleted(); } if (queryStatusObservable != null) { queryStatusObservable.onCompleted(); } if (querySignatureObservable != null) { querySignatureObservable.onCompleted(); } cleanupQueryStates(); if (responseContent != null && responseContent.refCnt() > 0) { responseContent.release(); } super.handlerRemoved(ctx); }
@Override public void handlerRemoved(final ChannelHandlerContext ctx) throws Exception { if (queryRowObservable != null) { queryRowObservable.onCompleted(); } if (queryInfoObservable != null) { queryInfoObservable.onCompleted(); } if (queryErrorObservable != null) { queryErrorObservable.onCompleted(); } if (queryStatusObservable != null) { queryStatusObservable.onCompleted(); } if (querySignatureObservable != null) { querySignatureObservable.onCompleted(); } if (queryProfileInfoObservable != null) { queryProfileInfoObservable.onCompleted(); } cleanupQueryStates(); if (responseContent != null && responseContent.refCnt() > 0) { responseContent.release(); } super.handlerRemoved(ctx); }
@OnClick(R.id.async_subject_test) public void onAsyncSubjectTestClick() { unsubscribe(); createSubscription(); AsyncSubject<Stock> stockAsyncSubject = AsyncSubject.create(); stockAsyncSubject.onNext(new Stock(GOOG, 722)); // Will get the last value (GOOG, 723) and all future items and terminal events Subscription subscription = stockAsyncSubject.subscribe(getDefaultSubscriber()); compositeSubscription.add(subscription); stockAsyncSubject.onNext(new Stock(GOOG, 723)); stockAsyncSubject.onNext(new Stock(GOOG, 100)); stockAsyncSubject.onNext(new Stock(GOOG, 699)); stockAsyncSubject.onCompleted(); Subscription tardySubscription = stockAsyncSubject.subscribe(getTardySubscriber()); compositeSubscription.add(tardySubscription); }
/** * The query response is an error, parse it and attache it to the observable. * * @param last if the given content chunk is the last one. */ private void parseViewError(boolean last) { if (!last) { return; } if (responseHeader.getStatus().code() == 200) { int openBracketPos = responseContent.bytesBefore((byte) '[') + responseContent.readerIndex(); int closeBracketLength = findSectionClosingPosition(responseContent, '[', ']') - openBracketPos + 1; ByteBuf slice = responseContent.slice(openBracketPos, closeBracketLength); viewErrorObservable.onNext("{\"errors\":" + slice.toString(CharsetUtil.UTF_8) + "}"); } else { viewErrorObservable.onNext("{\"errors\":[" + responseContent.toString(CharsetUtil.UTF_8) + "]}"); } viewErrorObservable.onCompleted(); viewParsingState = QUERY_STATE_DONE; responseContent.discardReadBytes(); }
/** * The query response is an error, parse it and attache it to the observable. * * @param last if the given content chunk is the last one. */ private void parseViewError(boolean last) { if (!last) { return; } if (responseHeader.getStatus().code() == 200) { int openBracketPos = responseContent.bytesBefore((byte) '[') + responseContent.readerIndex(); int closeBracketLength = findSectionClosingPosition(responseContent, '[', ']') - openBracketPos + 1; ByteBuf slice = responseContent.slice(openBracketPos, closeBracketLength); viewErrorObservable.onNext("{\"errors\":" + slice.toString(CharsetUtil.UTF_8) + "}"); } else { viewErrorObservable.onNext("{\"errors\":[" + responseContent.toString(CharsetUtil.UTF_8) + "]}"); } viewErrorObservable.onCompleted(); viewParsingState = QUERY_STATE_DONE; responseContent.discardReadBytes(); }
/** * Last before the end of the stream, we can now parse the final result status * (including full execution of the query). */ private void parseQueryStatus(boolean lastChunk) { //some sections don't always come up, unlike status. Take this chance to close said sections' observables here. querySignatureObservable.onCompleted(); queryRowObservable.onCompleted(); queryErrorObservable.onCompleted(); responseContent.markReaderIndex(); responseContent.skipBytes(findNextChar(responseContent, '"') + 1); int endStatus = findNextChar(responseContent, '"'); if (endStatus > -1) { ByteBuf resultSlice = responseContent.readSlice(endStatus); queryStatusObservable.onNext(resultSlice.toString(CHARSET)); queryStatusObservable.onCompleted(); sectionDone(); queryParsingState = transitionToNextToken(lastChunk); } else { responseContent.resetReaderIndex(); return; //need more data } }
/** * Last before the end of the stream, we can now parse the final result status * (including full execution of the query). */ private void parseQueryStatus(boolean lastChunk) { //some sections don't always come up, unlike status. Take this chance to close said sections' observables here. querySignatureObservable.onCompleted(); queryRowObservable.onCompleted(); queryErrorObservable.onCompleted(); responseContent.markReaderIndex(); responseContent.skipBytes(findNextChar(responseContent, '"') + 1); int endStatus = findNextChar(responseContent, '"'); if (endStatus > -1) { ByteBuf resultSlice = responseContent.readSlice(endStatus); queryStatusObservable.onNext(resultSlice.toString(CHARSET)); queryStatusObservable.onCompleted(); sectionDone(); queryParsingState = transitionToNextToken(lastChunk); } else { responseContent.resetReaderIndex(); return; //need more data } }
/** * Last before the end of the stream, we can now parse the final result status * (including full execution of the query). */ private void parseQueryStatus(boolean lastChunk) { //some sections don't always come up, unlike status. Take this chance to close said sections' observables here. querySignatureObservable.onCompleted(); queryRowObservable.onCompleted(); queryErrorObservable.onCompleted(); responseContent.markReaderIndex(); responseContent.skipBytes(findNextChar(responseContent, '"') + 1); int endStatus = findNextChar(responseContent, '"'); if (endStatus > -1) { ByteBuf resultSlice = responseContent.readSlice(endStatus); queryStatusObservable.onNext(resultSlice.toString(CHARSET)); queryStatusObservable.onCompleted(); sectionDone(); queryParsingState = transitionToNextToken(lastChunk); } else { responseContent.resetReaderIndex(); return; //need more data } }