KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > snmp4j > agent > agentx > master > AgentXMib


1 /*_############################################################################
2   _##
3   _## SNMP4J-AgentX - AgentXMib.java
4   _##
5   _## Copyright (C) 2005-2007 Frank Fock (SNMP4J.org)
6   _##
7   _## This program is free software; you can redistribute it and/or modify
8   _## it under the terms of the GNU General Public License version 2 as
9   _## published by the Free Software Foundation.
10   _##
11   _## This program is distributed in the hope that it will be useful,
12   _## but WITHOUT ANY WARRANTY; without even the implied warranty of
13   _## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14   _## GNU General Public License for more details.
15   _##
16   _## You should have received a copy of the GNU General Public License
17   _## along with this program; if not, write to the Free Software
18   _## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19   _## MA 02110-1301 USA
20   _##
21   _##########################################################################*/

22
23
24 package org.snmp4j.agent.agentx.master;
25
26 //--AgentGen BEGIN=_BEGIN
27
//--AgentGen END
28

29 import org.snmp4j.smi.*;
30 import org.snmp4j.mp.SnmpConstants;
31 import org.snmp4j.agent.*;
32 import org.snmp4j.agent.mo.*;
33 import org.snmp4j.agent.mo.snmp.*;
34 import org.snmp4j.agent.mo.snmp.smi.*;
35 import org.snmp4j.agent.request.*;
36 import org.snmp4j.log.LogFactory;
37 import org.snmp4j.log.LogAdapter;
38
39 //--AgentGen BEGIN=_IMPORT
40
import org.snmp4j.agent.agentx.AgentXProtocol;
41 import org.snmp4j.agent.agentx.AgentXPeer;
42 import org.snmp4j.agent.util.IndexGenerator;
43 import org.snmp4j.agent.agentx.master.AgentXMib.AgentxConnectionEntryRow;
44 import org.snmp4j.agent.agentx.master.AgentXMib.AgentxRegistrationEntryRow;
45 import org.snmp4j.agent.mo.snmp.tc.TruthValueTC;
46 //--AgentGen END
47

48 public class AgentXMib
49 //--AgentGen BEGIN=_EXTENDS
50
//--AgentGen END
51
implements MOGroup, AgentXMasterListener, MOTableModelListener
52 //--AgentGen BEGIN=_IMPLEMENTS
53
//--AgentGen END
54
{
55
56   private static final LogAdapter LOGGER =
57       LogFactory.getLogger(AgentXMib.class);
58
59 //--AgentGen BEGIN=_STATIC
60
//--AgentGen END
61

62   // Factory
63
private static MOFactory moFactory = DefaultMOFactory.getInstance();
64
65   // Constants
66
static final OID oidAgentxDefaultTimeout =
67     new OID(new int[] { 1,3,6,1,2,1,74,1,1,1,0 });
68   static final OID oidAgentxMasterAgentXVer =
69     new OID(new int[] { 1,3,6,1,2,1,74,1,1,2,0 });
70   static final OID oidAgentxConnTableLastChange =
71     new OID(new int[] { 1,3,6,1,2,1,74,1,2,1,0 });
72   static final OID oidAgentxSessionTableLastChange =
73     new OID(new int[] { 1,3,6,1,2,1,74,1,3,1,0 });
74   static final OID oidAgentxRegistrationTableLastChange =
75     new OID(new int[] { 1,3,6,1,2,1,74,1,4,1,0 });
76
77   // TextualConventions
78
private static final String JavaDoc TC_MODULE_SNMPV2_TC = "SNMPv2-TC";
79   private static final String JavaDoc TC_TIMESTAMP = "TimeStamp";
80
81   // Scalars
82
private MOScalar agentxDefaultTimeout;
83   private MOScalar agentxMasterAgentXVer;
84   private MOScalar agentxConnTableLastChange;
85   private MOScalar agentxSessionTableLastChange;
86   private MOScalar agentxRegistrationTableLastChange;
87
88   // Tables
89
static final OID oidAgentxConnectionEntry =
90     new OID(new int[] { 1,3,6,1,2,1,74,1,2,2,1 });
91
92   // Column sub-identifer defintions for agentxConnectionEntry:
93
static final int colAgentxConnOpenTime = 2;
94   static final int colAgentxConnTransportDomain = 3;
95   static final int colAgentxConnTransportAddress = 4;
96
97   // Column index defintions for agentxConnectionEntry:
98
static final int idxAgentxConnOpenTime = 0;
99   static final int idxAgentxConnTransportDomain = 1;
100   static final int idxAgentxConnTransportAddress = 2;
101
102   private static final MOTableSubIndex[] agentxConnectionEntryIndexes =
103     new MOTableSubIndex[] {
104         moFactory.createSubIndex(SMIConstants.SYNTAX_INTEGER, 1, 1) };
105
106   private static final MOTableIndex agentxConnectionEntryIndex =
107       moFactory.createIndex(agentxConnectionEntryIndexes,
108                             false,
109                             new MOTableIndexValidator() {
110     public boolean isValidIndex(OID index) {
111       boolean isValidIndex = true;
112      //--AgentGen BEGIN=agentxConnectionEntry::isValidIndex
113
//--AgentGen END
114
return isValidIndex;
115     }
116   });
117
118
119   private MOTable agentxConnectionEntry;
120   private MOMutableTableModel agentxConnectionEntryModel;
121   static final OID oidAgentxSessionEntry =
122     new OID(new int[] { 1,3,6,1,2,1,74,1,3,2,1 });
123
124   // Column sub-identifer defintions for agentxSessionEntry:
125
static final int colAgentxSessionObjectID = 2;
126   static final int colAgentxSessionDescr = 3;
127   static final int colAgentxSessionAdminStatus = 4;
128   static final int colAgentxSessionOpenTime = 5;
129   static final int colAgentxSessionAgentXVer = 6;
130   static final int colAgentxSessionTimeout = 7;
131
132   // Column index defintions for agentxSessionEntry:
133
static final int idxAgentxSessionObjectID = 0;
134   static final int idxAgentxSessionDescr = 1;
135   static final int idxAgentxSessionAdminStatus = 2;
136   static final int idxAgentxSessionOpenTime = 3;
137   static final int idxAgentxSessionAgentXVer = 4;
138   static final int idxAgentxSessionTimeout = 5;
139
140   private static final MOTableSubIndex[] agentxSessionEntryIndexes =
141     new MOTableSubIndex[] {
142         moFactory.createSubIndex(SMIConstants.SYNTAX_INTEGER, 1, 1),
143         moFactory.createSubIndex(SMIConstants.SYNTAX_INTEGER, 1, 1) };
144
145   private static final MOTableIndex agentxSessionEntryIndex =
146       moFactory.createIndex(agentxSessionEntryIndexes,
147                             false,
148                             new MOTableIndexValidator() {
149     public boolean isValidIndex(OID index) {
150       boolean isValidIndex = true;
151      //--AgentGen BEGIN=agentxSessionEntry::isValidIndex
152
//--AgentGen END
153
return isValidIndex;
154     }
155   });
156
157
158   private MOTable agentxSessionEntry;
159   private MOMutableTableModel agentxSessionEntryModel;
160   static final OID oidAgentxRegistrationEntry =
161     new OID(new int[] { 1,3,6,1,2,1,74,1,4,2,1 });
162
163   // Column sub-identifer defintions for agentxRegistrationEntry:
164
static final int colAgentxRegContext = 2;
165   static final int colAgentxRegStart = 3;
166   static final int colAgentxRegRangeSubId = 4;
167   static final int colAgentxRegUpperBound = 5;
168   static final int colAgentxRegPriority = 6;
169   static final int colAgentxRegTimeout = 7;
170   static final int colAgentxRegInstance = 8;
171
172   // Column index defintions for agentxRegistrationEntry:
173
static final int idxAgentxRegContext = 0;
174   static final int idxAgentxRegStart = 1;
175   static final int idxAgentxRegRangeSubId = 2;
176   static final int idxAgentxRegUpperBound = 3;
177   static final int idxAgentxRegPriority = 4;
178   static final int idxAgentxRegTimeout = 5;
179   static final int idxAgentxRegInstance = 6;
180
181   private static final MOTableSubIndex[] agentxRegistrationEntryIndexes =
182     new MOTableSubIndex[] {
183         moFactory.createSubIndex(SMIConstants.SYNTAX_INTEGER, 1, 1),
184         moFactory.createSubIndex(SMIConstants.SYNTAX_INTEGER, 1, 1),
185         moFactory.createSubIndex(SMIConstants.SYNTAX_INTEGER, 1, 1) };
186
187   private static final MOTableIndex agentxRegistrationEntryIndex =
188       moFactory.createIndex(agentxRegistrationEntryIndexes,
189                             false,
190                             new MOTableIndexValidator() {
191     public boolean isValidIndex(OID index) {
192       boolean isValidIndex = true;
193      //--AgentGen BEGIN=agentxRegistrationEntry::isValidIndex
194
//--AgentGen END
195
return isValidIndex;
196     }
197   });
198
199
200   private MOTable agentxRegistrationEntry;
201   private MOMutableTableModel agentxRegistrationEntryModel;
202
203
204 //--AgentGen BEGIN=_MEMBERS
205

206   private AgentXCommandProcessor agentXProcessor;
207
208   private IndexGenerator connIndexGenerator =
209       new IndexGenerator(new UnsignedInteger32(1));
210   private IndexGenerator regEntryIndexGenerator =
211       new IndexGenerator(new UnsignedInteger32(1));
212   private TDomainAddressFactory addrFactory = new TDomainAddressFactoryImpl();
213
214 //--AgentGen END
215

216   protected AgentXMib() {
217     agentxDefaultTimeout =
218       moFactory.createScalar(oidAgentxDefaultTimeout,
219                              MOAccessImpl.ACCESS_READ_ONLY, new Integer32());
220     agentxDefaultTimeout.setVolatile(true);
221     agentxMasterAgentXVer =
222       moFactory.createScalar(oidAgentxMasterAgentXVer,
223                              MOAccessImpl.ACCESS_READ_ONLY, new Integer32());
224     agentxMasterAgentXVer.setVolatile(true);
225     agentxConnTableLastChange =
226       moFactory.createScalar(oidAgentxConnTableLastChange,
227                              MOAccessImpl.ACCESS_READ_ONLY, new TimeTicks(),
228                              TC_MODULE_SNMPV2_TC, TC_TIMESTAMP);
229     agentxConnTableLastChange.setVolatile(true);
230     agentxSessionTableLastChange =
231       moFactory.createScalar(oidAgentxSessionTableLastChange,
232                              MOAccessImpl.ACCESS_READ_ONLY, new TimeTicks(),
233                              TC_MODULE_SNMPV2_TC, TC_TIMESTAMP);
234     agentxSessionTableLastChange.setVolatile(true);
235     agentxRegistrationTableLastChange =
236       moFactory.createScalar(oidAgentxRegistrationTableLastChange,
237                              MOAccessImpl.ACCESS_READ_ONLY, new TimeTicks(),
238                              TC_MODULE_SNMPV2_TC, TC_TIMESTAMP);
239     agentxRegistrationTableLastChange.setVolatile(true);
240     createAgentxConnectionEntry();
241     createAgentxSessionEntry();
242     createAgentxRegistrationEntry();
243     //--AgentGen BEGIN=_DEFAULTCONSTRUCTOR
244
//--AgentGen END
245
}
246
247   //--AgentGen BEGIN=_CONSTRUCTORS
248
public AgentXMib(AgentXCommandProcessor agentXProcessor) {
249     this();
250     this.agentXProcessor = agentXProcessor;
251     VariantVariableCallback agentxDefaultTimeoutCallback =
252         new ReadonlyVariableCallback() {
253       public void updateVariable(VariantVariable variable) {
254         variable.setValue(AgentXMib.this.agentXProcessor.getDefaultTimeout());
255       }
256     };
257     agentxDefaultTimeout.setValue(new VariantVariable(new Integer32(),
258         agentxDefaultTimeoutCallback));
259     agentxMasterAgentXVer.setValue(
260       new Integer32(agentXProcessor.getAgentXVersion()));
261     ((DefaultMOMutableTableModel)
262      agentxConnectionEntryModel).addMOTableModelListener(this);
263     ((DefaultMOMutableTableModel)
264      agentxSessionEntryModel).addMOTableModelListener(this);
265     ((DefaultMOMutableTableModel)
266      agentxRegistrationEntryModel).addMOTableModelListener(this);
267   }
268   //--AgentGen END
269

270
271   public MOTable getAgentxConnectionEntry() {
272     return agentxConnectionEntry;
273   }
274
275
276   private void createAgentxConnectionEntry() {
277     MOColumn[] agentxConnectionEntryColumns = new MOColumn[3];
278     agentxConnectionEntryColumns[idxAgentxConnOpenTime] =
279       moFactory.createColumn(colAgentxConnOpenTime,
280                              SMIConstants.SYNTAX_TIMETICKS,
281                              MOAccessImpl.ACCESS_READ_ONLY);
282     agentxConnectionEntryColumns[idxAgentxConnTransportDomain] =
283       moFactory.createColumn(colAgentxConnTransportDomain,
284                              SMIConstants.SYNTAX_OBJECT_IDENTIFIER,
285                              MOAccessImpl.ACCESS_READ_ONLY);
286     agentxConnectionEntryColumns[idxAgentxConnTransportAddress] =
287       moFactory.createColumn(colAgentxConnTransportAddress,
288                              SMIConstants.SYNTAX_OCTET_STRING,
289                              MOAccessImpl.ACCESS_READ_ONLY);
290
291     agentxConnectionEntryModel = new DefaultMOMutableTableModel();
292     agentxConnectionEntryModel.setRowFactory(new AgentxConnectionEntryRowFactory());
293     agentxConnectionEntry =
294       moFactory.createTable(oidAgentxConnectionEntry,
295                             agentxConnectionEntryIndex,
296                             agentxConnectionEntryColumns,
297                             agentxConnectionEntryModel);
298     if (agentxConnectionEntry instanceof DefaultMOTable) {
299       ((DefaultMOTable)agentxConnectionEntry).setVolatile(true);
300     }
301   }
302
303   public MOTable getAgentxSessionEntry() {
304     return agentxSessionEntry;
305   }
306
307
308   private void createAgentxSessionEntry() {
309     MOColumn[] agentxSessionEntryColumns = new MOColumn[6];
310     agentxSessionEntryColumns[idxAgentxSessionObjectID] =
311       moFactory.createColumn(colAgentxSessionObjectID,
312                              SMIConstants.SYNTAX_OBJECT_IDENTIFIER,
313                              MOAccessImpl.ACCESS_READ_ONLY);
314     agentxSessionEntryColumns[idxAgentxSessionDescr] =
315       moFactory.createColumn(colAgentxSessionDescr,
316                              SMIConstants.SYNTAX_OCTET_STRING,
317                              MOAccessImpl.ACCESS_READ_ONLY);
318     agentxSessionEntryColumns[idxAgentxSessionAdminStatus] =
319       new Enumerated(colAgentxSessionAdminStatus,
320                      MOAccessImpl.ACCESS_READ_WRITE,
321                      null,
322                      true);
323     ValueConstraint agentxSessionAdminStatusVC = new EnumerationConstraint(
324                      new int[] { AgentxSessionAdminStatusEnum.up,
325                                  AgentxSessionAdminStatusEnum.down });
326     ((MOMutableColumn)agentxSessionEntryColumns[idxAgentxSessionAdminStatus]).
327       addMOValueValidationListener(new ValueConstraintValidator(agentxSessionAdminStatusVC));
328     ((MOMutableColumn)agentxSessionEntryColumns[idxAgentxSessionAdminStatus]).
329       addMOValueValidationListener(new AgentxSessionAdminStatusValidator());
330     agentxSessionEntryColumns[idxAgentxSessionOpenTime] =
331       moFactory.createColumn(colAgentxSessionOpenTime,
332                              SMIConstants.SYNTAX_TIMETICKS,
333                              MOAccessImpl.ACCESS_READ_ONLY);
334     agentxSessionEntryColumns[idxAgentxSessionAgentXVer] =
335       moFactory.createColumn(colAgentxSessionAgentXVer,
336                              SMIConstants.SYNTAX_INTEGER,
337                              MOAccessImpl.ACCESS_READ_ONLY);
338     agentxSessionEntryColumns[idxAgentxSessionTimeout] =
339       moFactory.createColumn(colAgentxSessionTimeout,
340                              SMIConstants.SYNTAX_INTEGER,
341                              MOAccessImpl.ACCESS_READ_ONLY);
342
343     agentxSessionEntryModel = new DefaultMOMutableTableModel();
344     agentxSessionEntryModel.setRowFactory(new AgentxSessionEntryRowFactory());
345     agentxSessionEntry =
346       moFactory.createTable(oidAgentxSessionEntry,
347                             agentxSessionEntryIndex,
348                             agentxSessionEntryColumns,
349                             agentxSessionEntryModel);
350     if (agentxSessionEntry instanceof DefaultMOTable) {
351       ((DefaultMOTable)agentxSessionEntry).setVolatile(true);
352     }
353   }
354
355   public MOTable getAgentxRegistrationEntry() {
356     return agentxRegistrationEntry;
357   }
358
359
360   private void createAgentxRegistrationEntry() {
361     MOColumn[] agentxRegistrationEntryColumns = new MOColumn[7];
362     agentxRegistrationEntryColumns[idxAgentxRegContext] =
363       moFactory.createColumn(colAgentxRegContext,
364                              SMIConstants.SYNTAX_OCTET_STRING,
365                              MOAccessImpl.ACCESS_READ_ONLY);
366     agentxRegistrationEntryColumns[idxAgentxRegStart] =
367       moFactory.createColumn(colAgentxRegStart,
368                              SMIConstants.SYNTAX_OBJECT_IDENTIFIER,
369                              MOAccessImpl.ACCESS_READ_ONLY);
370     agentxRegistrationEntryColumns[idxAgentxRegRangeSubId] =
371       moFactory.createColumn(colAgentxRegRangeSubId,
372                              SMIConstants.SYNTAX_GAUGE32,
373                              MOAccessImpl.ACCESS_READ_ONLY);
374     agentxRegistrationEntryColumns[idxAgentxRegUpperBound] =
375       moFactory.createColumn(colAgentxRegUpperBound,
376                              SMIConstants.SYNTAX_GAUGE32,
377                              MOAccessImpl.ACCESS_READ_ONLY);
378     agentxRegistrationEntryColumns[idxAgentxRegPriority] =
379       moFactory.createColumn(colAgentxRegPriority,
380                              SMIConstants.SYNTAX_GAUGE32,
381                              MOAccessImpl.ACCESS_READ_ONLY);
382     agentxRegistrationEntryColumns[idxAgentxRegTimeout] =
383       moFactory.createColumn(colAgentxRegTimeout,
384                              SMIConstants.SYNTAX_INTEGER,
385                              MOAccessImpl.ACCESS_READ_ONLY);
386     agentxRegistrationEntryColumns[idxAgentxRegInstance] =
387       moFactory.createColumn(colAgentxRegInstance,
388                              SMIConstants.SYNTAX_INTEGER,
389                              MOAccessImpl.ACCESS_READ_ONLY);
390
391     agentxRegistrationEntryModel = new DefaultMOMutableTableModel();
392     agentxRegistrationEntryModel.setRowFactory(new AgentxRegistrationEntryRowFactory());
393     agentxRegistrationEntry =
394       moFactory.createTable(oidAgentxRegistrationEntry,
395                             agentxRegistrationEntryIndex,
396                             agentxRegistrationEntryColumns,
397                             agentxRegistrationEntryModel);
398     if (agentxRegistrationEntry instanceof DefaultMOTable) {
399       ((DefaultMOTable)agentxRegistrationEntry).setVolatile(true);
400     }
401   }
402
403
404
405   public void registerMOs(MOServer server, OctetString context)
406     throws DuplicateRegistrationException
407   {
408     // Scalar Objects
409
server.register(this.agentxDefaultTimeout, context);
410     server.register(this.agentxMasterAgentXVer, context);
411     server.register(this.agentxConnTableLastChange, context);
412     server.register(this.agentxSessionTableLastChange, context);
413     server.register(this.agentxRegistrationTableLastChange, context);
414     server.register(this.agentxConnectionEntry, context);
415     server.register(this.agentxSessionEntry, context);
416     server.register(this.agentxRegistrationEntry, context);
417 //--AgentGen BEGIN=_registerMOs
418
((TimeStampScalar)
419      agentxConnTableLastChange).setSysUpTime(SNMPv2MIB.getSysUpTime(context));
420     ((TimeStampScalar)
421      agentxSessionTableLastChange).setSysUpTime(SNMPv2MIB.getSysUpTime(context));
422     ((TimeStampScalar)
423      agentxRegistrationTableLastChange).setSysUpTime(SNMPv2MIB.getSysUpTime(context));
424 //--AgentGen END
425
}
426
427   public void unregisterMOs(MOServer server, OctetString context) {
428     // Scalar Objects
429
server.unregister(this.agentxDefaultTimeout, context);
430     server.unregister(this.agentxMasterAgentXVer, context);
431     server.unregister(this.agentxConnTableLastChange, context);
432     server.unregister(this.agentxSessionTableLastChange, context);
433     server.unregister(this.agentxRegistrationTableLastChange, context);
434     server.unregister(this.agentxConnectionEntry, context);
435     server.unregister(this.agentxSessionEntry, context);
436     server.unregister(this.agentxRegistrationEntry, context);
437 //--AgentGen BEGIN=_unregisterMOs
438
//--AgentGen END
439
}
440
441   // Notifications
442

443   // Scalars
444

445   // Value Validators
446

447   /**
448    * The <code>AgentxSessionAdminStatusValidator</code> implements the value
449    * validation for <code>AgentxSessionAdminStatus</code>.
450    */

451   static class AgentxSessionAdminStatusValidator implements MOValueValidationListener {
452
453     public void validate(MOValueValidationEvent validationEvent) {
454       Variable newValue = validationEvent.getNewValue();
455      //--AgentGen BEGIN=agentxSessionAdminStatus::validate
456
//--AgentGen END
457
}
458   }
459
460   // Enumerations
461

462   public static final class AgentxSessionAdminStatusEnum {
463     public static final int up = 1;
464     public static final int down = 2;
465   }
466
467   // Rows and Factories
468
class AgentxConnectionEntryRowFactory
469         extends DefaultMOMutableRow2PCFactory
470   {
471     public synchronized MOTableRow createRow(OID index, Variable[] values)
472         throws UnsupportedOperationException JavaDoc
473     {
474       AgentxConnectionEntryRow row = new AgentxConnectionEntryRow(index, values);
475      //--AgentGen BEGIN=agentxConnectionEntry::createRow
476
//--AgentGen END
477
return row;
478     }
479
480     public synchronized void freeRow(MOTableRow row) {
481      //--AgentGen BEGIN=agentxConnectionEntry::freeRow
482
//--AgentGen END
483
}
484   }
485
486   class AgentxConnectionEntryRow extends DefaultMOMutableRow2PC {
487     public AgentxConnectionEntryRow(OID index, Variable[] values) {
488       super(index, values);
489     }
490
491     public TimeTicks getAgentxConnOpenTime() {
492       return (TimeTicks) getValue(idxAgentxConnOpenTime);
493     }
494
495     public void setAgentxConnOpenTime(TimeTicks newValue) {
496       setValue(idxAgentxConnOpenTime, newValue);
497     }
498
499     public OID getAgentxConnTransportDomain() {
500       return (OID) getValue(idxAgentxConnTransportDomain);
501     }
502
503     public void setAgentxConnTransportDomain(OID newValue) {
504       setValue(idxAgentxConnTransportDomain, newValue);
505     }
506
507     public OctetString getAgentxConnTransportAddress() {
508       return (OctetString) getValue(idxAgentxConnTransportAddress);
509     }
510
511     public void setAgentxConnTransportAddress(OctetString newValue) {
512       setValue(idxAgentxConnTransportAddress, newValue);
513     }
514
515
516      //--AgentGen BEGIN=agentxConnectionEntry::RowFactory
517
//--AgentGen END
518
}
519
520   class AgentxSessionEntryRowFactory
521         extends DefaultMOMutableRow2PCFactory
522   {
523     public synchronized MOTableRow createRow(OID index, Variable[] values)
524         throws UnsupportedOperationException JavaDoc
525     {
526       AgentxSessionEntryRow row = new AgentxSessionEntryRow(index, values);
527      //--AgentGen BEGIN=agentxSessionEntry::createRow
528
//--AgentGen END
529
return row;
530     }
531
532     public synchronized void freeRow(MOTableRow row) {
533      //--AgentGen BEGIN=agentxSessionEntry::freeRow
534
//--AgentGen END
535
}
536   }
537
538   class AgentxSessionEntryRow extends DefaultMOMutableRow2PC {
539     public AgentxSessionEntryRow(OID index, Variable[] values) {
540       super(index, values);
541     }
542
543     public OID getAgentxSessionObjectID() {
544       return (OID) getValue(idxAgentxSessionObjectID);
545     }
546
547     public void setAgentxSessionObjectID(OID newValue) {
548       setValue(idxAgentxSessionObjectID, newValue);
549     }
550
551     public OctetString getAgentxSessionDescr() {
552       return (OctetString) getValue(idxAgentxSessionDescr);
553     }
554
555     public void setAgentxSessionDescr(OctetString newValue) {
556       setValue(idxAgentxSessionDescr, newValue);
557     }
558
559     public Integer32 getAgentxSessionAdminStatus() {
560       return (Integer32) getValue(idxAgentxSessionAdminStatus);
561     }
562
563     public void setAgentxSessionAdminStatus(Integer32 newValue) {
564       setValue(idxAgentxSessionAdminStatus, newValue);
565     }
566
567     public TimeTicks getAgentxSessionOpenTime() {
568       return (TimeTicks) getValue(idxAgentxSessionOpenTime);
569     }
570
571     public void setAgentxSessionOpenTime(TimeTicks newValue) {
572       setValue(idxAgentxSessionOpenTime, newValue);
573     }
574
575     public Integer32 getAgentxSessionAgentXVer() {
576       return (Integer32) getValue(idxAgentxSessionAgentXVer);
577     }
578
579     public void setAgentxSessionAgentXVer(Integer32 newValue) {
580       setValue(idxAgentxSessionAgentXVer, newValue);
581     }
582
583     public Integer32 getAgentxSessionTimeout() {
584       return (Integer32) getValue(idxAgentxSessionTimeout);
585     }
586
587     public void setAgentxSessionTimeout(Integer32 newValue) {
588       setValue(idxAgentxSessionTimeout, newValue);
589     }
590
591
592      //--AgentGen BEGIN=agentxSessionEntry::RowFactory
593
//--AgentGen END
594
}
595
596   class AgentxRegistrationEntryRowFactory
597         extends DefaultMOMutableRow2PCFactory
598   {
599     public synchronized MOTableRow createRow(OID index, Variable[] values)
600         throws UnsupportedOperationException JavaDoc
601     {
602       AgentxRegistrationEntryRow row = new AgentxRegistrationEntryRow(index, values);
603      //--AgentGen BEGIN=agentxRegistrationEntry::createRow
604
//--AgentGen END
605
return row;
606     }
607
608     public synchronized void freeRow(MOTableRow row) {
609      //--AgentGen BEGIN=agentxRegistrationEntry::freeRow
610
//--AgentGen END
611
}
612   }
613
614   class AgentxRegistrationEntryRow extends DefaultMOMutableRow2PC {
615     public AgentxRegistrationEntryRow(OID index, Variable[] values) {
616       super(index, values);
617     }
618
619     public OctetString getAgentxRegContext() {
620       return (OctetString) getValue(idxAgentxRegContext);
621     }
622
623     public void setAgentxRegContext(OctetString newValue) {
624       setValue(idxAgentxRegContext, newValue);
625     }
626
627     public OID getAgentxRegStart() {
628       return (OID) getValue(idxAgentxRegStart);
629     }
630
631     public void setAgentxRegStart(OID newValue) {
632       setValue(idxAgentxRegStart, newValue);
633     }
634
635     public UnsignedInteger32 getAgentxRegRangeSubId() {
636       return (UnsignedInteger32) getValue(idxAgentxRegRangeSubId);
637     }
638
639     public void setAgentxRegRangeSubId(UnsignedInteger32 newValue) {
640       setValue(idxAgentxRegRangeSubId, newValue);
641     }
642
643     public UnsignedInteger32 getAgentxRegUpperBound() {
644       return (UnsignedInteger32) getValue(idxAgentxRegUpperBound);
645     }
646
647     public void setAgentxRegUpperBound(UnsignedInteger32 newValue) {
648       setValue(idxAgentxRegUpperBound, newValue);
649     }
650
651     public UnsignedInteger32 getAgentxRegPriority() {
652       return (UnsignedInteger32) getValue(idxAgentxRegPriority);
653     }
654
655     public void setAgentxRegPriority(UnsignedInteger32 newValue) {
656       setValue(idxAgentxRegPriority, newValue);
657     }
658
659     public Integer32 getAgentxRegTimeout() {
660       return (Integer32) getValue(idxAgentxRegTimeout);
661     }
662
663     public void setAgentxRegTimeout(Integer32 newValue) {
664       setValue(idxAgentxRegTimeout, newValue);
665     }
666
667     public Integer32 getAgentxRegInstance() {
668       return (Integer32) getValue(idxAgentxRegInstance);
669     }
670
671     public void setAgentxRegInstance(Integer32 newValue) {
672       setValue(idxAgentxRegInstance, newValue);
673     }
674
675
676      //--AgentGen BEGIN=agentxRegistrationEntry::RowFactory
677
//--AgentGen END
678
}
679
680
681
682 //--AgentGen BEGIN=_METHODS
683
public void masterChanged(AgentXMasterEvent event) {
684     switch (event.getType()) {
685       case AgentXMasterEvent.PEER_ADDED: {
686         AgentXPeer changedPeer = (AgentXPeer) event.getChangedObject();
687         Address addr = changedPeer.getAddress();
688         AgentxConnectionEntryRow row = (AgentxConnectionEntryRow)
689             agentxConnectionEntry.createRow(connIndexGenerator.getNextSubIndex());
690         agentxConnectionEntry.addRow(row);
691         row.setAgentxConnOpenTime(((TimeStampScalar)agentxConnTableLastChange).
692                                   getSysUpTime().get());
693         row.setAgentxConnTransportAddress(addrFactory.getAddress(addr));
694         row.setAgentxConnTransportDomain(addrFactory.getTransportDomain(addr));
695         changedPeer.setId(row.getIndex());
696         break;
697       }
698       case AgentXMasterEvent.PEER_REMOVED: {
699         AgentXPeer changedPeer = (AgentXPeer) event.getChangedObject();
700         if (changedPeer != null) {
701           OID index = (OID) changedPeer.getId();
702           OID next = index.nextPeer();
703           agentxConnectionEntry.removeRow(index);
704           ((DefaultMOMutableTableModel) agentxSessionEntryModel).
705               removeRows(index, next);
706           ((DefaultMOMutableTableModel) agentxRegistrationEntryModel).
707               removeRows(index, next);
708         }
709         break;
710       }
711       case AgentXMasterEvent.SESSION_ADDED: {
712         AgentXMasterSession session =
713             (AgentXMasterSession)event.getChangedObject();
714         OID index = new OID((OID)session.getPeer().getId());
715         index.append(session.getSessionID());
716         AgentxSessionEntryRow row = (AgentxSessionEntryRow)
717             agentxSessionEntry.createRow(index);
718         row.setAgentxSessionAdminStatus(
719             new Integer32(AgentxSessionAdminStatusEnum.up));
720         row.setAgentxSessionAgentXVer(new Integer32(session.getAgentXVersion()));
721         row.setAgentxSessionDescr(session.getDescr());
722         row.setAgentxSessionObjectID(session.getOid());
723         row.setAgentxSessionOpenTime(((TimeStampScalar)agentxSessionTableLastChange).
724                                      getSysUpTime().get());
725         row.setAgentxSessionTimeout(new Integer32(session.getTimeout() & 0xFF));
726         agentxSessionEntry.addRow(row);
727         break;
728       }
729       case AgentXMasterEvent.SESSION_REMOVED: {
730         AgentXMasterSession session =
731             (AgentXMasterSession)event.getChangedObject();
732         OID index = new OID((OID)session.getPeer().getId());
733         index.append(session.getSessionID());
734         agentxSessionEntry.removeRow(index);
735         break;
736       }
737       case AgentXMasterEvent.REGISTRATION_ADDED: {
738         AgentXRegEntry entry = (AgentXRegEntry)event.getChangedObject();
739         AgentXMasterSession session = entry.getSession();
740         AgentXPeer peer = session.getPeer();
741         if (peer.getId() == null) {
742           LOGGER.error("Peer ID is null for peer "+peer+
743                        ", cannot add registration "+
744                        entry+" to AgentXMIB");
745         }
746         else {
747           OID index = new OID((OID)peer.getId());
748           index.append(session.getSessionID());
749           index.append(regEntryIndexGenerator.getNextSubIndex());
750           entry.setId(index);
751           AgentxRegistrationEntryRow row = (AgentxRegistrationEntryRow)
752               agentxRegistrationEntry.createRow(index);
753           row.setAgentxRegContext(entry.getContext());
754           Integer32 singleOID =
755               TruthValueTC.getValue(entry.getRegion().isSingleOID());
756           row.setAgentxRegInstance(singleOID);
757           row.setAgentxRegPriority(new UnsignedInteger32(entry.getPriority()));
758           row.setAgentxRegRangeSubId(
759               new UnsignedInteger32(entry.getRegion().getRangeSubID()));
760           row.setAgentxRegStart(entry.getRegion().getLowerBound());
761           row.setAgentxRegTimeout(new Integer32(entry.getTimeout()));
762           row.setAgentxRegUpperBound(
763               new UnsignedInteger32(entry.getRegion().getUpperBoundSubID()));
764           agentxRegistrationEntry.addRow(row);
765         }
766         break;
767       }
768       case AgentXMasterEvent.REGISTRATION_REMOVED: {
769         AgentXRegEntry entry = (AgentXRegEntry)event.getChangedObject();
770         OID index = entry.getId();
771         if (index == null) {
772           LOGGER.warn("Registration has been removed that was not previously "+
773                       "added to the AgentXMib: "+entry);
774         }
775         else {
776           agentxRegistrationEntry.removeRow(index);
777         }
778         break;
779       }
780       default: {
781         if (LOGGER.isDebugEnabled()) {
782           LOGGER.debug("Unrecognized master change event: " + event);
783         }
784       }
785     }
786   }
787
788   public void tableModelChanged(MOTableModelEvent changeEvent) {
789     Object JavaDoc source = changeEvent.getSource();
790     if (source.equals(agentxConnectionEntryModel)) {
791       ((UpdatableManagedObject)agentxConnTableLastChange).update();
792     }
793     else if (source.equals(agentxSessionEntryModel)) {
794       ((UpdatableManagedObject)agentxSessionTableLastChange).update();
795     }
796     else if (source.equals(agentxRegistrationEntryModel)) {
797       ((UpdatableManagedObject)agentxRegistrationTableLastChange).update();
798     }
799   }
800
801   //--AgentGen END
802

803 //--AgentGen BEGIN=_CLASSES
804
//--AgentGen END
805

806 //--AgentGen BEGIN=_END
807
//--AgentGen END
808
}
809
810
811
Popular Tags