本文整理汇总了Java中org.apache.thrift.protocol.TProtocolUtil类的典型用法代码示例。如果您正苦于以下问题:Java TProtocolUtil类的具体用法?Java TProtocolUtil怎么用?Java TProtocolUtil使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
TProtocolUtil类属于org.apache.thrift.protocol包,在下文中一共展示了TProtocolUtil类的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: process
import org.apache.thrift.protocol.TProtocolUtil; //导入依赖的package包/类
@Override
public boolean process(TProtocol in, TProtocol out) throws TException {
TMessage msg = in.readMessageBegin();
Controller<?, ?> fn = (Controller<?, ?>) this.beanFactory
.getBean(msg.name);
if (fn == null) {
if (LOGGER.isWarnEnabled()) {
LOGGER.warn("Invalid request: failed to find interface="
+ msg.name + ", from: " + getInetAddress(in));
}
TProtocolUtil.skip(in, TType.STRUCT);
in.readMessageEnd();
TApplicationException x = new TApplicationException(
TApplicationException.UNKNOWN_METHOD,
"Invalid method name: '" + msg.name + "'");
out.writeMessageBegin(new TMessage(msg.name,
TMessageType.EXCEPTION, msg.seqid));
x.write(out);
out.writeMessageEnd();
out.getTransport().flush();
return true;
}
process(msg.seqid, msg.name, in, out, fn);
return true;
}
示例2: process
import org.apache.thrift.protocol.TProtocolUtil; //导入依赖的package包/类
@Override
public final boolean process(final TProtocol in, final TProtocol out)
throws TException {
final TMessage msg = in.readMessageBegin();
final ProcessFunction<LocatorServiceImpl, ?> fn = this.fnMap
.get(msg.name);
if (fn != null) {
fn.process(msg.seqid, in, out, this.inst);
// terminate connection on receiving closeConnection
// direct class comparison should be the fastest way
return fn.getClass() != LocatorService.Processor.closeConnection.class;
}
else {
TProtocolUtil.skip(in, TType.STRUCT);
in.readMessageEnd();
TApplicationException x = new TApplicationException(
TApplicationException.UNKNOWN_METHOD, "Invalid method name: '"
+ msg.name + "'");
out.writeMessageBegin(new TMessage(msg.name, TMessageType.EXCEPTION,
msg.seqid));
x.write(out);
out.writeMessageEnd();
out.getTransport().flush();
return true;
}
}
示例3: process
import org.apache.thrift.protocol.TProtocolUtil; //导入依赖的package包/类
@Override
public boolean process(TProtocol in, TProtocol out) throws TException {
TMessage msg = in.readMessageBegin();
ProcessFunction fn = processMap.get(msg.name);
if (fn == null) {
TProtocolUtil.skip(in, TType.STRUCT);
in.readMessageEnd();
TApplicationException x = new TApplicationException(TApplicationException.UNKNOWN_METHOD, "Invalid method name: '"+msg.name+"'");
out.writeMessageBegin(new TMessage(msg.name, TMessageType.EXCEPTION, msg.seqid));
x.write(out);
out.writeMessageEnd();
out.getTransport().flush();
return true;
}
fn.process(msg.seqid, in, out, iface);
return true;
}
示例4: process
import org.apache.thrift.protocol.TProtocolUtil; //导入依赖的package包/类
public boolean process(TProtocol in, TProtocol out) throws TException {
TMessage msg = in.readMessageBegin();
ProcessFunction fn = processMap.get(msg.name);
if (fn == null) {
TProtocolUtil.skip(in, TType.STRUCT);
in.readMessageEnd();
TApplicationException x = new TApplicationException(TApplicationException.UNKNOWN_METHOD, "Invalid method name: '"+msg.name+"'");
out.writeMessageBegin(new TMessage(msg.name, TMessageType.EXCEPTION, msg.seqid));
x.write(out);
out.writeMessageEnd();
out.getTransport().flush();
return true;
}
fn.process(msg.seqid, in, out, iface);
return true;
}
示例5: process
import org.apache.thrift.protocol.TProtocolUtil; //导入依赖的package包/类
@Override
public final boolean process(final TProtocol in, final TProtocol out)
throws TException {
final TMessage msg = in.readMessageBegin();
final ProcessFunction<GFXDServiceImpl, ?> fn = this.fnMap.get(msg.name);
if (fn != null) {
fn.process(msg.seqid, in, out, this.inst);
// terminate connection on receiving closeConnection
// direct class comparison should be the fastest way
// TODO: SW: also need to clean up connection artifacts in the case of
// client connection failure (ConnectionListener does get a notification
// but how to tie the socket/connectionNumber to the connectionID?)
return fn.getClass() != GFXDService.Processor.closeConnection.class;
}
else {
TProtocolUtil.skip(in, TType.STRUCT);
in.readMessageEnd();
TApplicationException x = new TApplicationException(
TApplicationException.UNKNOWN_METHOD, "Invalid method name: '"
+ msg.name + "'");
out.writeMessageBegin(new TMessage(msg.name, TMessageType.EXCEPTION,
msg.seqid));
x.write(out);
out.writeMessageEnd();
out.getTransport().flush();
return true;
}
}
示例6: locateField
import org.apache.thrift.protocol.TProtocolUtil; //导入依赖的package包/类
private TField locateField(byte[] bytes, TFieldIdEnum fieldIdPathFirst, TFieldIdEnum ... fieldIdPathRest) throws TException {
trans_.reset(bytes);
TFieldIdEnum[] fieldIdPath= new TFieldIdEnum[fieldIdPathRest.length + 1];
fieldIdPath[0] = fieldIdPathFirst;
for (int i = 0; i < fieldIdPathRest.length; i++){
fieldIdPath[i + 1] = fieldIdPathRest[i];
}
// index into field ID path being currently searched for
int curPathIndex = 0;
// this will be the located field, or null if it is not located
TField field = null;
protocol_.readStructBegin();
while (curPathIndex < fieldIdPath.length) {
field = protocol_.readFieldBegin();
// we can stop searching if we either see a stop or we go past the field
// id we're looking for (since fields should now be serialized in asc
// order).
if (field.type == TType.STOP || field.id > fieldIdPath[curPathIndex].getThriftFieldId()) {
return null;
}
if (field.id != fieldIdPath[curPathIndex].getThriftFieldId()) {
// Not the field we're looking for. Skip field.
TProtocolUtil.skip(protocol_, field.type);
protocol_.readFieldEnd();
} else {
// This field is the next step in the path. Step into field.
curPathIndex++;
if (curPathIndex < fieldIdPath.length) {
protocol_.readStructBegin();
}
}
}
return field;
}
示例7: read
import org.apache.thrift.protocol.TProtocolUtil; //导入依赖的package包/类
public static TApplicationException read(TProtocol iprot) throws TException {
TField field;
iprot.readStructBegin();
String message = null;
int type = UNKNOWN;
while (true) {
field = iprot.readFieldBegin();
if (field.type == TType.STOP) {
break;
}
switch (field.id) {
case 1:
if (field.type == TType.STRING) {
message = iprot.readString();
} else {
TProtocolUtil.skip(iprot, field.type);
}
break;
case 2:
if (field.type == TType.I32) {
type = iprot.readI32();
} else {
TProtocolUtil.skip(iprot, field.type);
}
break;
default:
TProtocolUtil.skip(iprot, field.type);
break;
}
iprot.readFieldEnd();
}
iprot.readStructEnd();
return new TApplicationException(type, message);
}
示例8: read
import org.apache.thrift.protocol.TProtocolUtil; //导入依赖的package包/类
/**
* Reads a {@link TApplicationException} from the specified {@link TProtocol}.
*
* <p>Note: This has been copied from {@link TApplicationException#read(TProtocol)} due to API differences
* between libthrift 0.9.x and 0.10.x.
*/
public static TApplicationException read(TProtocol iprot) throws TException {
TField field;
iprot.readStructBegin();
String message = null;
int type = TApplicationException.UNKNOWN;
while (true) {
field = iprot.readFieldBegin();
if (field.type == TType.STOP) {
break;
}
switch (field.id) {
case 1:
if (field.type == TType.STRING) {
message = iprot.readString();
} else {
TProtocolUtil.skip(iprot, field.type);
}
break;
case 2:
if (field.type == TType.I32) {
type = iprot.readI32();
} else {
TProtocolUtil.skip(iprot, field.type);
}
break;
default:
TProtocolUtil.skip(iprot, field.type);
break;
}
iprot.readFieldEnd();
}
iprot.readStructEnd();
return new TApplicationException(type, message);
}
示例9: tryDecodeUnframedMessage
import org.apache.thrift.protocol.TProtocolUtil; //导入依赖的package包/类
private TTransport tryDecodeUnframedMessage(ChannelHandlerContext ctx, ByteBuf buffer) throws TException {
// Perform a trial decode, skipping through
// the fields, to see whether we have an entire message available.
int messageLength = 0;
int messageStartReaderIndex = buffer.readerIndex();
try {
TNiftyTransport decodeAttemptTransport = new TNiftyTransport(ctx.channel(), buffer);
TProtocol inputProtocol = this.inputProtocolFactory.getProtocol(decodeAttemptTransport);
// Skip through the message
inputProtocol.readMessageBegin();
TProtocolUtil.skip(inputProtocol, TType.STRUCT);
inputProtocol.readMessageEnd();
messageLength = buffer.readerIndex() - messageStartReaderIndex;
} catch (IndexOutOfBoundsException e) {
// No complete message was decoded: ran out of bytes
return null;
} finally {
if (buffer.readerIndex() - messageStartReaderIndex > maxFrameSize) {
ctx.fireExceptionCaught(new TooLongFrameException("Maximum frame size of " + maxFrameSize + " exceeded"));
}
buffer.readerIndex(messageStartReaderIndex);
}
if (messageLength <= 0) {
return null;
}
// We have a full message in the read buffer, slice it off
ByteBuf messageBuffer = extractFrame(buffer, messageStartReaderIndex, messageLength);
ThriftMessage message = new ThriftMessage(messageBuffer, ThriftTransportType.UNFRAMED);
buffer.readerIndex(messageStartReaderIndex + messageLength);
return new TNiftyTransport(ctx.channel(), message);
}
示例10: main
import org.apache.thrift.protocol.TProtocolUtil; //导入依赖的package包/类
public static void main(String[] args) throws TException {
TTransport trans = new TSimpleFileTransport("data", true, false);
TProtocol proto = new TBinaryProtocol(trans);
Trade trade_read = new Trade();
TField field = new TField();
TStruct struct_obj = proto.readStructBegin();
while(true) {
field = proto.readFieldBegin();
if (field.id == TType.STOP) {
break;
}
switch(field.id) {
case 1:
trade_read.symbol = proto.readString();
break;
case 2:
trade_read.price = proto.readDouble();
break;
case 3:
trade_read.size = proto.readI32();
break;
default:
TProtocolUtil.skip(proto,field.type);
break;
}
proto.readFieldEnd();
}
proto.readStructEnd();
System.out.println("Trade: " + trade_read.symbol + " " +
trade_read.size + " @ " + trade_read.price);
}
示例11: read
import org.apache.thrift.protocol.TProtocolUtil; //导入依赖的package包/类
public void read(org.apache.thrift.protocol.TProtocol iprot, Log_args struct) throws org.apache.thrift.TException {
org.apache.thrift.protocol.TField schemeField;
iprot.readStructBegin();
while (true)
{
schemeField = iprot.readFieldBegin();
if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
break;
}
switch (schemeField.id) {
case 1: // MESSAGES
if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
{
org.apache.thrift.protocol.TList _list0 = iprot.readListBegin();
struct.messages = new ArrayList<LogEntry>(_list0.size);
for (int _i1 = 0; _i1 < _list0.size; ++_i1)
{
LogEntry _elem2; // required
_elem2 = new LogEntry();
_elem2.read(iprot);
struct.messages.add(_elem2);
}
iprot.readListEnd();
}
struct.setMessagesIsSet(true);
} else {
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
break;
default:
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
}
iprot.readFieldEnd();
}
iprot.readStructEnd();
// check for required fields of primitive type, which can't be checked in the validate method
struct.validate();
}
示例12: tryDecodeUnframedMessage
import org.apache.thrift.protocol.TProtocolUtil; //导入依赖的package包/类
protected ByteBuf tryDecodeUnframedMessage(ChannelHandlerContext ctx,
Channel channel,
ByteBuf buffer,
TProtocolFactory inputProtocolFactory)
throws TException {
// Perform a trial decode, skipping through
// the fields, to see whether we have an entire message available.
int messageLength = 0;
int messageStartReaderIndex = buffer.readerIndex();
try {
TNiftyTransport decodeAttemptTransport =
new TNiftyTransport(channel, buffer, ThriftTransportType.UNFRAMED);
int initialReadBytes = decodeAttemptTransport.getReadByteCount();
TProtocol inputProtocol =
inputProtocolFactory.getProtocol(decodeAttemptTransport);
// Skip through the message
inputProtocol.readMessageBegin();
TProtocolUtil.skip(inputProtocol, TType.STRUCT);
inputProtocol.readMessageEnd();
messageLength = decodeAttemptTransport.getReadByteCount() - initialReadBytes;
} catch (TTransportException | IndexOutOfBoundsException e) {
// No complete message was decoded: ran out of bytes
return null;
} finally {
if (buffer.readerIndex() - messageStartReaderIndex > maxFrameSize) {
throw new TooLongFrameException("Maximum frame size of " + maxFrameSize + " exceeded");
}
buffer.readerIndex(messageStartReaderIndex);
}
if (messageLength <= 0) {
return null;
}
// We have a full message in the read buffer, slice it off
ByteBuf messageBuffer =
extractFrame(buffer, messageStartReaderIndex, messageLength);
buffer.readerIndex(messageStartReaderIndex + messageLength);
return messageBuffer;
}
示例13: readMessage
import org.apache.thrift.protocol.TProtocolUtil; //导入依赖的package包/类
private <Message extends PMessage<Message, Field>, Field extends PField>
Message readMessage(TProtocol protocol, PMessageDescriptor<Message, Field> descriptor)
throws SerializerException, TException {
TField f;
PMessageBuilder<Message, Field> builder = descriptor.builder();
protocol.readStructBegin(); // ignored.
while ((f = protocol.readFieldBegin()) != null) {
if (f.type == BinaryType.STOP) {
break;
}
PField field;
// f.name is never fulled out, rely on f.id being correct.
field = descriptor.findFieldById(f.id);
if (field != null) {
if (f.type != forType(field.getDescriptor().getType())) {
throw new SerializerException("Incompatible serialized type " + asString(f.type) +
" for field " + field.getName() +
", expected " + asString(forType(field.getDescriptor().getType())));
}
Object value = readTypedValue(f.type, field.getDescriptor(), protocol, true);
if (value != null) {
builder.set(field.getId(), value);
}
} else {
TProtocolUtil.skip(protocol, f.type);
}
protocol.readFieldEnd();
}
protocol.readStructEnd();
if (readStrict) {
try {
builder.validate();
} catch (IllegalStateException e) {
throw new SerializerException(e, e.getMessage());
}
}
return builder.build();
}
示例14: consumeField
import org.apache.thrift.protocol.TProtocolUtil; //导入依赖的package包/类
@Override
public void consumeField(TProtocol protocol, EventBasedThriftReader reader, short id, byte type) throws TException {
TProtocolUtil.skip(protocol, type);
}