Search in sources :

Example 1 with Header

use of com.navercorp.pinpoint.io.header.Header in project pinpoint by naver.

the class ChunkHeaderTBaseDeserializer method readInternal.

private Message<TBase<?, ?>> readInternal() throws TException {
    final HeaderReader reader = newHeaderReader();
    final Header header = readHeader(reader);
    final HeaderEntity headerEntity = readHeaderEntity(reader, header);
    skipHeaderOffset(reader);
    final TBase<?, ?> base = locator.bodyLookup(header.getType());
    if (base == null) {
        throw new TException("base must not be null type:" + header.getType());
    }
    base.read(protocol);
    return new DefaultMessage<TBase<?, ?>>(header, headerEntity, base);
}
Also used : HeaderEntity(com.navercorp.pinpoint.io.header.HeaderEntity) TException(org.apache.thrift.TException) DefaultMessage(com.navercorp.pinpoint.io.request.DefaultMessage) Header(com.navercorp.pinpoint.io.header.Header) ByteArrayHeaderReader(com.navercorp.pinpoint.io.header.ByteArrayHeaderReader) HeaderReader(com.navercorp.pinpoint.io.header.HeaderReader)

Example 2 with Header

use of com.navercorp.pinpoint.io.header.Header in project pinpoint by naver.

the class ChunkHeaderTBaseDeserializer method readHeader.

private Header readHeader() throws TException {
    HeaderReader reader = newHeaderReader();
    Header header = readHeader(reader);
    skipHeaderOffset(reader);
    return header;
}
Also used : Header(com.navercorp.pinpoint.io.header.Header) ByteArrayHeaderReader(com.navercorp.pinpoint.io.header.ByteArrayHeaderReader) HeaderReader(com.navercorp.pinpoint.io.header.HeaderReader)

Example 3 with Header

use of com.navercorp.pinpoint.io.header.Header in project pinpoint by naver.

the class ChunkHeaderTBaseDeserializer method deserialize.

public List<Message<TBase<?, ?>>> deserialize(byte[] bytes, int offset, int length) throws TException {
    try {
        trans.reset(bytes, offset, length);
        Header header = readHeader();
        if (locator.isSupport(header.getType())) {
            List<Message<TBase<?, ?>>> list = new ArrayList<Message<TBase<?, ?>>>();
            while (trans.getBytesRemainingInBuffer() > 0) {
                final Message<TBase<?, ?>> request = readInternal();
                list.add(request);
            }
            return list;
        } else {
            final Message<TBase<?, ?>> request = readInternal();
            if (request == null) {
                return Collections.emptyList();
            }
            List<Message<TBase<?, ?>>> list = new ArrayList<Message<TBase<?, ?>>>();
            list.add(request);
            return list;
        }
    } finally {
        trans.clear();
        protocol.reset();
    }
}
Also used : Header(com.navercorp.pinpoint.io.header.Header) Message(com.navercorp.pinpoint.io.request.Message) DefaultMessage(com.navercorp.pinpoint.io.request.DefaultMessage) ArrayList(java.util.ArrayList) TBase(org.apache.thrift.TBase)

Example 4 with Header

use of com.navercorp.pinpoint.io.header.Header in project pinpoint by naver.

the class ChunkHeaderBufferedTBaseSerializer method write.

// write chunk header + header + body
private void write(final TBase<?, ?> base) throws TException {
    final TProtocol protocol = protocolFactory.getProtocol(transport);
    // write chunk header
    writeChunkHeader(protocol);
    // write header
    final Header header = locator.headerLookup(base);
    if (header == null) {
        throw new TException("header must not be null base:" + base);
    }
    HeaderUtils.writeHeader(protocol, header);
    base.write(protocol);
    if (isNeedFlush()) {
        flush();
    }
}
Also used : TException(org.apache.thrift.TException) Header(com.navercorp.pinpoint.io.header.Header) TProtocol(org.apache.thrift.protocol.TProtocol)

Example 5 with Header

use of com.navercorp.pinpoint.io.header.Header in project pinpoint by naver.

the class TypeLocatorBuilder method addBodyFactory.

public void addBodyFactory(short type, BodyFactory<T> bodyFactory) {
    Objects.requireNonNull(bodyFactory, "bodyFactory");
    final BodyFactory<T> old = bodyFactoryMap.put((int) type, bodyFactory);
    if (old != null) {
        throw new IllegalStateException("duplicated type:" + type);
    }
    final Header header = this.headerFactory.newHeader(type);
    final Header oldTypeHeader = headerMap.put((int) type, header);
    if (oldTypeHeader != null) {
        throw new IllegalStateException("duplicated type:" + type);
    }
    final T object = bodyFactory.getObject();
    if (object != null) {
        final Class<?> bodyClass = object.getClass();
        // classMap.put(type, bodyClass);
        final Header oldBodyClass = bodyClassToHeaderMap.put(bodyClass, header);
        if (oldBodyClass != null) {
            throw new IllegalStateException("duplicated type:" + type);
        }
    }
}
Also used : Header(com.navercorp.pinpoint.io.header.Header)

Aggregations

Header (com.navercorp.pinpoint.io.header.Header)18 DefaultMessage (com.navercorp.pinpoint.io.request.DefaultMessage)6 HeaderEntity (com.navercorp.pinpoint.io.header.HeaderEntity)5 TException (org.apache.thrift.TException)5 HeaderV2 (com.navercorp.pinpoint.io.header.v2.HeaderV2)4 Test (org.junit.Test)4 HeaderV1 (com.navercorp.pinpoint.io.header.v1.HeaderV1)3 ByteArrayHeaderReader (com.navercorp.pinpoint.io.header.ByteArrayHeaderReader)2 HeaderReader (com.navercorp.pinpoint.io.header.HeaderReader)2 TBase (org.apache.thrift.TBase)2 ByteArrayHeaderWriter (com.navercorp.pinpoint.io.header.ByteArrayHeaderWriter)1 HeaderWriter (com.navercorp.pinpoint.io.header.HeaderWriter)1 InvalidHeaderException (com.navercorp.pinpoint.io.header.InvalidHeaderException)1 Message (com.navercorp.pinpoint.io.request.Message)1 TResult (com.navercorp.pinpoint.thrift.dto.TResult)1 UnsupportedEncodingException (java.io.UnsupportedEncodingException)1 ArrayList (java.util.ArrayList)1 TProtocol (org.apache.thrift.protocol.TProtocol)1