📄 dbmodtimes.java
字号:
// You can redistribute this software and/or modify it under the terms of
// the Ozone Core License version 1 published by ozone-db.org.
//
// The original code and portions created by SMB are
// Copyright (C) 1997-@year@ by SMB GmbH. All rights reserved.
//
// $Id: DbModTimes.java,v 1.6 2002/12/29 11:15:56 per_nyfelt Exp $
package org.ozoneDB.core.DbRemote;
import org.ozoneDB.DxLib.*;
import org.ozoneDB.ObjectNotFoundException;
import org.ozoneDB.core.*;
import org.ozoneDB.util.LogWriter;
import java.io.*;
/**
* Determine the modification times of the specified database objects.
*
*
* @author <a href="http://www.softwarebuero.de/">SMB</a>
* @version $Revision: 1.6 $Date: 2002/12/29 11:15:56 $
*/
public final class DbModTimes extends DbCommand implements Externalizable {
private DxArrayBag objectIDs;
public DbModTimes() {
objectIDs = new DxArrayBag();
}
public void addObjectID( ObjectID id ) {
objectIDs.add( id );
}
public void perform( Transaction ta ) throws Exception {
env.logWriter.newEntry( this, "DbModTimes.perform()", LogWriter.DEBUG );
// check (and wait) if a thread runs exclusively; because no
// transaction is involved we have to do this here
env.transactionManager.checkExclusion();
DxMap map = new DxHashMap( objectIDs.count() );
for (int i = 0; i < objectIDs.count(); i++) {
ObjectID id = (ObjectID)objectIDs.elementAtIndex( i );
env.logWriter.newEntry( this, " id:" + id, LogWriter.DEBUG );
ObjectContainer container = env.storeManager.containerForID( ta, id );
if (container == null) {
throw new ObjectNotFoundException( "No such object." );
}
try {
Long modTime = new Long( container.modTime() );
map.addForKey( modTime, id );
} finally {
container.unpin();
}
}
result = map;
}
public void writeExternal( ObjectOutput out ) throws IOException {
out.writeObject( objectIDs );
}
public synchronized void readExternal( ObjectInput in ) throws IOException, ClassNotFoundException {
objectIDs = (DxArrayBag)in.readObject();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -