windows-nt/Source/XPSP1/NT/net/snmp/compiler/mibccv2/oidtof.hpp

70 lines
1.8 KiB
C++
Raw Normal View History

2020-09-26 03:20:57 -05:00
#include "OTScan.hpp"
#ifndef _OIDTOFILE_HPP
#define _OIDTOFILE_HPP
class SIMCOidTreeNode;
class OidToFile : public OidTreeScanner
{
typedef struct _FileNode
{
long lNextOffset;
UINT uNumChildren;
UINT uStrLen;
LPSTR lpszTextSubID;
UINT uNumSubID;
} T_FILE_NODE;
// mib.bin file actually needs the following platform independent format
// on 32bit(x86) and 64bit(ia64) environment. The uReserved field is used
// for backward compatibility to T_FILE_NODE on 32bit platform because
// mib.bin file format has been around since NT 3.51 time frame.
typedef struct _FileNodeEx
{
long lNextOffset; // This field must remain first
UINT uNumChildren;
UINT uStrLen;
UINT uReserved;
UINT uNumSubID;
} T_FILE_NODE_EX;
HFILE m_hMibFile;
const char *m_pszMibFilename;
public:
OidToFile();
// DESCRIPTION:
// wrapper for the base class Scan();
// it find first the sizes of subtrees;
// RETURN VALUE:
// 0 on success
// -1 on failure;
virtual int Scan();
// DESCRIPTION:
// Creates the output file, containing the OID encoding
// PARAMETERS:
// (in) pointer to the output file name
// RETURN VALUE:
// 0 on success, -1 on failure
int SetMibFilename(const char * pszMibFilename);
// DESCRIPTION:
// "callback" function, called each time a
// tree node passes through the scan. The user
// should redefine this function in the derived
// object to perform the action desired.
// PARAMETERS:
// (in) Pointer to the current node in the tree.
// Nodes are supplied in lexicographic order.
// RETURN VALUE:
// 0 - the scanner should continue
// -1 - the scanner should abort.
int OnScanNode(const SIMCOidTreeNode *pOidNode);
~OidToFile();
};
#endif