/*
*
* 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.
*
*/
using System;
namespace Qpid.Buffer
{
public class FixedByteBuffer
{
private HeapByteBuffer _buf;
public FixedByteBuffer(int capacity)
{
_buf = new HeapByteBuffer(capacity);
}
public FixedByteBuffer(byte[] bytes)
{
_buf = HeapByteBuffer.wrap(bytes);
}
public static FixedByteBuffer wrap(byte[] array)
{
return new FixedByteBuffer(array);
}
public static FixedByteBuffer wrap(byte[] array, int offset, int length)
{
throw new NotImplementedException();
}
public ByteOrder order()
{
return ByteOrder.LittleEndian;
}
public void order(ByteOrder bo)
{
// Ignore endianess.
}
public void compact()
{
_buf.Compact();
}
public char getChar()
{
throw new NotImplementedException();
}
public char getChar(int index)
{
throw new NotImplementedException();
}
public void putChar(char value)
{
throw new NotImplementedException();
}
public void putChar(int index, char value)
{
throw new NotImplementedException();
}
public bool isDirect()
{
return false;
}
public bool isReadOnly()
{
throw new NotImplementedException();
}
public int capacity()
{
return _buf.Capacity;
}
public int limit()
{
return _buf.Limit;
}
public int limit(int limit)
{
int previousLimit = _buf.Limit;
_buf.Limit = limit;
return previousLimit;
}
public int position()
{
return _buf.Position;
}
public int position(int newPosition)
{
int prev = _buf.Position;
_buf.Position = newPosition;
return prev;
}
public void mark()
{
throw new NotImplementedException();
}
public static FixedByteBuffer allocateDirect(int capacity)
{
throw new NotImplementedException();
}
public static FixedByteBuffer allocate(int capacity)
{
return new FixedByteBuffer(capacity);
}
public void clear()
{
_buf.Clear();
}
public void put(byte b)
{
_buf.Put(b);
}
public void put(int index, byte b)
{
throw new NotImplementedException();
}
public void put(FixedByteBuffer buf)
{
_buf.Put(buf.array(), buf.position(), buf.limit() - buf.position());
}
public FixedByteBuffer duplicate()
{
throw new NotImplementedException();
}
public FixedByteBuffer slice()
{
throw new NotImplementedException();
}
public FixedByteBuffer asReadOnlyBuffer()
{
throw new NotImplementedException();
}
///
/// Returns backing array.
///
///
public byte[] array()
{
return _buf.array();
}
public int arrayOffset()
{
throw new NotImplementedException();
}
public void reset()
{
throw new NotImplementedException();
}
public void flip()
{
_buf.Flip();
}
public void rewind()
{
_buf.Rewind();
}
public byte get()
{
return _buf.Get();
}
public byte get(int index)
{
throw new NotImplementedException();
}
public short getShort()
{
return _buf.GetShort();
}
public short getShort(int index)
{
throw new NotImplementedException();
}
public void putShort(short value)
{
_buf.Put(value);
}
public void putShort(int index, short value)
{
throw new NotImplementedException();
}
public int getInt()
{
return _buf.GetInt();
}
public int getInt(int index)
{
throw new NotImplementedException();
}
public void putInt(int value)
{
_buf.Put(value);
}
public void putInt(int index, int value)
{
throw new NotImplementedException();
}
public ByteBuffer get(byte[] dst, int offset, int length)
{
throw new NotImplementedException();
}
public ByteBuffer put(byte[] src, int offset, int length)
{
throw new NotImplementedException();
}
public long getLong()
{
return _buf.GetLong();
}
public long getLong(int index)
{
throw new NotImplementedException();
}
public void putLong(long value)
{
_buf.Put(value);
}
public void putLong(int index, long value)
{
throw new NotImplementedException();
}
public int remaining()
{
return _buf.Remaining;
}
public float getFloat()
{
return _buf.GetFloat();
}
public float getFloat(int index)
{
throw new NotImplementedException();
}
public void putFloat(float value)
{
_buf.Put(value);
}
public void putFloat(int index, float value)
{
throw new NotImplementedException();
}
public double getDouble()
{
return _buf.GetDouble();
}
public double getDouble(int index)
{
throw new NotImplementedException();
}
public void putDouble(double value)
{
_buf.Put(value);
}
public void putDouble(int index, double value)
{
throw new NotImplementedException();
}
public ushort getUnsignedShort()
{
return _buf.GetUnsignedShort();
}
public uint getUnsignedInt()
{
return _buf.GetUnsignedInt();
}
public void get(byte[] dst)
{
_buf.Get(dst);
}
public void put(ushort value)
{
_buf.Put(value);
}
public void put(uint max)
{
_buf.Put(max);
}
public void put(ulong tag)
{
_buf.Put(tag);
}
public void put(byte[] src)
{
_buf.Put(src);
}
public ulong getUnsignedLong()
{
return _buf.GetUnsignedLong();
}
}
}