Package org.apache.activemq.kaha.impl.index

Examples of org.apache.activemq.kaha.impl.index.IndexItem


     */
    public synchronized StoreEntry place(Object key, Object value) {
        load();
        try {
            remove(key);
            IndexItem item = write(key, value);
            index.store(key, item);
            indexList.add(item);
            return item;
        } catch (IOException e) {
            LOG.error("Failed trying to place key: " + key, e);
View Full Code Here


     * @param entry
     * @throws IOException
     */
    public synchronized void remove(StoreEntry entry) {
        load();
        IndexItem item = (IndexItem)entry;
        if (item != null) {
            Object key = getKey(item);
            try {
                index.remove(key);
            } catch (IOException e) {
                LOG.error("Failed trying to remove entry: " + entry, e);
                throw new RuntimeException(e);
            }
            IndexItem prev = indexList.getPrevEntry(item);
            IndexItem next = indexList.getNextEntry(item);
            indexList.remove(item);
            delete(item, prev, next);
        }
    }
View Full Code Here

        return indexList.getLast();
    }

    public synchronized StoreEntry getNext(StoreEntry entry) {
        load();
        IndexItem item = (IndexItem)entry;
        return indexList.getNextEntry(item);
    }
View Full Code Here

        return indexList.getNextEntry(item);
    }

    public synchronized StoreEntry getPrevious(StoreEntry entry) {
        load();
        IndexItem item = (IndexItem)entry;
        return indexList.getPrevEntry(item);
    }
View Full Code Here

    protected IndexLinkedList getItemList() {
        return indexList;
    }

    protected synchronized IndexItem write(Object key, Object value) {
        IndexItem index = null;
        try {
            index = indexManager.createNewIndex();
            StoreLocation data = dataManager.storeDataItem(keyMarshaller, key);
            index.setKeyData(data);

            if (value != null) {
                data = dataManager.storeDataItem(valueMarshaller, value);
                index.setValueData(data);
            }
            IndexItem prev = indexList.getLast();
            prev = prev != null ? prev : indexList.getRoot();
            IndexItem next = indexList.getNextEntry(prev);
            prev.setNextItem(index.getOffset());
            index.setPreviousItem(prev.getOffset());
            updateIndexes(prev);
            if (next != null) {
                next.setPreviousItem(index.getOffset());
                index.setNextItem(next.getOffset());
                updateIndexes(next);
            }
            storeIndex(index);
        } catch (IOException e) {
            LOG.error("Failed to write " + key + " , " + value, e);
View Full Code Here

  

    public void writePayload(Object object,DataOutput dataOut) throws IOException{
       TopicSubAck tsa = (TopicSubAck) object;
       dataOut.writeInt(tsa.getCount());
       IndexItem item = (IndexItem)tsa.getMessageEntry();
       dataOut.writeLong(item.getOffset());
       item.write(dataOut);
      
    }
View Full Code Here

    public Object readPayload(DataInput dataIn) throws IOException{
        TopicSubAck tsa = new TopicSubAck();
        int count = dataIn.readInt();
        tsa.setCount(count);
        IndexItem item = new IndexItem();
        item.setOffset(dataIn.readLong());
        item.read(dataIn);
        tsa.setMessageEntry(item);
        return tsa;
    }
View Full Code Here

     * @throws IOException
     * @see org.apache.activemq.kaha.Marshaller#writePayload(java.lang.Object, java.io.DataOutput)
     */
    public void writePayload(Object object,DataOutput dataOut) throws IOException{
       ConsumerMessageRef ref = (ConsumerMessageRef) object;
       IndexItem item = (IndexItem)ref.getMessageEntry();
       dataOut.writeLong(item.getOffset());
       item.write(dataOut);
       item = (IndexItem)ref.getAckEntry();
       dataOut.writeLong(item.getOffset());
       item.write(dataOut);
      
    }
View Full Code Here

     * @throws IOException
     * @see org.apache.activemq.kaha.Marshaller#readPayload(java.io.DataInput)
     */
    public Object readPayload(DataInput dataIn) throws IOException{
        ConsumerMessageRef ref = new ConsumerMessageRef();
        IndexItem item = new IndexItem();
        item.setOffset(dataIn.readLong());
        item.read(dataIn);
        ref.setMessageEntry(item);
        item = new IndexItem();
        item.setOffset(dataIn.readLong());
        item.read(dataIn);
        ref.setAckEntry(item);
        return ref;
    }
View Full Code Here

*/
public class StoreEntryMarshaller implements Marshaller{
  

    public void writePayload(Object object,DataOutput dataOut) throws IOException{
       IndexItem item = (IndexItem)object;
       dataOut.writeLong(item.getOffset());
       item.write(dataOut);
      
    }
View Full Code Here

TOP

Related Classes of org.apache.activemq.kaha.impl.index.IndexItem

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.