|  | // | 
|  | //  TProtocol.cs | 
|  | // | 
|  | //  Begin:  Aug 19, 2007 | 
|  | //  Authors: | 
|  | //		Todd Berman <tberman@imeem.com> | 
|  | // | 
|  | //  Distributed under the Thrift Software License | 
|  | // | 
|  | //  See accompanying file LICENSE or visit the Thrift site at: | 
|  | //  http://developers.facebook.com/thrift/using | 
|  |  | 
|  | using System; | 
|  | using System.Collections.Generic; | 
|  | using System.Text; | 
|  | using Thrift.Transport; | 
|  |  | 
|  | namespace Thrift.Protocol | 
|  | { | 
|  | public abstract class TProtocol | 
|  | { | 
|  | protected TTransport trans; | 
|  |  | 
|  | protected TProtocol(TTransport trans) | 
|  | { | 
|  | this.trans = trans; | 
|  | } | 
|  |  | 
|  | public TTransport Transport | 
|  | { | 
|  | get { return trans; } | 
|  | } | 
|  |  | 
|  | public abstract void WriteMessageBegin(TMessage message); | 
|  | public abstract void WriteMessageEnd(); | 
|  | public abstract void WriteStructBegin(TStruct struc); | 
|  | public abstract void WriteStructEnd(); | 
|  | public abstract void WriteFieldBegin(TField field); | 
|  | public abstract void WriteFieldEnd(); | 
|  | public abstract void WriteFieldStop(); | 
|  | public abstract void WriteMapBegin(TMap map); | 
|  | public abstract void WriteMapEnd(); | 
|  | public abstract void WriteListBegin(TList list); | 
|  | public abstract void WriteListEnd(); | 
|  | public abstract void WriteSetBegin(TSet set); | 
|  | public abstract void WriteSetEnd(); | 
|  | public abstract void WriteBool(bool b); | 
|  | public abstract void WriteByte(byte b); | 
|  | public abstract void WriteI16(short i16); | 
|  | public abstract void WriteI32(int i32); | 
|  | public abstract void WriteI64(long i64); | 
|  | public abstract void WriteDouble(double d); | 
|  | public void WriteString(string s) { | 
|  | WriteBinary(Encoding.UTF8.GetBytes(s)); | 
|  | } | 
|  | public abstract void WriteBinary(byte[] b); | 
|  |  | 
|  | public abstract TMessage ReadMessageBegin(); | 
|  | public abstract void ReadMessageEnd(); | 
|  | public abstract TStruct ReadStructBegin(); | 
|  | public abstract void ReadStructEnd(); | 
|  | public abstract TField ReadFieldBegin(); | 
|  | public abstract void ReadFieldEnd(); | 
|  | public abstract TMap ReadMapBegin(); | 
|  | public abstract void ReadMapEnd(); | 
|  | public abstract TList ReadListBegin(); | 
|  | public abstract void ReadListEnd(); | 
|  | public abstract TSet ReadSetBegin(); | 
|  | public abstract void ReadSetEnd(); | 
|  | public abstract bool ReadBool(); | 
|  | public abstract byte ReadByte(); | 
|  | public abstract short ReadI16(); | 
|  | public abstract int ReadI32(); | 
|  | public abstract long ReadI64(); | 
|  | public abstract double ReadDouble(); | 
|  | public string ReadString() { | 
|  | return Encoding.UTF8.GetString(ReadBinary()); | 
|  | } | 
|  | public abstract byte[] ReadBinary(); | 
|  | } | 
|  | } |