📄 snmp4jheartbeatmib.java
字号:
}
notificationOriginator.notify(context, oidSnmp4jAgentHBEvent, vbs);
}
// Scalars
public class Snmp4jAgentHBRefTime extends DateAndTimeScalar {
Snmp4jAgentHBRefTime(OID oid, MOAccess access) {
super(oid, access, new OctetString());
//--AgentGen BEGIN=snmp4jAgentHBRefTime
//--AgentGen END
}
public int isValueOK(SubRequest request) {
Variable newValue =
request.getVariableBinding().getVariable();
int valueOK = super.isValueOK(request);
if (valueOK != SnmpConstants.SNMP_ERROR_SUCCESS) {
return valueOK;
}
OctetString os = (OctetString) newValue;
if (!(((os.length() >= 8) && (os.length() <= 8)) ||
((os.length() >= 11) && (os.length() <= 11)))) {
valueOK = SnmpConstants.SNMP_ERROR_WRONG_LENGTH;
}
//--AgentGen BEGIN=snmp4jAgentHBRefTime::isValueOK
//--AgentGen END
return valueOK;
}
public Variable getValue() {
//--AgentGen BEGIN=snmp4jAgentHBRefTime::getValue
GregorianCalendar gc = new GregorianCalendar();
gc.add(Calendar.MILLISECOND, heartbeatOffset);
super.setValue(DateAndTime.makeDateAndTime(gc));
//--AgentGen END
return super.getValue();
}
public int setValue(Variable newValue) {
//--AgentGen BEGIN=snmp4jAgentHBRefTime::setValue
GregorianCalendar gc = DateAndTime.makeCalendar((OctetString) newValue);
GregorianCalendar curGC = new GregorianCalendar();
heartbeatOffset = (int) (gc.getTimeInMillis() - curGC.getTimeInMillis());
//--AgentGen END
return super.setValue(newValue);
}
//--AgentGen BEGIN=snmp4jAgentHBRefTime::_METHODS
//--AgentGen END
}
// Value Validators
/**
* The <code>Snmp4jAgentHBRefTimeValidator</code> implements the value
* validation for <code>Snmp4jAgentHBRefTime</code>.
*/
static class Snmp4jAgentHBRefTimeValidator implements
MOValueValidationListener {
public void validate(MOValueValidationEvent validationEvent) {
Variable newValue = validationEvent.getNewValue();
OctetString os = (OctetString) newValue;
if (!(((os.length() >= 8) && (os.length() <= 8)) ||
((os.length() >= 11) && (os.length() <= 11)))) {
validationEvent.setValidationStatus(SnmpConstants.
SNMP_ERROR_WRONG_LENGTH);
return;
}
//--AgentGen BEGIN=snmp4jAgentHBRefTime::validate
//--AgentGen END
}
}
/**
* The <code>Snmp4jAgentHBCtrlStartTimeValidator</code> implements the value
* validation for <code>Snmp4jAgentHBCtrlStartTime</code>.
*/
static class Snmp4jAgentHBCtrlStartTimeValidator implements
MOValueValidationListener {
public void validate(MOValueValidationEvent validationEvent) {
Variable newValue = validationEvent.getNewValue();
OctetString os = (OctetString) newValue;
if (!(((os.length() >= 8) && (os.length() <= 8)) ||
((os.length() >= 11) && (os.length() <= 11)))) {
validationEvent.setValidationStatus(SnmpConstants.
SNMP_ERROR_WRONG_LENGTH);
return;
}
//--AgentGen BEGIN=snmp4jAgentHBCtrlStartTime::validate
//--AgentGen END
}
}
/**
* The <code>Snmp4jAgentHBCtrlDelayValidator</code> implements the value
* validation for <code>Snmp4jAgentHBCtrlDelay</code>.
*/
static class Snmp4jAgentHBCtrlDelayValidator implements
MOValueValidationListener {
public void validate(MOValueValidationEvent validationEvent) {
Variable newValue = validationEvent.getNewValue();
//--AgentGen BEGIN=snmp4jAgentHBCtrlDelay::validate
//--AgentGen END
}
}
/**
* The <code>Snmp4jAgentHBCtrlPeriodValidator</code> implements the value
* validation for <code>Snmp4jAgentHBCtrlPeriod</code>.
*/
static class Snmp4jAgentHBCtrlPeriodValidator implements
MOValueValidationListener {
public void validate(MOValueValidationEvent validationEvent) {
Variable newValue = validationEvent.getNewValue();
//--AgentGen BEGIN=snmp4jAgentHBCtrlPeriod::validate
//--AgentGen END
}
}
// Rows and Factories
public class Snmp4jAgentHBCtrlEntryRow extends DefaultMOMutableRow2PC {
public Snmp4jAgentHBCtrlEntryRow(OID index, Variable[] values) {
super(index, values);
}
public OctetString getSnmp4jAgentHBCtrlStartTime() {
return (OctetString) getValue(idxSnmp4jAgentHBCtrlStartTime);
}
public void setSnmp4jAgentHBCtrlStartTime(OctetString newValue) {
setValue(idxSnmp4jAgentHBCtrlStartTime, newValue);
}
public UnsignedInteger32 getSnmp4jAgentHBCtrlDelay() {
return (UnsignedInteger32) getValue(idxSnmp4jAgentHBCtrlDelay);
}
public void setSnmp4jAgentHBCtrlDelay(UnsignedInteger32 newValue) {
setValue(idxSnmp4jAgentHBCtrlDelay, newValue);
}
public UnsignedInteger32 getSnmp4jAgentHBCtrlPeriod() {
return (UnsignedInteger32) getValue(idxSnmp4jAgentHBCtrlPeriod);
}
public void setSnmp4jAgentHBCtrlPeriod(UnsignedInteger32 newValue) {
setValue(idxSnmp4jAgentHBCtrlPeriod, newValue);
}
public UnsignedInteger32 getSnmp4jAgentHBCtrlMaxEvents() {
return (UnsignedInteger32) getValue(idxSnmp4jAgentHBCtrlMaxEvents);
}
public void setSnmp4jAgentHBCtrlMaxEvents(UnsignedInteger32 newValue) {
setValue(idxSnmp4jAgentHBCtrlMaxEvents, newValue);
}
public Counter64 getSnmp4jAgentHBCtrlEvents() {
return (Counter64) getValue(idxSnmp4jAgentHBCtrlEvents);
}
public void setSnmp4jAgentHBCtrlEvents(Counter64 newValue) {
setValue(idxSnmp4jAgentHBCtrlEvents, newValue);
}
public TimeTicks getSnmp4jAgentHBCtrlLastChange() {
return (TimeTicks) getValue(idxSnmp4jAgentHBCtrlLastChange);
}
public void setSnmp4jAgentHBCtrlLastChange(TimeTicks newValue) {
setValue(idxSnmp4jAgentHBCtrlLastChange, newValue);
}
public Integer32 getSnmp4jAgentHBCtrlStorageType() {
return (Integer32) getValue(idxSnmp4jAgentHBCtrlStorageType);
}
public void setSnmp4jAgentHBCtrlStorageType(Integer32 newValue) {
setValue(idxSnmp4jAgentHBCtrlStorageType, newValue);
}
public Integer32 getSnmp4jAgentHBCtrlRowStatus() {
return (Integer32) getValue(idxSnmp4jAgentHBCtrlRowStatus);
}
public void setSnmp4jAgentHBCtrlRowStatus(Integer32 newValue) {
setValue(idxSnmp4jAgentHBCtrlRowStatus, newValue);
}
//--AgentGen BEGIN=snmp4jAgentHBCtrlEntry::Row
//--AgentGen END
}
class Snmp4jAgentHBCtrlEntryRowFactory extends DefaultMOMutableRow2PCFactory {
public synchronized MOTableRow createRow(OID index, Variable[] values) throws
UnsupportedOperationException {
Snmp4jAgentHBCtrlEntryRow row = new Snmp4jAgentHBCtrlEntryRow(index,
values);
//--AgentGen BEGIN=snmp4jAgentHBCtrlEntry::createRow
row.setSnmp4jAgentHBCtrlLastChange(sysUpTime.get());
row.setSnmp4jAgentHBCtrlEvents(new Counter64(0));
//--AgentGen END
return row;
}
public synchronized void freeRow(MOTableRow row) {
//--AgentGen BEGIN=snmp4jAgentHBCtrlEntry::freeRow
//--AgentGen END
}
//--AgentGen BEGIN=snmp4jAgentHBCtrlEntry::RowFactory
//--AgentGen END
}
//--AgentGen BEGIN=_METHODS
public void rowStatusChanged(RowStatusEvent event) {
if (event.isDeniable()) {
if (event.isRowActivated()) {
// check column interdependent consistency
Snmp4jAgentHBCtrlEntryRow row =
(Snmp4jAgentHBCtrlEntryRow) event.getRow();
if ((row.getSnmp4jAgentHBCtrlDelay().getValue() == 0) &&
((row.getSnmp4jAgentHBCtrlStartTime() == null) ||
(DateAndTime.makeCalendar(
row.getSnmp4jAgentHBCtrlStartTime()).getTimeInMillis()
<= System.currentTimeMillis()))) {
event.setDenyReason(PDU.inconsistentValue);
}
}
}
else if (event.isRowActivated()) {
Snmp4jAgentHBCtrlEntryRow row =
(Snmp4jAgentHBCtrlEntryRow) event.getRow();
HeartbeatTask task = new HeartbeatTask(row);
if (row.getSnmp4jAgentHBCtrlDelay().getValue() == 0) {
long startTime = DateAndTime.makeCalendar(
row.getSnmp4jAgentHBCtrlStartTime()).getTimeInMillis() -
heartbeatOffset;
heartbeatTimer.schedule(task,
new Date(startTime),
row.getSnmp4jAgentHBCtrlPeriod().getValue());
}
else {
heartbeatTimer.schedule(task,
row.getSnmp4jAgentHBCtrlDelay().getValue(),
row.getSnmp4jAgentHBCtrlPeriod().getValue());
}
row.setUserObject(task);
}
else if (event.isRowDeactivated()) {
Snmp4jAgentHBCtrlEntryRow row =
(Snmp4jAgentHBCtrlEntryRow) event.getRow();
HeartbeatTask task = (HeartbeatTask) row.getUserObject();
if (task != null) {
task.cancel();
}
}
}
public void rowChanged(MOTableRowEvent event) {
if (event.getRow() != null) {
Snmp4jAgentHBCtrlEntryRow row =
(Snmp4jAgentHBCtrlEntryRow) event.getRow();
if (row.getSnmp4jAgentHBCtrlLastChange() != null) {
row.getSnmp4jAgentHBCtrlLastChange().setValue(sysUpTime.get().getValue());
}
}
}
//--AgentGen END
//--AgentGen BEGIN=_CLASSES
class HeartbeatTask extends TimerTask {
private Snmp4jAgentHBCtrlEntryRow configRow;
public HeartbeatTask(Snmp4jAgentHBCtrlEntryRow configRow) {
this.configRow = configRow;
}
public void run() {
if (configRow.getSnmp4jAgentHBCtrlRowStatus().getValue() ==
RowStatus.active) {
long maxEvents = configRow.getSnmp4jAgentHBCtrlMaxEvents().getValue();
if ((maxEvents > 0) &&
(configRow.getSnmp4jAgentHBCtrlEvents().getValue() < maxEvents)) {
configRow.getSnmp4jAgentHBCtrlEvents().increment();
OID instanceOID =
((DefaultMOTable) snmp4jAgentHBCtrlEntry).
getCellOID(configRow.getIndex(),
idxSnmp4jAgentHBCtrlEvents);
VariableBinding eventVB = new VariableBinding(instanceOID,
configRow.getSnmp4jAgentHBCtrlEvents());
snmp4jAgentHBEvent(notificationOriginator, context,
new VariableBinding[] {eventVB});
}
else {
cancel();
configRow.getSnmp4jAgentHBCtrlRowStatus().setValue(RowStatus.notInService);
}
}
else {
cancel();
}
}
}
//--AgentGen END
//--AgentGen BEGIN=_END
//--AgentGen END
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -