[SNMP4J] MOTable

Frank Fock fock at agentpp.com
Wed Oct 11 22:36:46 CEST 2006


Are you sure that you are implementing your own
MOTableModel? It seems to me (because you are
registering real rows) that you are using the
DefaultMOMutableTableModel.

I meant to implement a class that only creates
TableRow instances when required (thus on-the-fly).

Best regards,
Frank

Jose Ignacio wrote:
> Thanks, but I was already using MOMutableTableModel. I have:
> 
> public class TiSnmpTableVar extends DefaultMOTable{
>    private Object    mObject;
>    private Method    mMethod;
> 
>    public TiSnmpTableVar(OID oid, MOTableIndex moTableIndex, MOColumn[]
> moColumn)
>    {
>        super(oid, moTableIndex, moColumn);
>        ....
>    }
> 
>    public Variable getValue (OID oid, int row)
>    {
>        try{
>            return (Variable) mMethod.invoke(mObject, new Object[] { new
> Integer(oid), new Integer(row) });
>        } ....
> 
>        return null;
>    }
> }
> 
> And I use it with:
> 
>        MOTableSubIndex[] subIndexes = new MOTableSubIndex[] { new
> MOTableSubIndex(SMIConstants.SYNTAX_INTEGER) };
>        MOTableIndex indexDef = new MOTableIndex(subIndexes, false);
> 
>        MOColumn[] columns = new MOColumn[2];
>        int c = 0;
>        columns[c++] = new MOColumn(c, SMIConstants.SYNTAX_OCTET_STRING,
> MOAccessImpl.ACCESS_READ_ONLY); // ifIndex
>        columns[c++] = new MOMutableColumn(c, SMIConstants.SYNTAX_INTEGER32,
> MOAccessImpl.ACCESS_READ_WRITE, null); // ifAdminStatuls
> 
>        DefaultMOTable myTable = new TiSnmpTableVar(new OID("
> 1.3.6.1.4.1.4444.2.9"), indexDef, columns);
>        MOMutableTableModel model = (MOMutableTableModel) myTable.getModel
> ();
>        Variable[] rowValues1 = new Variable[] { new OctetString("TiSac"),
> new Integer32(45) };
>        Variable[] rowValues2 = new Variable[] { new OctetString("TiKnows"),
> new Integer32(2) };
>        Variable[] rowValues3 = new Variable[] { new OctetString("TiFlows"),
> new Integer32(5) };
>        model.addRow(new DefaultMOMutableRow2PC(new OID("1"), rowValues1));
>        model.addRow(new DefaultMOMutableRow2PC(new OID("2"), rowValues2));
>        model.addRow(new DefaultMOMutableRow2PC(new OID("3"), rowValues3));
> 
> // (DefaultMOServer) mServer
> mServer.register(myTable , null);
> 
> 
> Then, I need to register all the rows in the table, but I can't do that
> because I don't know any value. What I need is that when the server 
> receives
> a 1.3.6.1.4.1.4444.2.9.*.* GET request the server asks the value to the
> TiSnmpTable object.
> 
> 
> 
> On 10/10/06, Frank Fock <fock at agentpp.com> wrote:
>>
>> Hello Jose,
>>
>> For virtual table instrumentation implement the MOTableModel and
>> use a DefaultMOTable instance with that model. This is by far
>> better and a lot easier than implementing your own command processor
>> (even better than doing that, would be implementing a sub-class
>> of ManagedObject).
>>
>> Best regards,
>> Frank
>>
>> Jose Ignacio wrote:
>> > Hello, now I have a more interesting problem.I think it's better to
>> explain
>> > with an example:
>> >
>> > I need to send 'user id' with 'users last loggin'. I do it with
>> MyMOTable
>> > (that extends DefaultTable). getValue method calls getCell(row,col)
>> method
>> > from class Users and that one returns the Variable result.
>> >
>> > The problem is that the number of users is unknown so I can't register
>> all
>> > rows on the table (I can't use a listener because now the values are in
>> a
>> > table, but later they can be in memory, ...). I have thought to write a
>> > commandProcessor wich sends all requests that begins with the table OID
>> to
>> > class Users.
>> >
>> > For exameple: If we have oid 1.2.3 for the table, then all request for
>> > 1.2.3.* are sent to Users class.
>> >
>> >
>> > Thanks
>> > --
>> > Jose Ignacio
>> > _______________________________________________
>> > SNMP4J mailing list
>> > SNMP4J at agentpp.org
>> > http://lists.agentpp.org/mailman/listinfo/snmp4j
>>
>> -- 
>> AGENT++
>> http://www.agentpp.com
>> http://www.mibexplorer.com
>> http://www.mibdesigner.com
>>
>>
> _______________________________________________
> SNMP4J mailing list
> SNMP4J at agentpp.org
> http://lists.agentpp.org/mailman/listinfo/snmp4j

-- 
AGENT++
http://www.agentpp.com
http://www.mibexplorer.com
http://www.mibdesigner.com




More information about the SNMP4J mailing list