MibBrowser Class

Properties   Methods   Events   Config Settings   Errors  

The MIBBrowser class is used to parse SNMP MIB Module definitions.

Syntax

MibBrowser

Remarks

The MIBBrowser class allows easy loading and querying of definitions in the SNMP Management Information Base (MIB) specifications.

The LoadMib method allows loading of MIB modules, which get stored in an internal tree structure for further queries.

If modules reference (import) other modules, recursive loading of modules is performed automatically and/or controlled by the ImportSymbols event.

The MIB tree is navigated through the SelectNode method, which enables pointing to a node in the tree specified by NodeOid and NodeLabel. Other node information is provided through the NodeModuleName, NodeFileName, NodeSyntax, NodeType, and NodeAccess properties.

The node selector parameter in SelectNode can be a label such as "internet", an OID such as "1.3.6.4", a combination of the two: "iso.3.dod.internet", or a label in a particular module such as "RFC1213-MIB!interfaces".

Node children and successors are provided by the ListChildren and ListSuccessors methods. The individual node information is provided via the MibNode event.

Module traps are listed via the ListTraps method. The individual trap information is provided through the TrapNode event.

Property List


The following is the full list of the properties of the class with short descriptions. Click on the links for further details.

ExactMatchControls the way the OID matching is done (complete or partial).
NodeAccessThe access permissions for the selected node.
NodeDescriptionTextual description of the selected node.
NodeFileNameThe absolute path of the file where the selected node is declared.
NodeFullLabelThe full label of the selected node.
NodeIndexThe index of the node in a table.
NodeLabelThe label of the selected node.
NodeModuleNameThe name of the module where the selected node is declared.
NodeOidThe Object ID of the selected node.
NodeSubIdThe SubId of the currently selected node.
NodeSyntaxThe syntax of the selected node.
NodeSyntaxStringThe node syntax of the selected node in text format.
NodeTypeThe type of the selected node.
NodeTypeStringThe node type of the selected node in text format.

Method List


The following is the full list of the methods of the class with short descriptions. Click on the links for further details.

ConfigSets or retrieves a configuration setting.
ListChildrenLists the immediate children of the selected node.
ListSuccessorsLists all successors of the selected node.
ListTrapsLists all the traps defined in the loaded modules.
LoadMibParses the file FileName and adds the parsed nodes to the collection of existing nodes.
ResetReset all properties of the class.
SelectNodeUsed to select individual nodes in the loaded MIB module(s).

Event List


The following is the full list of the events fired by the class with short descriptions. Click on the links for further details.

ErrorErrors that occur while loading/parsing MIB modules are fired through this event.
ImportSymbolsList of imported symbols and the respective modules where they are declared.
MibNodeThis event fires once for every child or successor of the currently selected node when invoking ListChildren or ListSuccessors .
TrapNodeLists module trap information.

Config Settings


The following is a list of config settings for the class with short descriptions. Click on the links for further details.

AutoLoadMibsDetermines whether imported MIB modules are loaded automatically.
CacheDescriptionsControls caching of Node descriptions.
CacheMibsControls MIB module caching.
CheckNoKnownRootsControls whether or not the class fails when a file with no known root is loaded.
DisplayHintThe DISPLAY-HINT property for the current node.
MibExtensionsControls the file extensions that the class will search for.
NodeIsColumnarWhether the current node is columnar.
NodeIsScalarWhether the current node is scalar.
ReleaseTempNodesWill release any temporary nodes stored by the class.
ReturnEnumValuesComma-separated list of the current node's enumeration textual-conventions.
UndefinedSymbolsComma-separated list of nodes that have not been resolved.
BuildInfoInformation about the product's build.
CodePageThe system code page used for Unicode to Multibyte translations.
LicenseInfoInformation about the current license.
MaskSensitiveWhether sensitive data is masked in log messages.
ProcessIdleEventsWhether the class uses its internal event loop to process events when the main thread is idle.
SelectWaitMillisThe length of time in milliseconds the class will wait when DoEvents is called if there are no events to process.
UseInternalSecurityAPITells the class whether or not to use the system security libraries or an internal implementation.

ExactMatch Property (MibBrowser Class)

Controls the way the OID matching is done (complete or partial).

Syntax

ANSI (Cross Platform)
int GetExactMatch();
int SetExactMatch(int bExactMatch); Unicode (Windows) BOOL GetExactMatch();
INT SetExactMatch(BOOL bExactMatch);
int ipworkssnmp_mibbrowser_getexactmatch(void* lpObj);
int ipworkssnmp_mibbrowser_setexactmatch(void* lpObj, int bExactMatch);
bool GetExactMatch();
int SetExactMatch(bool bExactMatch);

Default Value

TRUE

Remarks

If ExactMatch is set to True, the SelectNode method will try to find an exact match for the supplied selector. If not found, an exception will be thrown.

If ExactMatch is set to False, the SelectNode method will start from the root (iso) and will go as far as it can, finding the closest match for the requested node.

For instance, in SNMPv2-MIB sysUpTime is defined as "1.3.6.1.2.1.1.3". If ExactMatch is False, calling SelectNode with selector "1.3.6.1.2.1.1.3.0" will populate NodeLabel with "sysUpTime.0" while the same call with ExactMatch set to True will fail since that exact OID is not defined in the MIB.

Data Type

Boolean

NodeAccess Property (MibBrowser Class)

The access permissions for the selected node.

Syntax

ANSI (Cross Platform)
int GetNodeAccess();

Unicode (Windows)
INT GetNodeAccess();

Possible Values

ACC_UNKNOWN(0), 
ACC_NO_ACCESS(1),
ACC_READ_ONLY(2),
ACC_READ_CREATE(3),
ACC_READ_WRITE(4),
ACC_WRITE_ONLY(5),
ACC_FOR_NOTIFY(6)
int ipworkssnmp_mibbrowser_getnodeaccess(void* lpObj);
int GetNodeAccess();

Default Value

0

Remarks

The following is the list of values for NodeAccess:

0accUnknown
1accNoAccess
2accReadOnly
3accReadCreate
4accReadWrite
5accWriteOnly
6accForNotify

This property is read-only.

Data Type

Integer

NodeDescription Property (MibBrowser Class)

Textual description of the selected node.

Syntax

ANSI (Cross Platform)
char* GetNodeDescription();

Unicode (Windows)
LPWSTR GetNodeDescription();
char* ipworkssnmp_mibbrowser_getnodedescription(void* lpObj);
QString GetNodeDescription();

Default Value

""

Remarks

Because loading descriptions can consume unwanted resources, the class can control caching of descriptions in order to keep the memory footprint of the class as small as possible.

To disable caching, set the CacheDescriptions config setting to True. In this case, the class will only save the offset of the description in the MIB file in memory, and will fetch the textual description directly from the file only when required. When using caching, make sure that the path of the loaded modules does not change or the property will be unable to fetch the correct text description.

This property is read-only.

Data Type

String

NodeFileName Property (MibBrowser Class)

The absolute path of the file where the selected node is declared.

Syntax

ANSI (Cross Platform)
char* GetNodeFileName();

Unicode (Windows)
LPWSTR GetNodeFileName();
char* ipworkssnmp_mibbrowser_getnodefilename(void* lpObj);
QString GetNodeFileName();

Default Value

""

Remarks

It is possible for a node to be re-declared in other modules. In this case the property contains a comma separated list of file names where the selected node is declared.

This property is read-only.

Data Type

String

NodeFullLabel Property (MibBrowser Class)

The full label of the selected node.

Syntax

ANSI (Cross Platform)
char* GetNodeFullLabel();

Unicode (Windows)
LPWSTR GetNodeFullLabel();
char* ipworkssnmp_mibbrowser_getnodefulllabel(void* lpObj);
QString GetNodeFullLabel();

Default Value

""

Remarks

This contains the full label of the Oid of the selected node. It is unique within the MIB module where it is declared.

This property is read-only.

Data Type

String

NodeIndex Property (MibBrowser Class)

The index of the node in a table.

Syntax

ANSI (Cross Platform)
char* GetNodeIndex();

Unicode (Windows)
LPWSTR GetNodeIndex();
char* ipworkssnmp_mibbrowser_getnodeindex(void* lpObj);
QString GetNodeIndex();

Default Value

""

Remarks

If the selected node has stxSequence syntax then the NodeIndex represents the column used to distinguish among different table rows.

Example: MibParser.LoadMib(""SNMPv2-MIB"") MibParser.SelectNode("1.3.6.1.2.1.2.2") Debug.Print MibParser1.NodeLabel // prints "ifTable" MibParser.SelectNode("1.3.6.1.2.1.2.2.1") Debug.Print MibParser1.NodeLabel // prints "ifEntry" Debug.Print MibParser1.NodeIndex // prints "ifIndex"

This property is read-only.

Data Type

String

NodeLabel Property (MibBrowser Class)

The label of the selected node.

Syntax

ANSI (Cross Platform)
char* GetNodeLabel();

Unicode (Windows)
LPWSTR GetNodeLabel();
char* ipworkssnmp_mibbrowser_getnodelabel(void* lpObj);
QString GetNodeLabel();

Default Value

"iso"

Remarks

This label is unique within the MIB module where it is declared.

This property is read-only.

Data Type

String

NodeModuleName Property (MibBrowser Class)

The name of the module where the selected node is declared.

Syntax

ANSI (Cross Platform)
char* GetNodeModuleName();

Unicode (Windows)
LPWSTR GetNodeModuleName();
char* ipworkssnmp_mibbrowser_getnodemodulename(void* lpObj);
QString GetNodeModuleName();

Default Value

""

Remarks

It is possible for a node to be redeclared in other modules. In this case the NodeModuleName contains a comma separated list of module names where the selected node is declared.

This property is read-only.

Data Type

String

NodeOid Property (MibBrowser Class)

The Object ID of the selected node.

Syntax

ANSI (Cross Platform)
char* GetNodeOid();

Unicode (Windows)
LPWSTR GetNodeOid();
char* ipworkssnmp_mibbrowser_getnodeoid(void* lpObj);
QString GetNodeOid();

Default Value

"1"

Remarks

Contains the Object Id (OID) of the currently selected node. The OID uniquely identifies the selected node within the entire object hierarchy.

This property is read-only.

Data Type

String

NodeSubId Property (MibBrowser Class)

The SubId of the currently selected node.

Syntax

ANSI (Cross Platform)
int GetNodeSubId();

Unicode (Windows)
INT GetNodeSubId();
int ipworkssnmp_mibbrowser_getnodesubid(void* lpObj);
int GetNodeSubId();

Default Value

1

Remarks

For instance, if you select the node "dod" in "rfc1155.smi", the NodeSubId value will be 6.

This property is read-only.

Data Type

Integer

NodeSyntax Property (MibBrowser Class)

The syntax of the selected node.

Syntax

ANSI (Cross Platform)
int GetNodeSyntax();

Unicode (Windows)
INT GetNodeSyntax();

Possible Values

STX_BOOLEAN(1), 
STX_INTEGER(2),
STX_BIT_STRING(3),
STX_OCTET_STRING(4),
STX_NULL(5),
STX_OBJECT_ID(6),
STX_ENUMERATED(10),
STX_SEQUENCE_OF(15),
STX_SEQUENCE(16),
STX_SET(17),
STX_CHOICE(18),
STX_NETWORK_ADDRESS(21),
STX_IP_ADDRESS(64),
STX_COUNTER(65),
STX_GAUGE(66),
STX_TIME_TICKS(67),
STX_OPAQUE(68),
STX_NSAP(69),
STX_COUNTER_64(70),
STX_UINTEGER(71),
STX_UNKNOWN(59)
int ipworkssnmp_mibbrowser_getnodesyntax(void* lpObj);
int GetNodeSyntax();

Default Value

6

Remarks

The syntax defines what type of data the selected node contains. Common data types include:

Boolean (1) Boolean variable.
Integer (2) A 32-bit signed integer.
OctetString (4) An octet string variable that is binary or textual data.
Null (5) NULL value.
ObjectId (6) Object identifier.
IpAddress (64) A 32-bit Internet address (aaa.bbb.ccc.ddd)
Counter (65) A counter that increases until it reaches a maximum value of (2^32).
Gauge (66) A non-negative int that can increase or decrease, but never exceed a maximum value.
TimeTicks (67) A counter that measures time in hundredths of a second.
Opaque (68) This type supports the capability to pass ASN.1 syntax.
Counter64 (70) A counter that increases until it reaches a maximum value of (2^64).
UInteger (71) A 32-bit unsigned integer.

Additional type definitions can be found in the SNMP RFC's.

This property is read-only.

Data Type

Integer

NodeSyntaxString Property (MibBrowser Class)

The node syntax of the selected node in text format.

Syntax

ANSI (Cross Platform)
char* GetNodeSyntaxString();

Unicode (Windows)
LPWSTR GetNodeSyntaxString();
char* ipworkssnmp_mibbrowser_getnodesyntaxstring(void* lpObj);
QString GetNodeSyntaxString();

Default Value

""

Remarks

For instance, for the node "system" in "SNMPv2-MIB", NodeSyntax returns 6 (stxObjectId), while NodeSyntaxString returns "OBJECT IDENTIFIER".

This property is read-only.

Data Type

String

NodeType Property (MibBrowser Class)

The type of the selected node.

Syntax

ANSI (Cross Platform)
int GetNodeType();

Unicode (Windows)
INT GetNodeType();

Possible Values

MCR_OBJECT_TYPE(0), 
MCR_OBJECT_IDENTITY(1),
MCR_MODULE_IDENTITY(2),
MCR_NOTIFICATION_TYPE(3),
MCR_TRAP_TYPE(4),
MCR_OBJECT_GROUP(5),
MCR_NOTIFICATION_GROUP(6),
MCR_COMPLIANCE(7),
MCR_CAPABILITIES(8)
int ipworkssnmp_mibbrowser_getnodetype(void* lpObj);
int GetNodeType();

Default Value

1

Remarks

The following are the possible values for NodeType:

0mcrObjectType
1mcrObjectIdentity
2mcrModuleIdentity
3mcrNotificationType
4mcrTrapType
5mcrObjectGroup
6mcrNotificationGroup
7mcrCompliance
8mcrCapabilities

This property is read-only.

Data Type

Integer

NodeTypeString Property (MibBrowser Class)

The node type of the selected node in text format.

Syntax

ANSI (Cross Platform)
char* GetNodeTypeString();

Unicode (Windows)
LPWSTR GetNodeTypeString();
char* ipworkssnmp_mibbrowser_getnodetypestring(void* lpObj);
QString GetNodeTypeString();

Default Value

"OBJECT IDENTITY"

Remarks

For instance, for the node "system" in "SNMPv2-MIB", NodeType returns 2 (mcrObjectIdentity), while NodeTypeString returns "OBJECT-IDENTITY".

This property is read-only.

Data Type

String

Config Method (MibBrowser Class)

Sets or retrieves a configuration setting.

Syntax

ANSI (Cross Platform)
char* Config(const char* lpszConfigurationString);

Unicode (Windows)
LPWSTR Config(LPCWSTR lpszConfigurationString);
char* ipworkssnmp_mibbrowser_config(void* lpObj, const char* lpszConfigurationString);
QString Config(const QString& qsConfigurationString);

Remarks

Config is a generic method available in every class. It is used to set and retrieve configuration settings for the class.

These settings are similar in functionality to properties, but they are rarely used. In order to avoid "polluting" the property namespace of the class, access to these internal properties is provided through the Config method.

To set a configuration setting named PROPERTY, you must call Config("PROPERTY=VALUE"), where VALUE is the value of the setting expressed as a string. For boolean values, use the strings "True", "False", "0", "1", "Yes", or "No" (case does not matter).

To read (query) the value of a configuration setting, you must call Config("PROPERTY"). The value will be returned as a string.

Error Handling (C++)

This method returns a String value; after it returns, call the GetLastErrorCode() method to obtain its result code; 0 indicates success, while a non-zero error code indicates that this method encountered an error during its execution. If an error occurs, the GetLastError() method can be called to retrieve the associated error message.

ListChildren Method (MibBrowser Class)

Lists the immediate children of the selected node.

Syntax

ANSI (Cross Platform)
int ListChildren();

Unicode (Windows)
INT ListChildren();
int ipworkssnmp_mibbrowser_listchildren(void* lpObj);
int ListChildren();

Remarks

The MibNode event fires once for every SubId of the selected node and provides all info related to that SubId.

For instance, the following code: MibParser.LoadMib("RFC1155-SMI") MibParser.SelectNode("internet") MibParser.ListChildren() will generate the following output through the MibNode event:

  directory    1.3.6.1.1
  mgmt         1.3.6.1.2
  experimental 1.3.6.1.3
  private      1.3.6.1.4

Error Handling (C++)

This method returns a result code; 0 indicates success, while a non-zero error code indicates that this method encountered an error during its execution. If an error occurs, the GetLastError() method can be called to retrieve the associated error message. (Note: This method's result code can also be obtained by calling the GetLastErrorCode() method after it returns.)

ListSuccessors Method (MibBrowser Class)

Lists all successors of the selected node.

Syntax

ANSI (Cross Platform)
int ListSuccessors();

Unicode (Windows)
INT ListSuccessors();
int ipworkssnmp_mibbrowser_listsuccessors(void* lpObj);
int ListSuccessors();

Remarks

The MibNode event fires once for each successor of the selected node and provides all information related to it.

Error Handling (C++)

This method returns a result code; 0 indicates success, while a non-zero error code indicates that this method encountered an error during its execution. If an error occurs, the GetLastError() method can be called to retrieve the associated error message. (Note: This method's result code can also be obtained by calling the GetLastErrorCode() method after it returns.)

ListTraps Method (MibBrowser Class)

Lists all the traps defined in the loaded modules.

Syntax

ANSI (Cross Platform)
int ListTraps();

Unicode (Windows)
INT ListTraps();
int ipworkssnmp_mibbrowser_listtraps(void* lpObj);
int ListTraps();

Remarks

The TrapNode event fires once for every trap and provides all info related to it.

For instance, the following code:

MibParser.LoadMib("mib_ii.mib") MibParser.ListTraps() will generate the following output through the TrapNode event: coldStart 0 snmp warmStart 1 snmp linkDown 2 snmp linkUp 3 snmp authenticationFailure 4 snmp

Error Handling (C++)

This method returns a result code; 0 indicates success, while a non-zero error code indicates that this method encountered an error during its execution. If an error occurs, the GetLastError() method can be called to retrieve the associated error message. (Note: This method's result code can also be obtained by calling the GetLastErrorCode() method after it returns.)

LoadMib Method (MibBrowser Class)

Parses the file FileName and adds the parsed nodes to the collection of existing nodes.

Syntax

ANSI (Cross Platform)
int LoadMib(const char* lpszFileName);

Unicode (Windows)
INT LoadMib(LPCWSTR lpszFileName);
int ipworkssnmp_mibbrowser_loadmib(void* lpObj, const char* lpszFileName);
int LoadMib(const QString& qsFileName);

Remarks

This method can be used to load and parse a MIB file into the class.

Some MIB modules contain references to other modules within their imports sections. When loading a MIB that contains external imports, the ImportSymbols event will fire for each external reference. These modules must be loaded if possible to generate a complete representation for the loaded MIB.

It is possible for the component to attempt to load all external references automatically. To do this, use Config and set "AutoLoadMibs=True". Setting this configuration property causes the class to attempt to find and load any external references included in the current MIB. The class will only find external modules if they reside in the same directory as the current module. Alternatively, the class can load additional modules by calling LoadMib while inside the ImportSymbols event.

If the AutoLoadMibs config setting is set to False, and no explicit action is taken to load necessary modules inside the ImportSymbols event, some symbols may remain unresolved. These symbols will not appear in the MibNode hierarchy until the module containing their definition is loaded. Order is unimportant when loading additional MIB modules. A complete list of unresolved symbols can be found by retrieving the UndefinedSymbols config setting (comma separated list of symbols).

Note that FileName also accepts MIB data. If MIB data is used, the class will expect the NodeFileName to be at the beginning of the string, surrounded by "[]". For example:

[RFC-1215]RFC-1215 DEFINITIONS ::= BEGIN......END

Error Handling (C++)

This method returns a result code; 0 indicates success, while a non-zero error code indicates that this method encountered an error during its execution. If an error occurs, the GetLastError() method can be called to retrieve the associated error message. (Note: This method's result code can also be obtained by calling the GetLastErrorCode() method after it returns.)

Reset Method (MibBrowser Class)

Reset all properties of the class.

Syntax

ANSI (Cross Platform)
int Reset();

Unicode (Windows)
INT Reset();
int ipworkssnmp_mibbrowser_reset(void* lpObj);
int Reset();

Remarks

This method resets all of the node properties as well as the internal collection of parsed nodes.

Error Handling (C++)

This method returns a result code; 0 indicates success, while a non-zero error code indicates that this method encountered an error during its execution. If an error occurs, the GetLastError() method can be called to retrieve the associated error message. (Note: This method's result code can also be obtained by calling the GetLastErrorCode() method after it returns.)

SelectNode Method (MibBrowser Class)

Used to select individual nodes in the loaded MIB module(s).

Syntax

ANSI (Cross Platform)
int SelectNode(const char* lpszSelector);

Unicode (Windows)
INT SelectNode(LPCWSTR lpszSelector);
int ipworkssnmp_mibbrowser_selectnode(void* lpObj, const char* lpszSelector);
int SelectNode(const QString& qsSelector);

Remarks

SelectNode is used for selecting individual nodes and should be called before querying node information.

The Selector parameter can be a label such as "internet", an OID such as "1.3.6.4", a combination of the two: "iso.3.dod.internet", or a label in a particular module such as "RFC1213-MIB!interfaces".

Either '.' or ':' can be used to separate SubIds. If a SubId starts with "0x" or follows the ":" separator then its hexadecimal value is used. For instance, "0x1.0x3.0x6.0x1A" is the same as "1:3:6:1A".

All properties and methods of the class will operate on the selected node. For example, calling ListSuccessors will only list the successors of the selected node.

Error Handling (C++)

This method returns a result code; 0 indicates success, while a non-zero error code indicates that this method encountered an error during its execution. If an error occurs, the GetLastError() method can be called to retrieve the associated error message. (Note: This method's result code can also be obtained by calling the GetLastErrorCode() method after it returns.)

Error Event (MibBrowser Class)

Errors that occur while loading/parsing MIB modules are fired through this event.

Syntax

ANSI (Cross Platform)
virtual int FireError(MibBrowserErrorEventParams *e);
typedef struct {
int ErrorCode;
const char *Description; int reserved; } MibBrowserErrorEventParams;
Unicode (Windows) virtual INT FireError(MibBrowserErrorEventParams *e);
typedef struct {
INT ErrorCode;
LPCWSTR Description; INT reserved; } MibBrowserErrorEventParams;
#define EID_MIBBROWSER_ERROR 1

virtual INT IPWORKSSNMP_CALL FireError(INT &iErrorCode, LPSTR &lpszDescription);
class MibBrowserErrorEventParams {
public:
  int ErrorCode();

  const QString &Description();

  int EventRetVal();
  void SetEventRetVal(int iRetVal);
};
// To handle, connect one or more slots to this signal. void Error(MibBrowserErrorEventParams *e);
// Or, subclass MibBrowser and override this emitter function. virtual int FireError(MibBrowserErrorEventParams *e) {...}

Remarks

ErrorCode contains an error code and Description contains a textual description of the error. For a list of valid error codes and their descriptions, please refer to the Error Codes section.

ImportSymbols Event (MibBrowser Class)

List of imported symbols and the respective modules where they are declared.

Syntax

ANSI (Cross Platform)
virtual int FireImportSymbols(MibBrowserImportSymbolsEventParams *e);
typedef struct {
const char *Symbols;
const char *ModuleName; int reserved; } MibBrowserImportSymbolsEventParams;
Unicode (Windows) virtual INT FireImportSymbols(MibBrowserImportSymbolsEventParams *e);
typedef struct {
LPCWSTR Symbols;
LPCWSTR ModuleName; INT reserved; } MibBrowserImportSymbolsEventParams;
#define EID_MIBBROWSER_IMPORTSYMBOLS 2

virtual INT IPWORKSSNMP_CALL FireImportSymbols(LPSTR &lpszSymbols, LPSTR &lpszModuleName);
class MibBrowserImportSymbolsEventParams {
public:
  const QString &Symbols();

  const QString &ModuleName();

  int EventRetVal();
  void SetEventRetVal(int iRetVal);
};
// To handle, connect one or more slots to this signal. void ImportSymbols(MibBrowserImportSymbolsEventParams *e);
// Or, subclass MibBrowser and override this emitter function. virtual int FireImportSymbols(MibBrowserImportSymbolsEventParams *e) {...}

Remarks

The Symbols parameter is a comma separated list of all symbols that must be imported from ModuleName.

The module is loaded through the LoadMib method.

MibNode Event (MibBrowser Class)

This event fires once for every child or successor of the currently selected node when invoking ListChildren or ListSuccessors .

Syntax

ANSI (Cross Platform)
virtual int FireMibNode(MibBrowserMibNodeEventParams *e);
typedef struct {
const char *NodeLabel;
const char *NodeOid;
int NodeType;
const char *NodeTypeString;
int NodeSyntax;
const char *NodeSyntaxString;
int NodeAccess;
const char *NodeIndex;
const char *NodeParentName;
const char *NodeDescription;
const char *NodeModuleName;
const char *NodeFileName; int reserved; } MibBrowserMibNodeEventParams;
Unicode (Windows) virtual INT FireMibNode(MibBrowserMibNodeEventParams *e);
typedef struct {
LPCWSTR NodeLabel;
LPCWSTR NodeOid;
INT NodeType;
LPCWSTR NodeTypeString;
INT NodeSyntax;
LPCWSTR NodeSyntaxString;
INT NodeAccess;
LPCWSTR NodeIndex;
LPCWSTR NodeParentName;
LPCWSTR NodeDescription;
LPCWSTR NodeModuleName;
LPCWSTR NodeFileName; INT reserved; } MibBrowserMibNodeEventParams;
#define EID_MIBBROWSER_MIBNODE 3

virtual INT IPWORKSSNMP_CALL FireMibNode(LPSTR &lpszNodeLabel, LPSTR &lpszNodeOid, INT &iNodeType, LPSTR &lpszNodeTypeString, INT &iNodeSyntax, LPSTR &lpszNodeSyntaxString, INT &iNodeAccess, LPSTR &lpszNodeIndex, LPSTR &lpszNodeParentName, LPSTR &lpszNodeDescription, LPSTR &lpszNodeModuleName, LPSTR &lpszNodeFileName);
class MibBrowserMibNodeEventParams {
public:
  const QString &NodeLabel();

  const QString &NodeOid();

  int NodeType();

  const QString &NodeTypeString();

  int NodeSyntax();

  const QString &NodeSyntaxString();

  int NodeAccess();

  const QString &NodeIndex();

  const QString &NodeParentName();

  const QString &NodeDescription();

  const QString &NodeModuleName();

  const QString &NodeFileName();

  int EventRetVal();
  void SetEventRetVal(int iRetVal);
};
// To handle, connect one or more slots to this signal. void MibNode(MibBrowserMibNodeEventParams *e);
// Or, subclass MibBrowser and override this emitter function. virtual int FireMibNode(MibBrowserMibNodeEventParams *e) {...}

Remarks

When calling either ListChildren or ListSuccessors, the MibNode event will fire once for every child of the currently selected node. The ListChildren method will cause the event will fire once for each of the immediate children of the current node. ListSuccessors cause this event to fire for each of the immediate children of the current node, as well as the entire tree of successors of those children.

NodeLabel is the name or textual representation of the current node, and is unique to its siblings. The NodeOid is the OID of the listed node and uniquely identifies the node within the entire MIB. The remaining parameters offer additional information about the listed node.

Information about the listed node is only available through the MibNode event parameters. All class properties remain related to the currently selected node.

If a MibNode is declared in more than one file or module, then the NodeFileName and NodeModuleName parameters will contain a comma separated list of files/modules where the node is declared.

For instance, the following code: MibParser.LoadMib("RFC1155-SMI") MibParser.SelectNode("internet") // OID 1.3.6.1 MibParser.ListSuccessors() will generate the following output through the event:

  directory    1.3.6.1.1
  mgmt         1.3.6.1.2
  experimental 1.3.6.1.3
  private      1.3.6.1.4
  enterprises  1.3.6.1.4.1

TrapNode Event (MibBrowser Class)

Lists module trap information.

Syntax

ANSI (Cross Platform)
virtual int FireTrapNode(MibBrowserTrapNodeEventParams *e);
typedef struct {
const char *TrapName;
int SpecificTrap;
const char *TrapEnterprise;
const char *TrapVariables;
const char *TrapDescription;
const char *TrapReferences;
const char *TrapModuleName;
const char *TrapFileName; int reserved; } MibBrowserTrapNodeEventParams;
Unicode (Windows) virtual INT FireTrapNode(MibBrowserTrapNodeEventParams *e);
typedef struct {
LPCWSTR TrapName;
INT SpecificTrap;
LPCWSTR TrapEnterprise;
LPCWSTR TrapVariables;
LPCWSTR TrapDescription;
LPCWSTR TrapReferences;
LPCWSTR TrapModuleName;
LPCWSTR TrapFileName; INT reserved; } MibBrowserTrapNodeEventParams;
#define EID_MIBBROWSER_TRAPNODE 4

virtual INT IPWORKSSNMP_CALL FireTrapNode(LPSTR &lpszTrapName, INT &iSpecificTrap, LPSTR &lpszTrapEnterprise, LPSTR &lpszTrapVariables, LPSTR &lpszTrapDescription, LPSTR &lpszTrapReferences, LPSTR &lpszTrapModuleName, LPSTR &lpszTrapFileName);
class MibBrowserTrapNodeEventParams {
public:
  const QString &TrapName();

  int SpecificTrap();

  const QString &TrapEnterprise();

  const QString &TrapVariables();

  const QString &TrapDescription();

  const QString &TrapReferences();

  const QString &TrapModuleName();

  const QString &TrapFileName();

  int EventRetVal();
  void SetEventRetVal(int iRetVal);
};
// To handle, connect one or more slots to this signal. void TrapNode(MibBrowserTrapNodeEventParams *e);
// Or, subclass MibBrowser and override this emitter function. virtual int FireTrapNode(MibBrowserTrapNodeEventParams *e) {...}

Remarks

When calling ListTraps, the TrapNode event fires once for every trap found in the module.

The following are the descriptions of the event parameters:

TrapNameThe name of the trap (its label).
TrapSpecificTrapThe specific id of this trap.
TrapEnterpriseThe defining entity.
TrapVariablesA comma separated list of the symbols that should be present inside the trap.
TrapDescriptionA textual memo about the node.
TrapModuleNameThe module that contains the trap definition.
TrapFileNameThe filename of the MIB where the trap is defined.

If a trap has been defined in more than one module or file, then ModuleName and FileName will contain a comma separated list of values.

Config Settings (MibBrowser Class)

The class accepts one or more of the following configuration settings. Configuration settings are similar in functionality to properties, but they are rarely used. In order to avoid "polluting" the property namespace of the class, access to these internal properties is provided through the Config method.

MibBrowser Config Settings

AutoLoadMibs:   Determines whether imported MIB modules are loaded automatically.

When True (default), the class will attempt to automatically load MIB imports. Only the path of the current module will be searched.

CacheDescriptions:   Controls caching of Node descriptions.

The default value is True.

When False, the class will only save the offset of the description in the MIB file in memory, and will fetch the textual description directly from the file only when required.

When using caching, make sure that the path of the loaded modules does not change or the property will be unable to fetch the correct text description.

CacheMibs:   Controls MIB module caching.

If set to True (default), a file will never be loaded/parsed more than once.

CheckNoKnownRoots:   Controls whether or not the class fails when a file with no known root is loaded.

If set to true the class will fail with an error when LoadMib is called and no root node can be found for the nodes defined in the file. When this value is False (default), Error will fire with this alert.

DisplayHint:   The DISPLAY-HINT property for the current node.

This is set to the DISPLAY-HINT property for the current node specified in NodeIndex.

Note that this config is read only.

MibExtensions:   Controls the file extensions that the component will search for.

When loading a MIB file with AutoLoadMibs enabled, this configuration setting controls what file extensions the component will search to find imported symbols. The default value is ".mib", which means the component will search files with a .mib extension or with no extension. If you set the value to ".txt, .mib", it will also search files with a .txt extension.

NodeIsColumnar:   Whether the current node is columnar.

This setting may be queried after calling SelectNode or within the MibNode event to determine if the current node is columnar.

NodeIsScalar:   Whether the current node is scalar.

This setting may be queried after calling SelectNode or within the MibNode event to determine if the current node is scalar.

ReleaseTempNodes:   Will release any temporary nodes stored by the component.

When ExactMatch is set to False, temporary nodes will be stored after SelectNode calls. Calling this method will release the stored temporary nodes (thus freeing up memory) and will also reset the current node back to the root node. Note that this method will not unload any previously loaded MIB files that you have loaded.

ReturnEnumValues:   Comma-separated list of the current node's enumeration textual-conventions.

If set to true, and the current node references an enumeration textual-convention, then the values of the enumeration will be returned in the following format:

"label1(Value), label2(Value), label3(Value)..."

UndefinedSymbols:   Comma-separated list of nodes that have not been resolved.

For more information, please refer to the LoadMib method.

Base Config Settings

BuildInfo:   Information about the product's build.

When queried, this setting will return a string containing information about the product's build.

CodePage:   The system code page used for Unicode to Multibyte translations.

The default code page is Unicode UTF-8 (65001).

The following is a list of valid code page identifiers:

IdentifierName
037IBM EBCDIC - U.S./Canada
437OEM - United States
500IBM EBCDIC - International
708Arabic - ASMO 708
709Arabic - ASMO 449+, BCON V4
710Arabic - Transparent Arabic
720Arabic - Transparent ASMO
737OEM - Greek (formerly 437G)
775OEM - Baltic
850OEM - Multilingual Latin I
852OEM - Latin II
855OEM - Cyrillic (primarily Russian)
857OEM - Turkish
858OEM - Multilingual Latin I + Euro symbol
860OEM - Portuguese
861OEM - Icelandic
862OEM - Hebrew
863OEM - Canadian-French
864OEM - Arabic
865OEM - Nordic
866OEM - Russian
869OEM - Modern Greek
870IBM EBCDIC - Multilingual/ROECE (Latin-2)
874ANSI/OEM - Thai (same as 28605, ISO 8859-15)
875IBM EBCDIC - Modern Greek
932ANSI/OEM - Japanese, Shift-JIS
936ANSI/OEM - Simplified Chinese (PRC, Singapore)
949ANSI/OEM - Korean (Unified Hangul Code)
950ANSI/OEM - Traditional Chinese (Taiwan; Hong Kong SAR, PRC)
1026IBM EBCDIC - Turkish (Latin-5)
1047IBM EBCDIC - Latin 1/Open System
1140IBM EBCDIC - U.S./Canada (037 + Euro symbol)
1141IBM EBCDIC - Germany (20273 + Euro symbol)
1142IBM EBCDIC - Denmark/Norway (20277 + Euro symbol)
1143IBM EBCDIC - Finland/Sweden (20278 + Euro symbol)
1144IBM EBCDIC - Italy (20280 + Euro symbol)
1145IBM EBCDIC - Latin America/Spain (20284 + Euro symbol)
1146IBM EBCDIC - United Kingdom (20285 + Euro symbol)
1147IBM EBCDIC - France (20297 + Euro symbol)
1148IBM EBCDIC - International (500 + Euro symbol)
1149IBM EBCDIC - Icelandic (20871 + Euro symbol)
1200Unicode UCS-2 Little-Endian (BMP of ISO 10646)
1201Unicode UCS-2 Big-Endian
1250ANSI - Central European
1251ANSI - Cyrillic
1252ANSI - Latin I
1253ANSI - Greek
1254ANSI - Turkish
1255ANSI - Hebrew
1256ANSI - Arabic
1257ANSI - Baltic
1258ANSI/OEM - Vietnamese
1361Korean (Johab)
10000MAC - Roman
10001MAC - Japanese
10002MAC - Traditional Chinese (Big5)
10003MAC - Korean
10004MAC - Arabic
10005MAC - Hebrew
10006MAC - Greek I
10007MAC - Cyrillic
10008MAC - Simplified Chinese (GB 2312)
10010MAC - Romania
10017MAC - Ukraine
10021MAC - Thai
10029MAC - Latin II
10079MAC - Icelandic
10081MAC - Turkish
10082MAC - Croatia
12000Unicode UCS-4 Little-Endian
12001Unicode UCS-4 Big-Endian
20000CNS - Taiwan
20001TCA - Taiwan
20002Eten - Taiwan
20003IBM5550 - Taiwan
20004TeleText - Taiwan
20005Wang - Taiwan
20105IA5 IRV International Alphabet No. 5 (7-bit)
20106IA5 German (7-bit)
20107IA5 Swedish (7-bit)
20108IA5 Norwegian (7-bit)
20127US-ASCII (7-bit)
20261T.61
20269ISO 6937 Non-Spacing Accent
20273IBM EBCDIC - Germany
20277IBM EBCDIC - Denmark/Norway
20278IBM EBCDIC - Finland/Sweden
20280IBM EBCDIC - Italy
20284IBM EBCDIC - Latin America/Spain
20285IBM EBCDIC - United Kingdom
20290IBM EBCDIC - Japanese Katakana Extended
20297IBM EBCDIC - France
20420IBM EBCDIC - Arabic
20423IBM EBCDIC - Greek
20424IBM EBCDIC - Hebrew
20833IBM EBCDIC - Korean Extended
20838IBM EBCDIC - Thai
20866Russian - KOI8-R
20871IBM EBCDIC - Icelandic
20880IBM EBCDIC - Cyrillic (Russian)
20905IBM EBCDIC - Turkish
20924IBM EBCDIC - Latin-1/Open System (1047 + Euro symbol)
20932JIS X 0208-1990 & 0121-1990
20936Simplified Chinese (GB2312)
21025IBM EBCDIC - Cyrillic (Serbian, Bulgarian)
21027Extended Alpha Lowercase
21866Ukrainian (KOI8-U)
28591ISO 8859-1 Latin I
28592ISO 8859-2 Central Europe
28593ISO 8859-3 Latin 3
28594ISO 8859-4 Baltic
28595ISO 8859-5 Cyrillic
28596ISO 8859-6 Arabic
28597ISO 8859-7 Greek
28598ISO 8859-8 Hebrew
28599ISO 8859-9 Latin 5
28605ISO 8859-15 Latin 9
29001Europa 3
38598ISO 8859-8 Hebrew
50220ISO 2022 Japanese with no halfwidth Katakana
50221ISO 2022 Japanese with halfwidth Katakana
50222ISO 2022 Japanese JIS X 0201-1989
50225ISO 2022 Korean
50227ISO 2022 Simplified Chinese
50229ISO 2022 Traditional Chinese
50930Japanese (Katakana) Extended
50931US/Canada and Japanese
50933Korean Extended and Korean
50935Simplified Chinese Extended and Simplified Chinese
50936Simplified Chinese
50937US/Canada and Traditional Chinese
50939Japanese (Latin) Extended and Japanese
51932EUC - Japanese
51936EUC - Simplified Chinese
51949EUC - Korean
51950EUC - Traditional Chinese
52936HZ-GB2312 Simplified Chinese
54936Windows XP: GB18030 Simplified Chinese (4 Byte)
57002ISCII Devanagari
57003ISCII Bengali
57004ISCII Tamil
57005ISCII Telugu
57006ISCII Assamese
57007ISCII Oriya
57008ISCII Kannada
57009ISCII Malayalam
57010ISCII Gujarati
57011ISCII Punjabi
65000Unicode UTF-7
65001Unicode UTF-8
The following is a list of valid code page identifiers for Mac OS only:
IdentifierName
1ASCII
2NEXTSTEP
3JapaneseEUC
4UTF8
5ISOLatin1
6Symbol
7NonLossyASCII
8ShiftJIS
9ISOLatin2
10Unicode
11WindowsCP1251
12WindowsCP1252
13WindowsCP1253
14WindowsCP1254
15WindowsCP1250
21ISO2022JP
30MacOSRoman
10UTF16String
0x90000100UTF16BigEndian
0x94000100UTF16LittleEndian
0x8c000100UTF32String
0x98000100UTF32BigEndian
0x9c000100UTF32LittleEndian
65536Proprietary

LicenseInfo:   Information about the current license.

When queried, this setting will return a string containing information about the license this instance of a class is using. It will return the following information:

  • Product: The product the license is for.
  • Product Key: The key the license was generated from.
  • License Source: Where the license was found (e.g., RuntimeLicense, License File).
  • License Type: The type of license installed (e.g., Royalty Free, Single Server).
  • Last Valid Build: The last valid build number for which the license will work.
MaskSensitive:   Whether sensitive data is masked in log messages.

In certain circumstances it may be beneficial to mask sensitive data, like passwords, in log messages. Set this to true to mask sensitive data. The default is true.

This setting only works on these classes: AS3Receiver, AS3Sender, Atom, Client(3DS), FTP, FTPServer, IMAP, OFTPClient, SSHClient, SCP, Server(3DS), Sexec, SFTP, SFTPServer, SSHServer, TCPClient, TCPServer.

ProcessIdleEvents:   Whether the class uses its internal event loop to process events when the main thread is idle.

If set to False, the class will not fire internal idle events. Set this to False to use the class in a background thread on Mac OS. By default, this setting is True.

SelectWaitMillis:   The length of time in milliseconds the class will wait when DoEvents is called if there are no events to process.

If there are no events to process when DoEvents is called, the class will wait for the amount of time specified here before returning. The default value is 20.

UseInternalSecurityAPI:   Tells the class whether or not to use the system security libraries or an internal implementation.

When set to false, the class will use the system security libraries by default to perform cryptographic functions where applicable.

Setting this setting to true tells the class to use the internal implementation instead of using the system security libraries.

On Windows, this setting is set to false by default. On Linux/macOS, this setting is set to true by default.

To use the system security libraries for Linux, OpenSSL support must be enabled. For more information on how to enable OpenSSL, please refer to the OpenSSL Notes section.

Trappable Errors (MibBrowser Class)

Error Handling (C++)

Call the GetLastErrorCode() method to obtain the last called method's result code; 0 indicates success, while a non-zero error code indicates that this method encountered an error during its execution. Known error codes are listed below. If an error occurs, the GetLastError() method can be called to retrieve the associated error message.

MibBrowser Errors

1000   Missing token.
1001   Unexpected token.
1002   Unexpected end of file.
1003   MIB error.
1004   Nested MIBs are not supported.
1005   Missing import.