| /** |
| * 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. |
| * |
| * Contains some contributions under the Thrift Software License. |
| * Please see doc/old-thrift-license.txt in the Thrift distribution for |
| * details. |
| */ |
| |
| using System; |
| using System.Text; |
| using Thrift.Transport; |
| using System.Collections.Generic; |
| |
| namespace Thrift.Protocol |
| { |
| /// <summary> |
| /// <see cref="TProtocolDecorator"/> forwards all requests to an enclosed <see cref="TProtocol"/> instance, |
| /// providing a way to author concise concrete decorator subclasses. While it has |
| /// no abstract methods, it is marked abstract as a reminder that by itself, |
| /// it does not modify the behaviour of the enclosed <see cref="TProtocol"/>. |
| /// <para/> |
| /// See p.175 of Design Patterns (by Gamma et al.) |
| /// </summary> |
| /// <seealso cref="TMultiplexedProtocol"/> |
| public abstract class TProtocolDecorator : TProtocol |
| { |
| private TProtocol WrappedProtocol; |
| |
| /// <summary> |
| /// Encloses the specified protocol. |
| /// </summary> |
| /// <param name="protocol">All operations will be forward to this protocol. Must be non-null.</param> |
| public TProtocolDecorator(TProtocol protocol) |
| : base(protocol.Transport) |
| { |
| |
| WrappedProtocol = protocol; |
| } |
| |
| public override void WriteMessageBegin(TMessage tMessage) |
| { |
| WrappedProtocol.WriteMessageBegin(tMessage); |
| } |
| |
| public override void WriteMessageEnd() |
| { |
| WrappedProtocol.WriteMessageEnd(); |
| } |
| |
| public override void WriteStructBegin(TStruct tStruct) |
| { |
| WrappedProtocol.WriteStructBegin(tStruct); |
| } |
| |
| public override void WriteStructEnd() |
| { |
| WrappedProtocol.WriteStructEnd(); |
| } |
| |
| public override void WriteFieldBegin(TField tField) |
| { |
| WrappedProtocol.WriteFieldBegin(tField); |
| } |
| |
| public override void WriteFieldEnd() |
| { |
| WrappedProtocol.WriteFieldEnd(); |
| } |
| |
| public override void WriteFieldStop() |
| { |
| WrappedProtocol.WriteFieldStop(); |
| } |
| |
| public override void WriteMapBegin(TMap tMap) |
| { |
| WrappedProtocol.WriteMapBegin(tMap); |
| } |
| |
| public override void WriteMapEnd() |
| { |
| WrappedProtocol.WriteMapEnd(); |
| } |
| |
| public override void WriteListBegin(TList tList) |
| { |
| WrappedProtocol.WriteListBegin(tList); |
| } |
| |
| public override void WriteListEnd() |
| { |
| WrappedProtocol.WriteListEnd(); |
| } |
| |
| public override void WriteSetBegin(TSet tSet) |
| { |
| WrappedProtocol.WriteSetBegin(tSet); |
| } |
| |
| public override void WriteSetEnd() |
| { |
| WrappedProtocol.WriteSetEnd(); |
| } |
| |
| public override void WriteBool(bool b) |
| { |
| WrappedProtocol.WriteBool(b); |
| } |
| |
| public override void WriteByte(sbyte b) |
| { |
| WrappedProtocol.WriteByte(b); |
| } |
| |
| public override void WriteI16(short i) |
| { |
| WrappedProtocol.WriteI16(i); |
| } |
| |
| public override void WriteI32(int i) |
| { |
| WrappedProtocol.WriteI32(i); |
| } |
| |
| public override void WriteI64(long l) |
| { |
| WrappedProtocol.WriteI64(l); |
| } |
| |
| public override void WriteDouble(double v) |
| { |
| WrappedProtocol.WriteDouble(v); |
| } |
| |
| public override void WriteString(string s) |
| { |
| WrappedProtocol.WriteString(s); |
| } |
| |
| public override void WriteBinary(byte[] bytes) |
| { |
| WrappedProtocol.WriteBinary(bytes); |
| } |
| |
| public override TMessage ReadMessageBegin() |
| { |
| return WrappedProtocol.ReadMessageBegin(); |
| } |
| |
| public override void ReadMessageEnd() |
| { |
| WrappedProtocol.ReadMessageEnd(); |
| } |
| |
| public override TStruct ReadStructBegin() |
| { |
| return WrappedProtocol.ReadStructBegin(); |
| } |
| |
| public override void ReadStructEnd() |
| { |
| WrappedProtocol.ReadStructEnd(); |
| } |
| |
| public override TField ReadFieldBegin() |
| { |
| return WrappedProtocol.ReadFieldBegin(); |
| } |
| |
| public override void ReadFieldEnd() |
| { |
| WrappedProtocol.ReadFieldEnd(); |
| } |
| |
| public override TMap ReadMapBegin() |
| { |
| return WrappedProtocol.ReadMapBegin(); |
| } |
| |
| public override void ReadMapEnd() |
| { |
| WrappedProtocol.ReadMapEnd(); |
| } |
| |
| public override TList ReadListBegin() |
| { |
| return WrappedProtocol.ReadListBegin(); |
| } |
| |
| public override void ReadListEnd() |
| { |
| WrappedProtocol.ReadListEnd(); |
| } |
| |
| public override TSet ReadSetBegin() |
| { |
| return WrappedProtocol.ReadSetBegin(); |
| } |
| |
| public override void ReadSetEnd() |
| { |
| WrappedProtocol.ReadSetEnd(); |
| } |
| |
| public override bool ReadBool() |
| { |
| return WrappedProtocol.ReadBool(); |
| } |
| |
| public override sbyte ReadByte() |
| { |
| return WrappedProtocol.ReadByte(); |
| } |
| |
| public override short ReadI16() |
| { |
| return WrappedProtocol.ReadI16(); |
| } |
| |
| public override int ReadI32() |
| { |
| return WrappedProtocol.ReadI32(); |
| } |
| |
| public override long ReadI64() |
| { |
| return WrappedProtocol.ReadI64(); |
| } |
| |
| public override double ReadDouble() |
| { |
| return WrappedProtocol.ReadDouble(); |
| } |
| |
| public override string ReadString() |
| { |
| return WrappedProtocol.ReadString(); |
| } |
| |
| public override byte[] ReadBinary() |
| { |
| return WrappedProtocol.ReadBinary(); |
| } |
| } |
| |
| } |