Oss2FileQueue.java 源代码
package com.hichip.data;
import java.io.Serializable;
import java.util.LinkedList;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
public class Oss2FileQueue implements Serializable {
private volatile LinkedList<Oss2File> listData = new LinkedList<>();
private volatile int mSize = 0;
private volatile int FQNum = 100;
private volatile boolean isaddend = false;
Lock lock = new ReentrantLock(true);
public synchronized void setmSize(int i) {
this.FQNum = i;
}
public synchronized int GetmSize() {
return this.FQNum;
}
public synchronized int getCountData() {
return this.listData.size();
}
public synchronized int getCount() {
return this.mSize;
}
public synchronized void addLast(Oss2File oss2File) {
if (oss2File.head.u32Start == oss2File.head.u32End) {
return;
}
this.lock.lock();
Oss2File oss2File2 = null;
this.isaddend = false;
int i = 0;
while (i < this.listData.size()) {
oss2File2 = this.listData.get(i);
if (oss2File2.head.u32Start >= oss2File.head.u32Start) {
break;
} else {
i++;
}
}
if (oss2File2 != null && oss2File2.head.u32Start == oss2File.head.u32Start) {
this.isaddend = true;
this.lock.unlock();
return;
}
if (i == this.listData.size()) {
this.listData.add(oss2File);
} else if (i != 0) {
this.listData.add(i, oss2File);
} else {
this.listData.add(0, oss2File);
}
this.mSize++;
this.isaddend = true;
this.lock.unlock();
}
public synchronized Oss2File Findindexdata(int i, int i2) {
Oss2File oss2File;
this.lock.lock();
oss2File = null;
if (this.isaddend && this.mSize > 0 && this.listData.size() > 0) {
Oss2File oss2File2 = null;
for (int i3 = 0; i3 < this.listData.size(); i3++) {
oss2File2 = this.listData.get(i3);
if (i2 == 0) {
if (oss2File2.head.u32Start <= i && oss2File2.head.u32End > i) {
break;
}
if (oss2File2.head.u32End <= i) {
int i4 = i3 + 1;
if (i4 != this.listData.size()) {
oss2File2 = this.listData.get(i4);
if (oss2File2.head.u32Start > i) {
break;
}
} else {
oss2File2 = null;
}
} else {
continue;
}
} else {
if (oss2File2.head.u32Start >= i) {
break;
break;
}
}
}
oss2File = oss2File2;
}
this.lock.unlock();
return oss2File;
}
public synchronized Oss2File getindexdata(int i) {
Oss2File oss2File;
this.lock.lock();
oss2File = null;
if (this.isaddend && this.mSize > 0 && this.listData.size() > 0 && i <= this.listData.size() && i >= 0) {
oss2File = this.listData.get(i);
}
this.lock.unlock();
return oss2File;
}
public synchronized Oss2File removeindexdata(int i) {
Oss2File oss2File;
this.lock.lock();
oss2File = null;
if (this.isaddend && this.mSize > 0 && this.listData.size() > 0 && i <= this.listData.size() && i >= 0) {
oss2File = this.listData.remove(i);
this.mSize--;
}
this.lock.unlock();
return oss2File;
}
public synchronized boolean removeindexdata(Oss2File oss2File) {
boolean z;
this.lock.lock();
z = false;
if (this.isaddend && this.mSize > 0 && this.listData.size() > 0) {
z = this.listData.remove(oss2File);
this.mSize--;
}
this.lock.unlock();
return z;
}
public synchronized void removeAll() {
this.lock.lock();
if (!this.listData.isEmpty()) {
this.listData.clear();
}
this.mSize = 0;
this.lock.unlock();
}
}