package test.codec.http2.decode;
import java.net.InetSocketAddress;
import java.nio.ByteBuffer;
import java.util.Collection;
import java.util.LinkedList;
import com.firefly.net.ByteBufferArrayOutputEntry;
import com.firefly.net.OutputEntry;
import com.firefly.net.Session;
import com.firefly.net.buffer.FileRegion;
import com.firefly.utils.concurrent.Callback;
import com.firefly.utils.io.BufferUtils;
public class HTTP2MockSession implements Session {
private Object attachment;
public LinkedList<ByteBuffer> outboundData = new LinkedList<>();
private boolean isOpen = true;
@Override
public void attachObject(Object attachment) {
this.attachment = attachment;
}
@Override
public Object getAttachment() {
return attachment;
}
@Override
public void fireReceiveMessage(Object message) {
// TODO Auto-generated method stub
}
@Override
public void encode(Object message) {
if (message instanceof ByteBufferArrayOutputEntry) {
ByteBufferArrayOutputEntry outputEntry = (ByteBufferArrayOutputEntry) message;
write(outputEntry);
}
}
@Override
public int getSessionId() {
// TODO Auto-generated method stub
return 0;
}
@Override
public long getOpenTime() {
// TODO Auto-generated method stub
return 0;
}
@Override
public long getLastReadTime() {
// TODO Auto-generated method stub
return 0;
}
@Override
public long getLastWrittenTime() {
// TODO Auto-generated method stub
return 0;
}
@Override
public long getLastActiveTime() {
// TODO Auto-generated method stub
return 0;
}
@Override
public long getReadBytes() {
// TODO Auto-generated method stub
return 0;
}
@Override
public long getWrittenBytes() {
// TODO Auto-generated method stub
return 0;
}
@Override
public void close() {
isOpen = false;
}
@Override
public Session.State getState() {
// TODO Auto-generated method stub
return State.OPEN;
}
@Override
public boolean isOpen() {
return isOpen;
}
@Override
public InetSocketAddress getLocalAddress() {
// TODO Auto-generated method stub
return null;
}
@Override
public InetSocketAddress getRemoteAddress() {
// TODO Auto-generated method stub
return null;
}
@Override
public void write(ByteBuffer byteBuffer, Callback callback) {
outboundData.offer(byteBuffer);
byteBuffer.flip();
callback.succeeded();
}
@Override
public void write(ByteBuffer[] buffers, Callback callback) {
for(ByteBuffer buffer : buffers) {
outboundData.offer(buffer);
buffer.flip();
}
callback.succeeded();
}
@Override
public void write(Collection<ByteBuffer> buffers, Callback callback) {
write(buffers.toArray(BufferUtils.EMPTY_BYTE_BUFFER_ARRAY), callback);
}
@Override
public void write(FileRegion file, Callback callback) {
// TODO Auto-generated method stub
}
@Override
public void write(OutputEntry<?> entry) {
ByteBufferArrayOutputEntry outputEntry = (ByteBufferArrayOutputEntry)entry;
write(outputEntry.getData(), outputEntry.getCallback());
}
@Override
public void closeNow() {
isOpen = false;
}
@Override
public void shutdownOutput() {
// TODO Auto-generated method stub
}
@Override
public void shutdownInput() {
// TODO Auto-generated method stub
}
@Override
public long getCloseTime() {
// TODO Auto-generated method stub
return 0;
}
@Override
public long getDuration() {
// TODO Auto-generated method stub
return 0;
}
@Override
public long getIdleTimeout() {
// TODO Auto-generated method stub
return 0;
}
}