# Path: pysnmp/smi/error.py
# class SmiError(PySnmpError, PyAsn1Error): pass
# class MibOperationError(SmiError):
# class GenError(MibOperationError): pass
# class NoAccessError(MibOperationError): pass
# class WrongTypeError(MibOperationError): pass
# class WrongValueError(MibOperationError): pass
# class NoCreationError(MibOperationError): pass
# class InconsistentValueError(MibOperationError): pass
# class ResourceUnavailableError(MibOperationError): pass
# class CommitFailedError(MibOperationError): pass
# class UndoFailedError(MibOperationError): pass
# class AuthorizationError(MibOperationError): pass
# class NotWritableError(MibOperationError): pass
# class InconsistentNameError(MibOperationError): pass
# class NoSuchObjectError(MibOperationError): pass
# class NoSuchInstanceError(MibOperationError): pass
# class EndOfMibViewError(MibOperationError): pass
# class RowCreationWanted(MibOperationError): pass
# class RowDestructionWanted(MibOperationError): pass
#     def __init__(self, **kwargs): self.__outArgs = kwargs
#     def __str__(self): return '%s(%s)' % (
#     def __getitem__(self, key): return self.__outArgs[key]
#     def __contains__(self, key): return key in self.__outArgs
#     def get(self, key, defVal=None): return self.__outArgs.get(key, defVal)
#     def keys(self): return self.__outArgs.keys()
#     def update(self, d): self.__outArgs.update(d)
# 
# Path: pysnmp/debug.py
# class Debug:
#     def __init__(self, *flags):
#     def __str__(self):
#     def __call__(self, msg):
#     def __and__(self, flag):
#     def __rand__(self, flag):
# def setLogger(l):
# def hexdump(octets):


import sys
    import types
from pysnmp.smi.indices import OrderedDict, OidOrderedDict
from pysnmp.smi import error
from pysnmp import debug
# MIB modules management

__all__ = [ 'MibViewController' ]

if sys.version_info[0] <= 2:
    classTypes = (types.ClassType, type)
    instanceTypes = (types.InstanceType, object)
else:
    classTypes = (type,)
    instanceTypes = (object,)

class MibViewController:
    def __init__(self, mibBuilder):
        self.mibBuilder = mibBuilder
        self.lastBuildId = -1

    # Indexing part
    
    def indexMib(self):
        if self.lastBuildId == self.mibBuilder.lastBuildId:
            return


# Path: pysnmp/smi/error.py
# class SmiError(PySnmpError, PyAsn1Error): pass
# class MibOperationError(SmiError):
# class GenError(MibOperationError): pass
# class NoAccessError(MibOperationError): pass
# class WrongTypeError(MibOperationError): pass
# class WrongValueError(MibOperationError): pass
# class NoCreationError(MibOperationError): pass
# class InconsistentValueError(MibOperationError): pass
# class ResourceUnavailableError(MibOperationError): pass
# class CommitFailedError(MibOperationError): pass
# class UndoFailedError(MibOperationError): pass
# class AuthorizationError(MibOperationError): pass
# class NotWritableError(MibOperationError): pass
# class InconsistentNameError(MibOperationError): pass
# class NoSuchObjectError(MibOperationError): pass
# class NoSuchInstanceError(MibOperationError): pass
# class EndOfMibViewError(MibOperationError): pass
# class RowCreationWanted(MibOperationError): pass
# class RowDestructionWanted(MibOperationError): pass
#     def __init__(self, **kwargs): self.__outArgs = kwargs
#     def __str__(self): return '%s(%s)' % (
#     def __getitem__(self, key): return self.__outArgs[key]
#     def __contains__(self, key): return key in self.__outArgs
#     def get(self, key, defVal=None): return self.__outArgs.get(key, defVal)
#     def keys(self): return self.__outArgs.keys()
#     def update(self, d): self.__outArgs.update(d)
# 
# Path: pysnmp/debug.py
# class Debug:
#     def __init__(self, *flags):
#     def __str__(self):
#     def __call__(self, msg):
#     def __and__(self, flag):
#     def __rand__(self, flag):
# def setLogger(l):
# def hexdump(octets):


# Path: pysnmp/smi/view.py
import sys
    import types
from pysnmp.smi.indices import OrderedDict, OidOrderedDict
from pysnmp.smi import error
from pysnmp import debug

# MIB modules management

__all__ = [ 'MibViewController' ]

if sys.version_info[0] <= 2:
    classTypes = (types.ClassType, type)
    instanceTypes = (types.InstanceType, object)
else:
    classTypes = (type,)
    instanceTypes = (object,)

class MibViewController:
    def __init__(self, mibBuilder):
        self.mibBuilder = mibBuilder
        self.lastBuildId = -1

    # Indexing part
    
    def indexMib(self):
        if self.lastBuildId == self.mibBuilder.lastBuildId:
            return


        debug.logger & debug.flagMIB and debug.logger('indexMib: re-indexing MIB view')