📄 snmptargetmib.java
字号:
snmpTargetParamsEntry.addRow(row);
return true;
}
public MOTableRow removeTargetParams(OctetString name) {
OID index = name.toSubIndex(true);
return snmpTargetParamsEntry.removeRow(index);
}
private void createSnmpTargetParamsEntry() {
MOColumn[] snmpTargetParamsEntryColumns = new MOColumn[6];
snmpTargetParamsEntryColumns[idxSnmpTargetParamsMPModel] =
new MOMutableColumn(colSnmpTargetParamsMPModel,
SMIConstants.SYNTAX_INTEGER,
MOAccessImpl.ACCESS_READ_CREATE,
null,
false);
((MOMutableColumn) snmpTargetParamsEntryColumns[idxSnmpTargetParamsMPModel]).
addMOValueValidationListener(new SnmpTargetParamsMPModelValidator());
snmpTargetParamsEntryColumns[idxSnmpTargetParamsSecurityModel] =
new MOMutableColumn(colSnmpTargetParamsSecurityModel,
SMIConstants.SYNTAX_INTEGER,
MOAccessImpl.ACCESS_READ_CREATE,
null,
false);
((MOMutableColumn) snmpTargetParamsEntryColumns[
idxSnmpTargetParamsSecurityModel]).
addMOValueValidationListener(new SnmpTargetParamsSecurityModelValidator());
snmpTargetParamsEntryColumns[idxSnmpTargetParamsSecurityName] =
new SnmpAdminString(colSnmpTargetParamsSecurityName,
MOAccessImpl.ACCESS_READ_CREATE,
null,
false);
snmpTargetParamsEntryColumns[idxSnmpTargetParamsSecurityLevel] =
new Enumerated(colSnmpTargetParamsSecurityLevel,
MOAccessImpl.ACCESS_READ_CREATE,
null,
false,
new int[] {
SnmpTargetParamsSecurityLevelEnum.noAuthNoPriv,
SnmpTargetParamsSecurityLevelEnum.authPriv,
SnmpTargetParamsSecurityLevelEnum.authNoPriv});
snmpTargetParamsEntryColumns[idxSnmpTargetParamsStorageType] =
new StorageType(colSnmpTargetParamsStorageType,
MOAccessImpl.ACCESS_READ_CREATE,
new Integer32(3),
true);
snmpTargetParamsEntryColumns[idxSnmpTargetParamsRowStatus] =
new RowStatus(colSnmpTargetParamsRowStatus,
MOAccessImpl.ACCESS_READ_CREATE);
((RowStatus)snmpTargetParamsEntryColumns[idxSnmpTargetParamsRowStatus]).
addRowStatusListener(new SnmpTargetParamsEntryRowStatusListener());
snmpTargetParamsEntry =
new DefaultMOTable(oidSnmpTargetParamsEntry,
snmpTargetParamsEntryIndex,
snmpTargetParamsEntryColumns);
snmpTargetParamsEntryModel = new DefaultMOMutableTableModel();
snmpTargetParamsEntryModel.setRowFactory(new DefaultMOMutableRow2PCFactory());
snmpTargetParamsEntry.setModel(snmpTargetParamsEntryModel);
}
private void createSnmpTargetAddrEntry() {
MOColumn[] snmpTargetAddrEntryColumns = new MOColumn[8];
snmpTargetAddrEntryColumns[idxSnmpTargetAddrTDomain] =
new MOMutableColumn(colSnmpTargetAddrTDomain,
SMIConstants.SYNTAX_OBJECT_IDENTIFIER,
MOAccessImpl.ACCESS_READ_CREATE,
null,
false);
((MOMutableColumn) snmpTargetAddrEntryColumns[idxSnmpTargetAddrTDomain]).
addMOValueValidationListener(new SnmpTargetAddrTDomainValidator());
snmpTargetAddrEntryColumns[idxSnmpTargetAddrTAddress] =
new MOMutableColumn(colSnmpTargetAddrTAddress,
SMIConstants.SYNTAX_OCTET_STRING,
MOAccessImpl.ACCESS_READ_CREATE,
null,
false);
((MOMutableColumn) snmpTargetAddrEntryColumns[idxSnmpTargetAddrTAddress]).
addMOValueValidationListener(new SnmpTargetAddrTAddressValidator());
snmpTargetAddrEntryColumns[idxSnmpTargetAddrTimeout] =
new MOMutableColumn(colSnmpTargetAddrTimeout,
SMIConstants.SYNTAX_INTEGER,
MOAccessImpl.ACCESS_READ_CREATE,
new Integer32(1500),
true);
((MOMutableColumn) snmpTargetAddrEntryColumns[idxSnmpTargetAddrTimeout]).
addMOValueValidationListener(new SnmpTargetAddrTimeoutValidator());
snmpTargetAddrEntryColumns[idxSnmpTargetAddrRetryCount] =
new MOMutableColumn(colSnmpTargetAddrRetryCount,
SMIConstants.SYNTAX_INTEGER32,
MOAccessImpl.ACCESS_READ_CREATE,
new Integer32(3),
true);
((MOMutableColumn) snmpTargetAddrEntryColumns[idxSnmpTargetAddrRetryCount]).
addMOValueValidationListener(new SnmpTargetAddrRetryCountValidator());
snmpTargetAddrEntryColumns[idxSnmpTargetAddrTagList] =
new SnmpTagList(colSnmpTargetAddrTagList,
MOAccessImpl.ACCESS_READ_CREATE,
new OctetString(new byte[] {}),
true);
snmpTargetAddrEntryColumns[idxSnmpTargetAddrParams] =
new MOMutableColumn(colSnmpTargetAddrParams,
SMIConstants.SYNTAX_OCTET_STRING,
MOAccessImpl.ACCESS_READ_CREATE,
new OctetString(),
true);
((MOMutableColumn) snmpTargetAddrEntryColumns[idxSnmpTargetAddrParams]).
addMOValueValidationListener(new SnmpTargetAddrParamsValidator());
snmpTargetAddrEntryColumns[idxSnmpTargetAddrStorageType] =
new StorageType(colSnmpTargetAddrStorageType,
MOAccessImpl.ACCESS_READ_CREATE,
new Integer32(3),
true);
snmpTargetAddrEntryColumns[idxSnmpTargetAddrRowStatus] =
new RowStatus(colSnmpTargetAddrRowStatus);
snmpTargetAddrEntry =
new DefaultMOTable(oidSnmpTargetAddrEntry,
snmpTargetAddrEntryIndex,
snmpTargetAddrEntryColumns);
snmpTargetAddrEntryModel = new DefaultMOMutableTableModel();
snmpTargetAddrEntryModel.setRowFactory(new SnmpTargetAddrEntryFactory());
snmpTargetAddrEntry.setModel(snmpTargetAddrEntryModel);
}
public void registerMOs(MOServer server, OctetString context) throws
DuplicateRegistrationException {
// Scalar Objects
server.register(this.snmpTargetSpinLock, context);
server.register(this.snmpUnknownContexts, context);
server.register(this.snmpUnavailableContexts, context);
server.register(this.snmpTargetParamsEntry, context);
server.register(this.snmpTargetAddrEntry, context);
}
public void unregisterMOs(MOServer server, OctetString context) {
// Scalar Objects
server.unregister(this.snmpTargetSpinLock, context);
server.unregister(this.snmpUnknownContexts, context);
server.unregister(this.snmpUnavailableContexts, context);
server.unregister(this.snmpTargetParamsEntry, context);
server.unregister(this.snmpTargetAddrEntry, context);
}
class SnmpTargetAddrEntryFactory implements MOTableRowFactory {
public MOTableRow createRow(OID index, Variable[] values) throws
UnsupportedOperationException {
SnmpTargetAddrEntryRow row = new SnmpTargetAddrEntryRow(index, values);
return row;
}
public void freeRow(MOTableRow row) {
}
}
class SnmpTargetParamsEntryRowStatusListener implements RowStatusListener {
public void rowStatusChanged(RowStatusEvent event) {
if (event.getNewStatus() == RowStatus.destroy) {
OID index = event.getRow().getIndex();
OctetString paramsIndex =
(OctetString) snmpTargetParamsEntryIndex.getIndexValues(index)[0];
synchronized (snmpTargetAddrEntryModel) {
for (Iterator it = snmpTargetAddrEntryModel.iterator(); it.hasNext(); ) {
MOTableRow r = (MOTableRow) it.next();
Integer32 rowStatus =
(Integer32) r.getValue(idxSnmpTargetAddrRowStatus);
if ((rowStatus == null) ||
(rowStatus.getValue() != RowStatus.active)) {
continue;
}
if (paramsIndex.equals(r.getValue(idxSnmpTargetAddrParams))) {
event.setDenyReason(SnmpConstants.SNMP_ERROR_INCONSISTENT_VALUE);
return;
}
}
}
}
}
}
public class SnmpTargetAddrEntryRow extends DefaultMOMutableRow2PC {
public SnmpTargetAddrEntryRow(OID index, Variable[] values) {
super(index, values);
updateUserObject(this);
}
private void updateUserObject(MOTableRow changeSet) {
Variable tagList = changeSet.getValue(idxSnmpTargetAddrTagList);
if (tagList != null) {
Set obsolete = (Set) getUserObject();
Set tags = SnmpTagList.getTags((OctetString)tagList);
if (obsolete != null) {
obsolete.removeAll(tags);
}
setUserObject(tags);
updateIndex(obsolete, tags);
}
}
public void commitRow(SubRequest subRequest, MOTableRow changeSet) {
super.commitRow(subRequest, changeSet);
updateUserObject(changeSet);
}
private void updateIndex(Set remove, Set tags) {
if (remove != null) {
for (Iterator it = remove.iterator(); it.hasNext(); ) {
Object next = it.next();
Collection list = (Collection) snmpTargetAddrTagIndex.get(next);
if (list != null) {
synchronized (list) {
if (!list.remove(this)) {
logger.error("Inconsistent tag value '" + next +
"' for rows: " + list);
}
}
}
else {
logger.error("Tag value '" + next + "' not found in tag index");
}
}
}
for (Iterator it = tags.iterator(); it.hasNext(); ) {
Object next = it.next();
Set list = (Set) snmpTargetAddrTagIndex.get(next);
if (list == null) {
list = new HashSet();
}
synchronized (list) {
list.add(this);
}
snmpTargetAddrTagIndex.put(next, list);
}
}
public void prepareRow(SubRequest subRequest, MOTableRow changeSet) {
OID tdomain =
(OID) getResultingValue(idxSnmpTargetAddrTDomain, changeSet);
OctetString taddress =
(OctetString) getResultingValue(idxSnmpTargetAddrTAddress,
changeSet);
if (tdomain != null) {
TDomainAddressFactory factory =
(TDomainAddressFactory) supportedAddressClasses.get(tdomain);
if ((factory == null) || (!factory.isValidAddress(tdomain, taddress))) {
subRequest.getStatus().
setErrorStatus(SnmpConstants.SNMP_ERROR_INCONSISTENT_VALUE);
}
}
else if (taddress != null) {
subRequest.getStatus().
setErrorStatus(SnmpConstants.SNMP_ERROR_INCONSISTENT_VALUE);
}
}
public Address getAddress() {
OID tdomain = (OID) getValue(idxSnmpTargetAddrTDomain);
TDomainAddressFactory factory = (TDomainAddressFactory)
supportedAddressClasses.get(tdomain);
if (factory != null) {
OctetString addr = (OctetString) getValue(idxSnmpTargetAddrTAddress);
return factory.createAddress(tdomain, addr);
}
return null;
}
public OctetString getTAddress(Address address) {
OID tdomain = (OID) getValue(idxSnmpTargetAddrTDomain);
TDomainAddressFactory factory = (TDomainAddressFactory)
supportedAddressClasses.get(tdomain);
OID domain = factory.getTransportDomain(address);
if (!tdomain.equals(domain)) {
return null;
}
return factory.getAddress(address);
}
public Target getTarget(OctetString contextEngineID,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -