org.apache.cassandra.db.compaction
Class AbstractCompactedRow

java.lang.Object
  extended by org.apache.cassandra.db.compaction.AbstractCompactedRow
Direct Known Subclasses:
EchoedRow, LazilyCompactedRow, PrecompactedRow

public abstract class AbstractCompactedRow
extends java.lang.Object

a CompactedRow is an object that takes a bunch of rows (keys + columnfamilies) and can write a compacted version of those rows to an output stream. It does NOT necessarily require creating a merged CF object in memory.


Field Summary
 DecoratedKey<?> key
           
 
Constructor Summary
AbstractCompactedRow(DecoratedKey<?> key)
           
 
Method Summary
abstract  int columnCount()
           
abstract  boolean isEmpty()
           
abstract  long maxTimestamp()
           
abstract  void update(java.security.MessageDigest digest)
          update @param digest with the data bytes of the row (not including row key or row size).
abstract  long write(java.io.DataOutput out)
          write the row (size + column index + filter + column data, but NOT row key) to @param out.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

key

public final DecoratedKey<?> key
Constructor Detail

AbstractCompactedRow

public AbstractCompactedRow(DecoratedKey<?> key)
Method Detail

write

public abstract long write(java.io.DataOutput out)
                    throws java.io.IOException
write the row (size + column index + filter + column data, but NOT row key) to @param out. It is an error to call this if isEmpty is false. (Because the key is appended first, so we'd have an incomplete row written.) write() may change internal state; it is NOT valid to call write() or update() a second time.

Throws:
java.io.IOException

update

public abstract void update(java.security.MessageDigest digest)
update @param digest with the data bytes of the row (not including row key or row size). May be called even if empty. update() may change internal state; it is NOT valid to call write() or update() a second time.


isEmpty

public abstract boolean isEmpty()
Returns:
true if there are no columns in the row AND there are no row-level tombstones to be preserved

columnCount

public abstract int columnCount()
Returns:
the number of columns in the row

maxTimestamp

public abstract long maxTimestamp()
Returns:
the max column timestamp in the row or Long.MIN_VALUE if computing this value would require extra effort we're not willing to make.


Copyright © 2011 The Apache Software Foundation