| /* | 
 |  * Licensed to the Apache Software Foundation (ASF) under one | 
 |  * or more contributor license agreements. See the NOTICE file | 
 |  * distributed with this work for additional information | 
 |  * regarding copyright ownership. The ASF licenses this file | 
 |  * to you under the Apache License, Version 2.0 (the | 
 |  * "License"); you may not use this file except in compliance | 
 |  * with the License. You may obtain a copy of the License at | 
 |  * | 
 |  *   http://www.apache.org/licenses/LICENSE-2.0 | 
 |  * | 
 |  * Unless required by applicable law or agreed to in writing, | 
 |  * software distributed under the License is distributed on an | 
 |  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | 
 |  * KIND, either express or implied. See the License for the | 
 |  * specific language governing permissions and limitations | 
 |  * under the License. | 
 |  */ | 
 |  | 
 | #import <Foundation/Foundation.h> | 
 |  | 
 | #import "TTransport.h" | 
 |  | 
 |  | 
 | enum { | 
 |   TMessageType_CALL = 1, | 
 |   TMessageType_REPLY = 2, | 
 |   TMessageType_EXCEPTION = 3, | 
 |   TMessageType_ONEWAY = 4 | 
 | }; | 
 |  | 
 | enum { | 
 |   TType_STOP   = 0, | 
 |   TType_VOID   = 1, | 
 |   TType_BOOL   = 2, | 
 |   TType_BYTE   = 3, | 
 |   TType_DOUBLE = 4, | 
 |   TType_I16    = 6, | 
 |   TType_I32    = 8, | 
 |   TType_I64    = 10, | 
 |   TType_STRING = 11, | 
 |   TType_STRUCT = 12, | 
 |   TType_MAP    = 13, | 
 |   TType_SET    = 14, | 
 |   TType_LIST   = 15 | 
 | }; | 
 |  | 
 |  | 
 | @protocol TProtocol <NSObject> | 
 |  | 
 | - (id <TTransport>) transport; | 
 |  | 
 | - (void) readMessageBeginReturningName: (NSString **) name | 
 |                                   type: (int *) type | 
 |                             sequenceID: (int *) sequenceID; | 
 | - (void) readMessageEnd; | 
 |  | 
 | - (void) readStructBeginReturningName: (NSString **) name; | 
 | - (void) readStructEnd; | 
 |  | 
 | - (void) readFieldBeginReturningName: (NSString **) name | 
 |                                 type: (int *) fieldType | 
 |                              fieldID: (int *) fieldID; | 
 | - (void) readFieldEnd; | 
 |  | 
 | - (NSString *) readString; | 
 |  | 
 | - (BOOL) readBool; | 
 |  | 
 | - (unsigned char) readByte; | 
 |  | 
 | - (short) readI16; | 
 |  | 
 | - (int32_t) readI32; | 
 |  | 
 | - (int64_t) readI64; | 
 |  | 
 | - (double) readDouble; | 
 |  | 
 | - (NSData *) readBinary; | 
 |  | 
 | - (void) readMapBeginReturningKeyType: (int *) keyType | 
 |                             valueType: (int *) valueType | 
 |                                  size: (int *) size; | 
 | - (void) readMapEnd; | 
 |  | 
 |  | 
 | - (void) readSetBeginReturningElementType: (int *) elementType | 
 |                                      size: (int *) size; | 
 | - (void) readSetEnd; | 
 |  | 
 |  | 
 | - (void) readListBeginReturningElementType: (int *) elementType | 
 |                                       size: (int *) size; | 
 | - (void) readListEnd; | 
 |  | 
 |  | 
 | - (void) writeMessageBeginWithName: (NSString *) name | 
 |                               type: (int) messageType | 
 |                         sequenceID: (int) sequenceID; | 
 | - (void) writeMessageEnd; | 
 |  | 
 | - (void) writeStructBeginWithName: (NSString *) name; | 
 | - (void) writeStructEnd; | 
 |  | 
 | - (void) writeFieldBeginWithName: (NSString *) name | 
 |                             type: (int) fieldType | 
 |                          fieldID: (int) fieldID; | 
 |  | 
 | - (void) writeI32: (int32_t) value; | 
 |  | 
 | - (void) writeI64: (int64_t) value; | 
 |  | 
 | - (void) writeI16: (short) value; | 
 |  | 
 | - (void) writeByte: (uint8_t) value; | 
 |  | 
 | - (void) writeString: (NSString *) value; | 
 |  | 
 | - (void) writeDouble: (double) value; | 
 |  | 
 | - (void) writeBool: (BOOL) value; | 
 |  | 
 | - (void) writeBinary: (NSData *) data; | 
 |  | 
 | - (void) writeFieldStop; | 
 |  | 
 | - (void) writeFieldEnd; | 
 |  | 
 | - (void) writeMapBeginWithKeyType: (int) keyType | 
 |                         valueType: (int) valueType | 
 |                              size: (int) size; | 
 | - (void) writeMapEnd; | 
 |  | 
 |  | 
 | - (void) writeSetBeginWithElementType: (int) elementType | 
 |                                  size: (int) size; | 
 | - (void) writeSetEnd; | 
 |  | 
 |  | 
 | - (void) writeListBeginWithElementType: (int) elementType | 
 |                                   size: (int) size; | 
 |  | 
 | - (void) writeListEnd; | 
 |  | 
 |  | 
 | @end | 
 |  |