# This file was automatically generated by SWIG (http://www.swig.org).
# Version 4.0.2
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.

from sys import version_info as _swig_python_version_info
if _swig_python_version_info < (2, 7, 0):
    raise RuntimeError("Python 2.7 or later required")

# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _VSBIOInterface
else:
    import _VSBIOInterface

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

def _swig_repr(self):
    try:
        strthis = "proxy of " + self.this.__repr__()
    except __builtin__.Exception:
        strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)


def _swig_setattr_nondynamic_instance_variable(set):
    def set_instance_attr(self, name, value):
        if name == "thisown":
            self.this.own(value)
        elif name == "this":
            set(self, name, value)
        elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add instance attributes to %s" % self)
    return set_instance_attr


def _swig_setattr_nondynamic_class_variable(set):
    def set_class_attr(cls, name, value):
        if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
            set(cls, name, value)
        else:
            raise AttributeError("You cannot add class attributes to %s" % cls)
    return set_class_attr


def _swig_add_metaclass(metaclass):
    """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass"""
    def wrapper(cls):
        return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy())
    return wrapper


class _SwigNonDynamicMeta(type):
    """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
    __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)



def ReadVSBW(filename: "wchar_t const *") -> "ReadHandle":
    return _VSBIOInterface.ReadVSBW(filename)

def ReadVSB(filename: "char const *") -> "ReadHandle":
    return _VSBIOInterface.ReadVSB(filename)

def ReadNextMessage(handle: "ReadHandle", message: "icsSpyMessageVSB", size: "unsigned int") -> "unsigned int *":
    return _VSBIOInterface.ReadNextMessage(handle, message, size)

def ReadClose(handle: "ReadHandle") -> "void":
    return _VSBIOInterface.ReadClose(handle)

def GetProgress(handle: "ReadHandle") -> "int":
    return _VSBIOInterface.GetProgress(handle)

def GetDisplayMessage(handle: "ReadHandle") -> "char const *":
    return _VSBIOInterface.GetDisplayMessage(handle)

def GetMsgTime(message: "icsSpyMessageVSB") -> "double":
    return _VSBIOInterface.GetMsgTime(message)

def GetErrorMessage(handle: "ReadHandle") -> "char const *":
    return _VSBIOInterface.GetErrorMessage(handle)

def WriteVSBW(filename: "wchar_t const *") -> "WriteHandle":
    return _VSBIOInterface.WriteVSBW(filename)

def WriteVSB(filename: "char const *") -> "WriteHandle":
    return _VSBIOInterface.WriteVSB(filename)

def WriteMessage(handle: "WriteHandle", message: "icsSpyMessageVSB", size: "unsigned int") -> "int":
    return _VSBIOInterface.WriteMessage(handle, message, size)

def WriteClose(handle: "WriteHandle") -> "void":
    return _VSBIOInterface.WriteClose(handle)

def VSBIOFree(message: "icsSpyMessageVSB") -> "void":
    return _VSBIOInterface.VSBIOFree(message)

def VSBIOMalloc(nBytes: "int") -> "icsSpyMessageVSB *":
    return _VSBIOInterface.VSBIOMalloc(nBytes)

def ConcatenateW(inputFileList: "wchar_t const *", outputFileName: "wchar_t const *", prog: "ProgressFunc") -> "bool":
    return _VSBIOInterface.ConcatenateW(inputFileList, outputFileName, prog)

def Concatenate(inputFileList: "char const *", outputFileName: "char const *", prog: "ProgressFunc") -> "bool":
    return _VSBIOInterface.Concatenate(inputFileList, outputFileName, prog)

def SplitW(sFileName: "wchar_t const *", nMessagesPerFile: "unsigned int", OutputLocation: "wchar_t const *", prog: "ProgressFunc") -> "bool":
    return _VSBIOInterface.SplitW(sFileName, nMessagesPerFile, OutputLocation, prog)

def Split(sFileName: "char const *", nMessagesPerFile: "unsigned int", OutputLocation: "char const *", prog: "ProgressFunc") -> "bool":
    return _VSBIOInterface.Split(sFileName, nMessagesPerFile, OutputLocation, prog)

def SplitBySizeW(sFileName: "wchar_t const *", sizeInMB: "double", sOutputLocation: "wchar_t const *", prog: "ProgressFunc") -> "bool":
    return _VSBIOInterface.SplitBySizeW(sFileName, sizeInMB, sOutputLocation, prog)

def SplitBySize(sFileName: "char const *", sizeInMB: "double", sOutputLocation: "char const *", prog: "ProgressFunc") -> "bool":
    return _VSBIOInterface.SplitBySize(sFileName, sizeInMB, sOutputLocation, prog)

def CreateDatabaseW(inputFilePath: "wchar_t const *", outputFileName: "wchar_t const *", prog: "ProgressFunc") -> "bool":
    return _VSBIOInterface.CreateDatabaseW(inputFilePath, outputFileName, prog)

def CreateDatabase(inputFilePath: "char const *", outputFileName: "char const *", prog: "ProgressFunc") -> "bool":
    return _VSBIOInterface.CreateDatabase(inputFilePath, outputFileName, prog)

def AddToDatabaseW(inputFilePath: "wchar_t const *", outputFileName: "wchar_t const *", prog: "ProgressFunc") -> "bool":
    return _VSBIOInterface.AddToDatabaseW(inputFilePath, outputFileName, prog)

def AddToDatabase(inputFilePath: "char const *", outputFileName: "char const *", prog: "ProgressFunc") -> "bool":
    return _VSBIOInterface.AddToDatabase(inputFilePath, outputFileName, prog)

def WriteFilteredVsbW(inputFilePath: "wchar_t const *", outputFileName: "wchar_t const *", filter: "wchar_t const *", prog: "ProgressFunc") -> "int":
    return _VSBIOInterface.WriteFilteredVsbW(inputFilePath, outputFileName, filter, prog)

def WriteFilteredVsb(inputFilePath: "char const *", outputFileName: "char const *", filter: "char const *", prog: "ProgressFunc") -> "int":
    return _VSBIOInterface.WriteFilteredVsb(inputFilePath, outputFileName, filter, prog)
class icsSpyMessageVSB(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    StatusBitField = property(_VSBIOInterface.icsSpyMessageVSB_StatusBitField_get, _VSBIOInterface.icsSpyMessageVSB_StatusBitField_set)
    StatusBitField2 = property(_VSBIOInterface.icsSpyMessageVSB_StatusBitField2_get, _VSBIOInterface.icsSpyMessageVSB_StatusBitField2_set)
    TimeHardware = property(_VSBIOInterface.icsSpyMessageVSB_TimeHardware_get, _VSBIOInterface.icsSpyMessageVSB_TimeHardware_set)
    TimeHardware2 = property(_VSBIOInterface.icsSpyMessageVSB_TimeHardware2_get, _VSBIOInterface.icsSpyMessageVSB_TimeHardware2_set)
    TimeSystem = property(_VSBIOInterface.icsSpyMessageVSB_TimeSystem_get, _VSBIOInterface.icsSpyMessageVSB_TimeSystem_set)
    TimeSystem2 = property(_VSBIOInterface.icsSpyMessageVSB_TimeSystem2_get, _VSBIOInterface.icsSpyMessageVSB_TimeSystem2_set)
    TimeStampHardwareID = property(_VSBIOInterface.icsSpyMessageVSB_TimeStampHardwareID_get, _VSBIOInterface.icsSpyMessageVSB_TimeStampHardwareID_set)
    TimeStampSystemID = property(_VSBIOInterface.icsSpyMessageVSB_TimeStampSystemID_get, _VSBIOInterface.icsSpyMessageVSB_TimeStampSystemID_set)
    NetworkID = property(_VSBIOInterface.icsSpyMessageVSB_NetworkID_get, _VSBIOInterface.icsSpyMessageVSB_NetworkID_set)
    NodeID = property(_VSBIOInterface.icsSpyMessageVSB_NodeID_get, _VSBIOInterface.icsSpyMessageVSB_NodeID_set)
    Protocol = property(_VSBIOInterface.icsSpyMessageVSB_Protocol_get, _VSBIOInterface.icsSpyMessageVSB_Protocol_set)
    MessagePieceID = property(_VSBIOInterface.icsSpyMessageVSB_MessagePieceID_get, _VSBIOInterface.icsSpyMessageVSB_MessagePieceID_set)
    ExtraDataPtrEnabled = property(_VSBIOInterface.icsSpyMessageVSB_ExtraDataPtrEnabled_get, _VSBIOInterface.icsSpyMessageVSB_ExtraDataPtrEnabled_set)
    NumberBytesHeader = property(_VSBIOInterface.icsSpyMessageVSB_NumberBytesHeader_get, _VSBIOInterface.icsSpyMessageVSB_NumberBytesHeader_set)
    NumberBytesData = property(_VSBIOInterface.icsSpyMessageVSB_NumberBytesData_get, _VSBIOInterface.icsSpyMessageVSB_NumberBytesData_set)
    NetworkID2 = property(_VSBIOInterface.icsSpyMessageVSB_NetworkID2_get, _VSBIOInterface.icsSpyMessageVSB_NetworkID2_set)
    DescriptionID = property(_VSBIOInterface.icsSpyMessageVSB_DescriptionID_get, _VSBIOInterface.icsSpyMessageVSB_DescriptionID_set)
    ArbIDOrHeader = property(_VSBIOInterface.icsSpyMessageVSB_ArbIDOrHeader_get, _VSBIOInterface.icsSpyMessageVSB_ArbIDOrHeader_set)
    Data = property(_VSBIOInterface.icsSpyMessageVSB_Data_get, _VSBIOInterface.icsSpyMessageVSB_Data_set)
    StatusBitField3 = property(_VSBIOInterface.icsSpyMessageVSB_StatusBitField3_get, _VSBIOInterface.icsSpyMessageVSB_StatusBitField3_set)
    StatusBitField4 = property(_VSBIOInterface.icsSpyMessageVSB_StatusBitField4_get, _VSBIOInterface.icsSpyMessageVSB_StatusBitField4_set)
    AckBytes = property(_VSBIOInterface.icsSpyMessageVSB_AckBytes_get, _VSBIOInterface.icsSpyMessageVSB_AckBytes_set)
    ExtraDataPtr = property(_VSBIOInterface.icsSpyMessageVSB_ExtraDataPtr_get, _VSBIOInterface.icsSpyMessageVSB_ExtraDataPtr_set)
    MiscData = property(_VSBIOInterface.icsSpyMessageVSB_MiscData_get, _VSBIOInterface.icsSpyMessageVSB_MiscData_set)
    Reserved = property(_VSBIOInterface.icsSpyMessageVSB_Reserved_get, _VSBIOInterface.icsSpyMessageVSB_Reserved_set)

    def __init__(self):
        _VSBIOInterface.icsSpyMessageVSB_swiginit(self, _VSBIOInterface.new_icsSpyMessageVSB())
    __swig_destroy__ = _VSBIOInterface.delete_icsSpyMessageVSB

# Register icsSpyMessageVSB in _VSBIOInterface:
_VSBIOInterface.icsSpyMessageVSB_swigregister(icsSpyMessageVSB)

icsSpyMessageVSB_SIZE = _VSBIOInterface.icsSpyMessageVSB_SIZE
eSuccess = _VSBIOInterface.eSuccess
eEndOfFile = _VSBIOInterface.eEndOfFile
eError = _VSBIOInterface.eError
eBufferTooSmall = _VSBIOInterface.eBufferTooSmall
eInvalidPayloadSize = _VSBIOInterface.eInvalidPayloadSize

def GetEDP(message: "icsSpyMessageVSB") -> "char *":
    return _VSBIOInterface.GetEDP(message)

def GetByteFromData(message: "icsSpyMessageVSB", index: "size_t") -> "unsigned char":
    return _VSBIOInterface.GetByteFromData(message, index)
class intArray8(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    data = property(_VSBIOInterface.intArray8_data_get, _VSBIOInterface.intArray8_data_set)

    def __len__(self) -> "size_t":
        return _VSBIOInterface.intArray8___len__(self)

    def __getitem__(self, i: "size_t") -> "unsigned char const &":
        return _VSBIOInterface.intArray8___getitem__(self, i)

    def __setitem__(self, i: "size_t", v: "unsigned char const &") -> "void":
        return _VSBIOInterface.intArray8___setitem__(self, i, v)

    def __init__(self):
        _VSBIOInterface.intArray8_swiginit(self, _VSBIOInterface.new_intArray8())
    __swig_destroy__ = _VSBIOInterface.delete_intArray8

# Register intArray8 in _VSBIOInterface:
_VSBIOInterface.intArray8_swigregister(intArray8)

class intArray3(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    data = property(_VSBIOInterface.intArray3_data_get, _VSBIOInterface.intArray3_data_set)

    def __len__(self) -> "size_t":
        return _VSBIOInterface.intArray3___len__(self)

    def __getitem__(self, i: "size_t") -> "unsigned char const &":
        return _VSBIOInterface.intArray3___getitem__(self, i)

    def __setitem__(self, i: "size_t", v: "unsigned char const &") -> "void":
        return _VSBIOInterface.intArray3___setitem__(self, i, v)

    def __init__(self):
        _VSBIOInterface.intArray3_swiginit(self, _VSBIOInterface.new_intArray3())
    __swig_destroy__ = _VSBIOInterface.delete_intArray3

# Register intArray3 in _VSBIOInterface:
_VSBIOInterface.intArray3_swigregister(intArray3)



