public final class org.iq.leveldb.impl.SnapshotSeekingIterator extends org.iq.leveldb.util.AbstractSeekingIterator
{
private final org.iq.leveldb.util.DbIterator iterator;
private final org.iq.leveldb.impl.SnapshotImpl snapshot;
private final java.util.Comparator userComparator;
public void <init>(org.iq.leveldb.util.DbIterator, org.iq.leveldb.impl.SnapshotImpl, java.util.Comparator)
{
org.iq.leveldb.util.DbIterator v;
org.iq.leveldb.impl.SnapshotImpl v, v;
org.iq.leveldb.impl.Version v;
java.util.Comparator v;
org.iq.leveldb.impl.SnapshotSeekingIterator v;
v := @this: org.iq.leveldb.impl.SnapshotSeekingIterator;
v := @parameter: org.iq.leveldb.util.DbIterator;
v := @parameter: org.iq.leveldb.impl.SnapshotImpl;
v := @parameter: java.util.Comparator;
specialinvoke v.<org.iq.leveldb.util.AbstractSeekingIterator: void <init>()>();
v.<org.iq.leveldb.impl.SnapshotSeekingIterator: org.iq.leveldb.util.DbIterator iterator> = v;
v.<org.iq.leveldb.impl.SnapshotSeekingIterator: org.iq.leveldb.impl.SnapshotImpl snapshot> = v;
v.<org.iq.leveldb.impl.SnapshotSeekingIterator: java.util.Comparator userComparator> = v;
v = v.<org.iq.leveldb.impl.SnapshotSeekingIterator: org.iq.leveldb.impl.SnapshotImpl snapshot>;
v = virtualinvoke v.<org.iq.leveldb.impl.SnapshotImpl: org.iq.leveldb.impl.Version getVersion()>();
virtualinvoke v.<org.iq.leveldb.impl.Version: void retain()>();
return;
}
public void close()
{
org.iq.leveldb.impl.Version v;
org.iq.leveldb.impl.SnapshotSeekingIterator v;
org.iq.leveldb.impl.SnapshotImpl v;
v := @this: org.iq.leveldb.impl.SnapshotSeekingIterator;
v = v.<org.iq.leveldb.impl.SnapshotSeekingIterator: org.iq.leveldb.impl.SnapshotImpl snapshot>;
v = virtualinvoke v.<org.iq.leveldb.impl.SnapshotImpl: org.iq.leveldb.impl.Version getVersion()>();
virtualinvoke v.<org.iq.leveldb.impl.Version: void release()>();
return;
}
protected void seekToFirstInternal()
{
org.iq.leveldb.util.DbIterator v;
org.iq.leveldb.impl.SnapshotSeekingIterator v;
v := @this: org.iq.leveldb.impl.SnapshotSeekingIterator;
v = v.<org.iq.leveldb.impl.SnapshotSeekingIterator: org.iq.leveldb.util.DbIterator iterator>;
virtualinvoke v.<org.iq.leveldb.util.DbIterator: void seekToFirst()>();
specialinvoke v.<org.iq.leveldb.impl.SnapshotSeekingIterator: void findNextUserEntry(org.iq.leveldb.util.Slice)>(null);
return;
}
protected void seekInternal(org.iq.leveldb.util.Slice)
{
org.iq.leveldb.util.Slice v;
org.iq.leveldb.impl.ValueType v;
org.iq.leveldb.util.DbIterator v;
org.iq.leveldb.impl.InternalKey v;
org.iq.leveldb.impl.SnapshotImpl v;
long v;
org.iq.leveldb.impl.SnapshotSeekingIterator v;
v := @this: org.iq.leveldb.impl.SnapshotSeekingIterator;
v := @parameter: org.iq.leveldb.util.Slice;
v = v.<org.iq.leveldb.impl.SnapshotSeekingIterator: org.iq.leveldb.util.DbIterator iterator>;
v = new org.iq.leveldb.impl.InternalKey;
v = v.<org.iq.leveldb.impl.SnapshotSeekingIterator: org.iq.leveldb.impl.SnapshotImpl snapshot>;
v = virtualinvoke v.<org.iq.leveldb.impl.SnapshotImpl: long getLastSequence()>();
v = <org.iq.leveldb.impl.ValueType: org.iq.leveldb.impl.ValueType VALUE>;
specialinvoke v.<org.iq.leveldb.impl.InternalKey: void <init>(org.iq.leveldb.util.Slice,long,org.iq.leveldb.impl.ValueType)>(v, v, v);
virtualinvoke v.<org.iq.leveldb.util.DbIterator: void seek(java.lang.Object)>(v);
specialinvoke v.<org.iq.leveldb.impl.SnapshotSeekingIterator: void findNextUserEntry(org.iq.leveldb.util.Slice)>(null);
return;
}
protected java.util.Map$Entry getNextElement()
{
org.iq.leveldb.util.Slice v, v;
java.util.Map$Entry v, v;
org.iq.leveldb.util.DbIterator v, v;
org.iq.leveldb.impl.SnapshotSeekingIterator v;
java.lang.Object v, v, v;
boolean v;
v := @this: org.iq.leveldb.impl.SnapshotSeekingIterator;
v = v.<org.iq.leveldb.impl.SnapshotSeekingIterator: org.iq.leveldb.util.DbIterator iterator>;
v = virtualinvoke v.<org.iq.leveldb.util.DbIterator: boolean hasNext()>();
if v != 0 goto label;
return null;
label:
v = v.<org.iq.leveldb.impl.SnapshotSeekingIterator: org.iq.leveldb.util.DbIterator iterator>;
v = virtualinvoke v.<org.iq.leveldb.util.DbIterator: java.util.Map$Entry next()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = virtualinvoke v.<org.iq.leveldb.impl.InternalKey: org.iq.leveldb.util.Slice getUserKey()>();
specialinvoke v.<org.iq.leveldb.impl.SnapshotSeekingIterator: void findNextUserEntry(org.iq.leveldb.util.Slice)>(v);
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = virtualinvoke v.<org.iq.leveldb.impl.InternalKey: org.iq.leveldb.util.Slice getUserKey()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getValue()>();
v = staticinvoke <com.google.common.collect.Maps: java.util.Map$Entry immutableEntry(java.lang.Object,java.lang.Object)>(v, v);
return v;
}
private void findNextUserEntry(org.iq.leveldb.util.Slice)
{
org.iq.leveldb.util.Slice v, v;
long v, v;
org.iq.leveldb.impl.SnapshotSeekingIterator v;
byte v;
org.iq.leveldb.impl.SnapshotImpl v;
int v;
boolean v, v;
java.util.Map$Entry v;
org.iq.leveldb.impl.ValueType v, v, v, v;
org.iq.leveldb.util.DbIterator v, v, v, v, v;
java.lang.Object v;
java.util.Comparator v;
v := @this: org.iq.leveldb.impl.SnapshotSeekingIterator;
v := @parameter: org.iq.leveldb.util.Slice;
v = v.<org.iq.leveldb.impl.SnapshotSeekingIterator: org.iq.leveldb.util.DbIterator iterator>;
v = virtualinvoke v.<org.iq.leveldb.util.DbIterator: boolean hasNext()>();
if v != 0 goto label;
return;
label:
v = v.<org.iq.leveldb.impl.SnapshotSeekingIterator: org.iq.leveldb.util.DbIterator iterator>;
v = virtualinvoke v.<org.iq.leveldb.util.DbIterator: java.util.Map$Entry peek()>();
v = interfaceinvoke v.<java.util.Map$Entry: java.lang.Object getKey()>();
v = virtualinvoke v.<org.iq.leveldb.impl.InternalKey: long getSequenceNumber()>();
v = v.<org.iq.leveldb.impl.SnapshotSeekingIterator: org.iq.leveldb.impl.SnapshotImpl snapshot>;
v = virtualinvoke v.<org.iq.leveldb.impl.SnapshotImpl: long getLastSequence()>();
v = v cmp v;
if v <= 0 goto label;
v = v.<org.iq.leveldb.impl.SnapshotSeekingIterator: org.iq.leveldb.util.DbIterator iterator>;
virtualinvoke v.<org.iq.leveldb.util.DbIterator: java.util.Map$Entry next()>();
goto label;
label:
v = virtualinvoke v.<org.iq.leveldb.impl.InternalKey: org.iq.leveldb.impl.ValueType getValueType()>();
v = <org.iq.leveldb.impl.ValueType: org.iq.leveldb.impl.ValueType DELETION>;
if v != v goto label;
v = virtualinvoke v.<org.iq.leveldb.impl.InternalKey: org.iq.leveldb.util.Slice getUserKey()>();
goto label;
label:
v = virtualinvoke v.<org.iq.leveldb.impl.InternalKey: org.iq.leveldb.impl.ValueType getValueType()>();
v = <org.iq.leveldb.impl.ValueType: org.iq.leveldb.impl.ValueType VALUE>;
if v != v goto label;
if v == null goto label;
v = v.<org.iq.leveldb.impl.SnapshotSeekingIterator: java.util.Comparator userComparator>;
v = virtualinvoke v.<org.iq.leveldb.impl.InternalKey: org.iq.leveldb.util.Slice getUserKey()>();
v = interfaceinvoke v.<java.util.Comparator: int compare(java.lang.Object,java.lang.Object)>(v, v);
if v <= 0 goto label;
label:
return;
label:
v = v.<org.iq.leveldb.impl.SnapshotSeekingIterator: org.iq.leveldb.util.DbIterator iterator>;
virtualinvoke v.<org.iq.leveldb.util.DbIterator: java.util.Map$Entry next()>();
label:
v = v.<org.iq.leveldb.impl.SnapshotSeekingIterator: org.iq.leveldb.util.DbIterator iterator>;
v = virtualinvoke v.<org.iq.leveldb.util.DbIterator: boolean hasNext()>();
if v != 0 goto label;
return;
}
public java.lang.String toString()
{
org.iq.leveldb.util.DbIterator v;
org.iq.leveldb.impl.SnapshotImpl v;
java.lang.StringBuilder v, v, v;
java.lang.String v;
org.iq.leveldb.impl.SnapshotSeekingIterator v;
v := @this: org.iq.leveldb.impl.SnapshotSeekingIterator;
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("SnapshotSeekingIterator");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("{snapshot=");
v = v.<org.iq.leveldb.impl.SnapshotSeekingIterator: org.iq.leveldb.impl.SnapshotImpl snapshot>;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.Object)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(", iterator=");
v = v.<org.iq.leveldb.impl.SnapshotSeekingIterator: org.iq.leveldb.util.DbIterator iterator>;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.Object)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(125);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
return v;
}
}