private static void writeHeaders(String ck, String cs, DataOutputBlobWriter<ClientHTTPRequestSchema> stream) { // byte[] btc = encodeKeys(ck,cs).getBytes();// byte[] btc = (ck+':'+cs).getBytes(); //TODO: not GC free... //Authorization: Basic UW5KTlFsWnlkemRXVDNSV2RrWTVaSFo2TWs1Tk5EbEZZanBvTW5VNU5UQlpOVUZFZVdOa1JqSlNXV1p1V0daNE5sUkJaRVpaTlZZeE4xZDVSazFsTVVSS2JrSlBSMVZqZVVNM1lRPT0= stream.append("Authorization: Basic "); Appendables.appendBase64Encoded(stream, btc, 0, btc.length, Integer.MAX_VALUE); stream.append("\r\nContent-Type: application/x-www-form-urlencoded;charset=UTF-8\r\n"); }
@Override public ChannelWriter append(CharSequence csq) { checkLimit(this,csq.length() * 6); //Estimate (maximum length) return super.append(csq); }
@Override public ChannelWriter append(CharSequence csq, int start, int end) { checkLimit(this,(end-start) * 6); //Estimate (maximum length) return super.append(csq, start, end); }
@Override public ChannelWriter append(CharSequence csq) { checkLimit(this,csq.length()*6); //Estimate (maximum length) return super.append(csq); }
@Override public ChannelWriter append(CharSequence csq, int start, int end) { checkLimit(this,(end-start) * 6); //Estimate (maximum length) return super.append(csq, start, end); }
@Override public ChannelWriter append(char c) { checkLimit(this, 6); //Estimate (maximum length) return super.append(c); }
@Override public ChannelWriter append(char c) { checkLimit(this, 6); //Estimate (maximum length) return super.append(c); }
output.append(topic);
output.append(topic);
output.append(topic);
/** * A method used to unsubscribe from a specific topic and listener * @param topic CharSequence arg used in output.append * @param listener PubSubMethodListenerBase arg used in PipeWriter.writeInt * @return true if msgCommandChannel.goPipe == null || PipeWriter.hasRoomForWrite(msgCommandChannel.goPipe) <p> else false */ public boolean unsubscribe(CharSequence topic, PubSubMethodListenerBase listener) { assert((0 != (msgCommandChannel.initFeatures & MsgCommandChannel.DYNAMIC_MESSAGING))) : "CommandChannel must be created with DYNAMIC_MESSAGING flag"; if (msgCommandChannel.goHasRoom() && PipeWriter.tryWriteFragment(msgCommandChannel.messagePubSub, MessagePubSub.MSG_UNSUBSCRIBE_101)) { PipeWriter.writeInt(msgCommandChannel.messagePubSub, MessagePubSub.MSG_SUBSCRIBE_100_FIELD_SUBSCRIBERIDENTITYHASH_4, System.identityHashCode(listener)); //OLD PipeWriter.writeUTF8(messagePubSub, MessagePubSub.MSG_UNSUBSCRIBE_101_FIELD_TOPIC_1, topic); DataOutputBlobWriter<MessagePubSub> output = PipeWriter.outputStream(msgCommandChannel.messagePubSub); output.openField(); output.append(topic); MsgCommandChannel.publicTrackedTopicSuffix(msgCommandChannel, output); output.closeHighLevelField(MessagePubSub.MSG_UNSUBSCRIBE_101_FIELD_TOPIC_1); PipeWriter.publishWrites(msgCommandChannel.messagePubSub); msgCommandChannel.builder.releasePubSubTraffic(1, msgCommandChannel); return true; } return false; }
output.append(topic);
output.append(topic);
private void streamingRequest(Pipe<ClientHTTPRequestSchema> pipe, int httpRequestResponseId) { PipeWriter.presumeWriteFragment(pipe, ClientHTTPRequestSchema.MSG_GET_200); assert(httpRequestResponseId>=0); PipeWriter.writeInt(pipe, ClientHTTPRequestSchema.MSG_GET_200_FIELD_SESSION_10, httpRequestResponseId); PipeWriter.writeInt(pipe, ClientHTTPRequestSchema.MSG_GET_200_FIELD_PORT_1, port); int hostId = ClientCoordinator.registerDomain(host); PipeWriter.writeInt(pipe, ClientHTTPRequestSchema.MSG_GET_200_FIELD_HOSTID_2, hostId); PipeWriter.writeLong(pipe, ClientHTTPRequestSchema.MSG_GET_200_FIELD_CONNECTIONID_20, -1 ); PipeWriter.writeInt(pipe, ClientHTTPRequestSchema.MSG_GET_200_FIELD_DESTINATION_11, httpRequestResponseId); PipeWriter.writeUTF8(pipe, ClientHTTPRequestSchema.MSG_GET_200_FIELD_PATH_3, path); DataOutputBlobWriter<ClientHTTPRequestSchema> stream = PipeWriter.outputStream(pipe); DataOutputBlobWriter.openField(stream); myAuth.addHeaders(stream, "GET").append("\r\n"); //myAuth.addHeaders(System.out, "GET"); DataOutputBlobWriter.closeHighLevelField(stream, ClientHTTPRequestSchema.MSG_GET_200_FIELD_HEADERS_7); PipeWriter.publishWrites(pipe); }
private void batchMessages(Pipe<RawDataSchema> output, int esitmate) { if ((!messageOpen) || (Pipe.outputStream(output).remaining() < (esitmate+(1<<12))) ) { if (messageOpen) { //add to end of each file, when there is room. if (Pipe.outputStream(output).remaining()>(1<<12)) { Pipe.outputStream(output).append("\n"); etr.report(Pipe.outputStream(output)); } DataOutputBlobWriter.closeLowLevelField(Pipe.outputStream(output)); Pipe.confirmLowLevelWrite(output, Pipe.sizeOf(output, RawDataSchema.MSG_CHUNKEDSTREAM_1)); Pipe.publishWrites(output); messageOpen=false; } Pipe.addMsgIdx(output, RawDataSchema.MSG_CHUNKEDSTREAM_1); Pipe.openOutputStream(output); messageOpen=true; } }
output.append(topic);
output.append(topic);
output.append(topic); MsgCommandChannel.publicTrackedTopicSuffix(msgCommandChannel, output); output.closeHighLevelField(MessagePubSub.MSG_PUBLISH_103_FIELD_TOPIC_1);