/// 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. part of thrift; /// Adapted from the C# version. class TMultiplexedProtocol extends TProtocolDecorator { static const SEPARATOR = ':'; final String _serviceName; TMultiplexedProtocol(TProtocol protocol, String serviceName) : _serviceName = serviceName, super(protocol) { if (serviceName == null) { throw new ArgumentError.notNull("serviceName"); } } void writeMessageBegin(TMessage message) { if (message.type == TMessageType.CALL || message.type == TMessageType.ONEWAY) { String name = _serviceName + SEPARATOR + message.name; message = new TMessage(name, message.type, message.seqid); } super.writeMessageBegin(message); } }