/* * Copyright 2014 NAVER Corp. * * Licensed 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. */ package com.navercorp.pinpoint.rpc.stream; import com.navercorp.pinpoint.rpc.packet.stream.StreamCreateFailPacket; import com.navercorp.pinpoint.rpc.util.AssertUtils; import java.util.concurrent.atomic.AtomicReference; /** * @author koo.taejin */ public class ClientStreamChannelContext extends StreamChannelContext { private final ClientStreamChannel clientStreamChannel; private final ClientStreamChannelMessageListener clientStreamChannelMessageListener; private final AtomicReference<StreamCreateFailPacket> createFailPacketReference; public ClientStreamChannelContext(ClientStreamChannel clientStreamChannel, ClientStreamChannelMessageListener clientStreamChannelMessageListener) { AssertUtils.assertNotNull(clientStreamChannel); AssertUtils.assertNotNull(clientStreamChannelMessageListener); this.clientStreamChannel = clientStreamChannel; this.clientStreamChannelMessageListener = clientStreamChannelMessageListener; this.createFailPacketReference = new AtomicReference<StreamCreateFailPacket>(); } @Override public ClientStreamChannel getStreamChannel() { return clientStreamChannel; } public ClientStreamChannelMessageListener getClientStreamChannelMessageListener() { return clientStreamChannelMessageListener; } public StreamCreateFailPacket getCreateFailPacket() { return createFailPacketReference.get(); } public boolean setCreateFailPacket(StreamCreateFailPacket createFailPacket) { return this.createFailPacketReference.compareAndSet(null, createFailPacket); } }