本文整理汇总了Java中com.sun.jmx.examples.scandir.ScanManagerMXBean.ScanState类的典型用法代码示例。如果您正苦于以下问题:Java ScanState类的具体用法?Java ScanState怎么用?Java ScanState使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ScanState类属于com.sun.jmx.examples.scandir.ScanManagerMXBean包,在下文中一共展示了ScanState类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: queueStateChangedNotification
import com.sun.jmx.examples.scandir.ScanManagerMXBean.ScanState; //导入依赖的package包/类
/**
* Enqueue a state changed notification for the given states.
**/
private void queueStateChangedNotification(
long sequence,
long time,
ScanState old,
ScanState current) {
final AttributeChangeNotification n =
new AttributeChangeNotification(SCAN_MANAGER_NAME,sequence,time,
"ScanManager State changed to "+current,"State",
ScanState.class.getName(),old.toString(),current.toString());
// Queue the notification. We have created an unlimited queue, so
// this method should always succeed.
try {
if (!pendingNotifs.offer(n,2,TimeUnit.SECONDS)) {
LOG.fine("Can't queue Notification: "+n);
}
} catch (InterruptedException x) {
LOG.fine("Can't queue Notification: "+x);
}
}
示例2: switchState
import com.sun.jmx.examples.scandir.ScanManagerMXBean.ScanState; //导入依赖的package包/类
/**
* Checks that the current state is one of the allowed states,
* and if so, switch its value to the new desired state.
* This operation also enqueue the appropriate state changed
* notification.
**/
private ScanState switchState(ScanState desired,EnumSet<ScanState> allowed) {
final ScanState old;
final long timestamp;
final long sequence;
synchronized(this) {
old = state;
if (!allowed.contains(state))
throw new IllegalStateException(state.toString());
state = desired;
timestamp = System.currentTimeMillis();
sequence = getNextSeqNumber();
}
LOG.fine("switched state: "+old+" -> "+desired);
if (old != desired)
queueStateChangedNotification(sequence,timestamp,old,desired);
return old;
}
示例3: schedule
import com.sun.jmx.examples.scandir.ScanManagerMXBean.ScanState; //导入依赖的package包/类
public void schedule(long delay, long interval) {
if (!sequencer.tryAcquire()) {
throw new IllegalStateException("Can't acquire lock");
}
try {
LOG.fine("scheduling new task: state="+state);
final ScanState old = switchState(SCHEDULED,"schedule");
final boolean scheduled =
scheduleSession(new SessionTask(interval),delay);
if (scheduled)
LOG.fine("new task scheduled: state="+state);
} finally {
sequencer.release();
}
sendQueuedNotifications();
}
示例4: testGetState
import com.sun.jmx.examples.scandir.ScanManagerMXBean.ScanState; //导入依赖的package包/类
/**
* Test of getState method, of class com.sun.jmx.examples.scandir.DirectoryScanner.
*/
public void testGetState() {
System.out.println("getState");
final DirectoryScannerConfig bean =
new DirectoryScannerConfig("test");
bean.setRootDirectory(System.getProperty("java.io.tmpdir"));
final ResultLogManager log = new ResultLogManager();
DirectoryScanner instance =
new DirectoryScanner(bean,log);
ScanState expResult = STOPPED;
ScanState result = instance.getState();
assertEquals(STOPPED, result);
instance.scan();
result = instance.getState();
assertEquals(COMPLETED, result);
}
示例5: testGetState
import com.sun.jmx.examples.scandir.ScanManagerMXBean.ScanState; //导入依赖的package包/类
/**
* Test of getState method, of class com.sun.jmx.examples.scandir.ScanManager.
*/
public void testGetState() throws IOException, InstanceNotFoundException {
System.out.println("getState");
ScanManager instance = new ScanManager();
ScanState expResult = ScanState.STOPPED;
ScanState result = instance.getState();
assertEquals(expResult, result);
instance.start();
final ScanState afterStart = instance.getState();
assertContained(EnumSet.of(RUNNING,SCHEDULED,COMPLETED),afterStart);
instance.stop();
assertEquals(STOPPED,instance.getState());
instance.schedule(1000000L,1000000L);
assertEquals(SCHEDULED,instance.getState());
instance.stop();
assertEquals(STOPPED,instance.getState());
}