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

"""
BinLDrivers module, see official documentation at
https://dev.opencascade.org/doc/occt-7.9.0/refman/html/package_binldrivers.html
"""

from sys import version_info as _swig_python_version_info
# Import the low-level C/C++ module
if getattr(globals().get("__spec__"), "parent", None) or __package__ or "." in __name__:
    from . import _BinLDrivers
else:
    import _BinLDrivers

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 == "this":
            set(self, name, value)
        elif name == "thisown":
            self.this.own(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__)


class SwigPyIterator(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    __swig_destroy__ = _BinLDrivers.delete_SwigPyIterator

    def value(self):
        return _BinLDrivers.SwigPyIterator_value(self)

    def incr(self, n=1):
        return _BinLDrivers.SwigPyIterator_incr(self, n)

    def decr(self, n=1):
        return _BinLDrivers.SwigPyIterator_decr(self, n)

    def distance(self, x):
        return _BinLDrivers.SwigPyIterator_distance(self, x)

    def equal(self, x):
        return _BinLDrivers.SwigPyIterator_equal(self, x)

    def copy(self):
        return _BinLDrivers.SwigPyIterator_copy(self)

    def next(self):
        return _BinLDrivers.SwigPyIterator_next(self)

    def __next__(self):
        return _BinLDrivers.SwigPyIterator___next__(self)

    def previous(self):
        return _BinLDrivers.SwigPyIterator_previous(self)

    def advance(self, n):
        return _BinLDrivers.SwigPyIterator_advance(self, n)

    def __eq__(self, x):
        return _BinLDrivers.SwigPyIterator___eq__(self, x)

    def __ne__(self, x):
        return _BinLDrivers.SwigPyIterator___ne__(self, x)

    def __iadd__(self, n):
        return _BinLDrivers.SwigPyIterator___iadd__(self, n)

    def __isub__(self, n):
        return _BinLDrivers.SwigPyIterator___isub__(self, n)

    def __add__(self, n):
        return _BinLDrivers.SwigPyIterator___add__(self, n)

    def __sub__(self, *args):
        return _BinLDrivers.SwigPyIterator___sub__(self, *args)
    def __iter__(self):
        return self

# Register SwigPyIterator in _BinLDrivers:
_BinLDrivers.SwigPyIterator_swigregister(SwigPyIterator)

def _dumps_object(klass):
    """ Overwrite default string output for any wrapped object.
    By default, __repr__ method returns something like:
    <OCC.Core.TopoDS.TopoDS_Shape; proxy of <Swig Object of type 'TopoDS_Shape *' at 0x02BB0758> >
    This is too much verbose.
    We prefer :
    <class 'gp_Pnt'>
    or
    <class 'TopoDS_Shape'>
    """
    klass_name = str(klass.__class__).split(".")[3].split("'")[0]
    repr_string = "<class '" + klass_name + "'"
# for TopoDS_Shape, we also look for the base type
    if klass_name == "TopoDS_Shape":
        if klass.IsNull():
            repr_string += ": Null>"
            return repr_string
        st = klass.ShapeType()
        types = {OCC.Core.TopAbs.TopAbs_VERTEX: "Vertex",
                 OCC.Core.TopAbs.TopAbs_SOLID: "Solid",
                 OCC.Core.TopAbs.TopAbs_EDGE: "Edge",
                 OCC.Core.TopAbs.TopAbs_FACE: "Face",
                 OCC.Core.TopAbs.TopAbs_SHELL: "Shell",
                 OCC.Core.TopAbs.TopAbs_WIRE: "Wire",
                 OCC.Core.TopAbs.TopAbs_COMPOUND: "Compound",
                 OCC.Core.TopAbs.TopAbs_COMPSOLID: "Compsolid"}
        repr_string += "; Type:%s" % types[st]        
    elif hasattr(klass, "IsNull"):
        if klass.IsNull():
            repr_string += "; Null"
    repr_string += ">"
    return repr_string


def process_exception(error, method_name, class_name):
    return _BinLDrivers.process_exception(error, method_name, class_name)

import warnings
from OCC.Wrapper.wrapper_utils import Proxy, deprecated

class ios_base(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr
    erase_event = _BinLDrivers.ios_base_erase_event
    imbue_event = _BinLDrivers.ios_base_imbue_event
    copyfmt_event = _BinLDrivers.ios_base_copyfmt_event

    def register_callback(self, __fn, __index):
        return _BinLDrivers.ios_base_register_callback(self, __fn, __index)

    def flags(self, *args):
        return _BinLDrivers.ios_base_flags(self, *args)

    def setf(self, *args):
        return _BinLDrivers.ios_base_setf(self, *args)

    def unsetf(self, __mask):
        return _BinLDrivers.ios_base_unsetf(self, __mask)

    def precision(self, *args):
        return _BinLDrivers.ios_base_precision(self, *args)

    def width(self, *args):
        return _BinLDrivers.ios_base_width(self, *args)

    @staticmethod
    def sync_with_stdio(__sync=True):
        return _BinLDrivers.ios_base_sync_with_stdio(__sync)

    def imbue(self, __loc):
        return _BinLDrivers.ios_base_imbue(self, __loc)

    def getloc(self):
        return _BinLDrivers.ios_base_getloc(self)

    @staticmethod
    def xalloc():
        return _BinLDrivers.ios_base_xalloc()

    def iword(self, __ix):
        return _BinLDrivers.ios_base_iword(self, __ix)

    def pword(self, __ix):
        return _BinLDrivers.ios_base_pword(self, __ix)
    __swig_destroy__ = _BinLDrivers.delete_ios_base

# Register ios_base in _BinLDrivers:
_BinLDrivers.ios_base_swigregister(ios_base)
cvar = _BinLDrivers.cvar
ios_base.boolalpha = _BinLDrivers.cvar.ios_base_boolalpha
ios_base.dec = _BinLDrivers.cvar.ios_base_dec
ios_base.fixed = _BinLDrivers.cvar.ios_base_fixed
ios_base.hex = _BinLDrivers.cvar.ios_base_hex
ios_base.internal = _BinLDrivers.cvar.ios_base_internal
ios_base.left = _BinLDrivers.cvar.ios_base_left
ios_base.oct = _BinLDrivers.cvar.ios_base_oct
ios_base.right = _BinLDrivers.cvar.ios_base_right
ios_base.scientific = _BinLDrivers.cvar.ios_base_scientific
ios_base.showbase = _BinLDrivers.cvar.ios_base_showbase
ios_base.showpoint = _BinLDrivers.cvar.ios_base_showpoint
ios_base.showpos = _BinLDrivers.cvar.ios_base_showpos
ios_base.skipws = _BinLDrivers.cvar.ios_base_skipws
ios_base.unitbuf = _BinLDrivers.cvar.ios_base_unitbuf
ios_base.uppercase = _BinLDrivers.cvar.ios_base_uppercase
ios_base.adjustfield = _BinLDrivers.cvar.ios_base_adjustfield
ios_base.basefield = _BinLDrivers.cvar.ios_base_basefield
ios_base.floatfield = _BinLDrivers.cvar.ios_base_floatfield
ios_base.badbit = _BinLDrivers.cvar.ios_base_badbit
ios_base.eofbit = _BinLDrivers.cvar.ios_base_eofbit
ios_base.failbit = _BinLDrivers.cvar.ios_base_failbit
ios_base.goodbit = _BinLDrivers.cvar.ios_base_goodbit
ios_base.app = _BinLDrivers.cvar.ios_base_app
ios_base.ate = _BinLDrivers.cvar.ios_base_ate
ios_base.binary = _BinLDrivers.cvar.ios_base_binary
ios_base.ios_base_in = _BinLDrivers.cvar.ios_base_ios_base_in
ios_base.out = _BinLDrivers.cvar.ios_base_out
ios_base.trunc = _BinLDrivers.cvar.ios_base_trunc
ios_base.beg = _BinLDrivers.cvar.ios_base_beg
ios_base.cur = _BinLDrivers.cvar.ios_base_cur
ios_base.end = _BinLDrivers.cvar.ios_base_end

class ios(ios_base):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def rdstate(self):
        return _BinLDrivers.ios_rdstate(self)

    def clear(self, *args):
        return _BinLDrivers.ios_clear(self, *args)

    def setstate(self, __state):
        return _BinLDrivers.ios_setstate(self, __state)

    def good(self):
        return _BinLDrivers.ios_good(self)

    def eof(self):
        return _BinLDrivers.ios_eof(self)

    def fail(self):
        return _BinLDrivers.ios_fail(self)

    def bad(self):
        return _BinLDrivers.ios_bad(self)

    def exceptions(self, *args):
        return _BinLDrivers.ios_exceptions(self, *args)

    def __init__(self, __sb):
        _BinLDrivers.ios_swiginit(self, _BinLDrivers.new_ios(__sb))
    __swig_destroy__ = _BinLDrivers.delete_ios

    def tie(self, *args):
        return _BinLDrivers.ios_tie(self, *args)

    def rdbuf(self, *args):
        return _BinLDrivers.ios_rdbuf(self, *args)

    def copyfmt(self, __rhs):
        return _BinLDrivers.ios_copyfmt(self, __rhs)

    def fill(self, *args):
        return _BinLDrivers.ios_fill(self, *args)

    def imbue(self, __loc):
        return _BinLDrivers.ios_imbue(self, __loc)

    def narrow(self, __c, __dfault):
        return _BinLDrivers.ios_narrow(self, __c, __dfault)

    def widen(self, __c):
        return _BinLDrivers.ios_widen(self, __c)

# Register ios in _BinLDrivers:
_BinLDrivers.ios_swigregister(ios)
class ostream(ios):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, __sb):
        _BinLDrivers.ostream_swiginit(self, _BinLDrivers.new_ostream(__sb))
    __swig_destroy__ = _BinLDrivers.delete_ostream

    def __lshift__(self, *args):
        return _BinLDrivers.ostream___lshift__(self, *args)

    def put(self, __c):
        return _BinLDrivers.ostream_put(self, __c)

    def write(self, __s, __n):
        return _BinLDrivers.ostream_write(self, __s, __n)

    def flush(self):
        return _BinLDrivers.ostream_flush(self)

    def tellp(self):
        return _BinLDrivers.ostream_tellp(self)

    def seekp(self, *args):
        return _BinLDrivers.ostream_seekp(self, *args)

# Register ostream in _BinLDrivers:
_BinLDrivers.ostream_swigregister(ostream)
class istream(ios):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, __sb):
        _BinLDrivers.istream_swiginit(self, _BinLDrivers.new_istream(__sb))
    __swig_destroy__ = _BinLDrivers.delete_istream

    def __rshift__(self, *args):
        return _BinLDrivers.istream___rshift__(self, *args)

    def gcount(self):
        return _BinLDrivers.istream_gcount(self)

    def get(self, *args):
        return _BinLDrivers.istream_get(self, *args)

    def getline(self, *args):
        return _BinLDrivers.istream_getline(self, *args)

    def ignore(self, *args):
        return _BinLDrivers.istream_ignore(self, *args)

    def peek(self):
        return _BinLDrivers.istream_peek(self)

    def read(self, __s, __n):
        return _BinLDrivers.istream_read(self, __s, __n)

    def readsome(self, __s, __n):
        return _BinLDrivers.istream_readsome(self, __s, __n)

    def putback(self, __c):
        return _BinLDrivers.istream_putback(self, __c)

    def unget(self):
        return _BinLDrivers.istream_unget(self)

    def sync(self):
        return _BinLDrivers.istream_sync(self)

    def tellg(self):
        return _BinLDrivers.istream_tellg(self)

    def seekg(self, *args):
        return _BinLDrivers.istream_seekg(self, *args)

# Register istream in _BinLDrivers:
_BinLDrivers.istream_swigregister(istream)
class iostream(istream, ostream):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, __sb):
        _BinLDrivers.iostream_swiginit(self, _BinLDrivers.new_iostream(__sb))
    __swig_destroy__ = _BinLDrivers.delete_iostream

# Register iostream in _BinLDrivers:
_BinLDrivers.iostream_swigregister(iostream)
cin = cvar.cin
cout = cvar.cout
cerr = cvar.cerr
clog = cvar.clog

endl_cb_ptr = _BinLDrivers.endl_cb_ptr
endl = _BinLDrivers.endl
ends_cb_ptr = _BinLDrivers.ends_cb_ptr
ends = _BinLDrivers.ends
flush_cb_ptr = _BinLDrivers.flush_cb_ptr
flush = _BinLDrivers.flush
import OCC.Core.Standard
import OCC.Core.NCollection
import OCC.Core.Message
import OCC.Core.TCollection
import OCC.Core.OSD
import OCC.Core.TColStd
import OCC.Core.BinMDF
import OCC.Core.TDF
import OCC.Core.BinObjMgt
import OCC.Core.Storage
import OCC.Core.TDocStd
import OCC.Core.CDF
import OCC.Core.CDM
import OCC.Core.Resource
import OCC.Core.PCDM

from enum import IntEnum
from OCC.Core.Exception import *

BinLDrivers_ENDATTRLIST = _BinLDrivers.BinLDrivers_ENDATTRLIST
BinLDrivers_ENDLABEL = _BinLDrivers.BinLDrivers_ENDLABEL


class BinLDrivers_Marker(IntEnum):
	BinLDrivers_ENDATTRLIST = - 1
	BinLDrivers_ENDLABEL = - 2
BinLDrivers_ENDATTRLIST = BinLDrivers_Marker.BinLDrivers_ENDATTRLIST
BinLDrivers_ENDLABEL = BinLDrivers_Marker.BinLDrivers_ENDLABEL


def Handle_BinLDrivers_DocumentRetrievalDriver_Create():
    return _BinLDrivers.Handle_BinLDrivers_DocumentRetrievalDriver_Create()

def Handle_BinLDrivers_DocumentRetrievalDriver_DownCast(t):
    return _BinLDrivers.Handle_BinLDrivers_DocumentRetrievalDriver_DownCast(t)

def Handle_BinLDrivers_DocumentRetrievalDriver_IsNull(t):
    return _BinLDrivers.Handle_BinLDrivers_DocumentRetrievalDriver_IsNull(t)

def Handle_BinLDrivers_DocumentStorageDriver_Create():
    return _BinLDrivers.Handle_BinLDrivers_DocumentStorageDriver_Create()

def Handle_BinLDrivers_DocumentStorageDriver_DownCast(t):
    return _BinLDrivers.Handle_BinLDrivers_DocumentStorageDriver_DownCast(t)

def Handle_BinLDrivers_DocumentStorageDriver_IsNull(t):
    return _BinLDrivers.Handle_BinLDrivers_DocumentStorageDriver_IsNull(t)
class binldrivers(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    @staticmethod
    def AttributeDrivers(*args):
        r"""

        Parameters
        ----------
        MsgDrv: Message_Messenger

        Return
        -------
        opencascade::handle<BinMDF_ADriverTable>

        Description
        -----------
        Creates a table of the supported drivers' types.

        """
        return _BinLDrivers.binldrivers_AttributeDrivers(*args)

    @staticmethod
    def DefineFormat(*args):
        r"""

        Parameters
        ----------
        theApp: TDocStd_Application

        Return
        -------
        None

        Description
        -----------
        Defines format 'BinLOcaf' and registers its read and write drivers in the specified application.

        """
        return _BinLDrivers.binldrivers_DefineFormat(*args)

    @staticmethod
    def Factory(*args):
        r"""

        Parameters
        ----------
        theGUID: Standard_GUID

        Return
        -------
        opencascade::handle<Standard_Transient>

        Description
        -----------
        No available documentation.

        """
        return _BinLDrivers.binldrivers_Factory(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _BinLDrivers.binldrivers_swiginit(self, _BinLDrivers.new_binldrivers())
    __swig_destroy__ = _BinLDrivers.delete_binldrivers

# Register binldrivers in _BinLDrivers:
_BinLDrivers.binldrivers_swigregister(binldrivers)
class BinLDrivers_DocumentRetrievalDriver(OCC.Core.PCDM.PCDM_RetrievalDriver):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        Constructor.

        """
        _BinLDrivers.BinLDrivers_DocumentRetrievalDriver_swiginit(self, _BinLDrivers.new_BinLDrivers_DocumentRetrievalDriver(*args))

    def AttributeDrivers(self, *args):
        r"""

        Parameters
        ----------
        theMsgDriver: Message_Messenger

        Return
        -------
        opencascade::handle<BinMDF_ADriverTable>

        Description
        -----------
        No available documentation.

        """
        return _BinLDrivers.BinLDrivers_DocumentRetrievalDriver_AttributeDrivers(self, *args)

    def Read(self, *args):
        r"""

        Parameters
        ----------
        theFileName: str
        theNewDocument: CDM_Document
        theApplication: CDM_Application
        theFilter: PCDM_ReaderFilter (optional, default to opencascade::handle<PCDM_ReaderFilter>())
        theProgress: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        None

        Description
        -----------
        retrieves the content of the file into a new Document.

        Parameters
        ----------
        theIStream: str
        theStorageData: Storage_Data
        theDoc: CDM_Document
        theApplication: CDM_Application
        theFilter: PCDM_ReaderFilter (optional, default to opencascade::handle<PCDM_ReaderFilter>())
        theProgress: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _BinLDrivers.BinLDrivers_DocumentRetrievalDriver_Read(self, *args)


    @staticmethod
    def DownCast(t):
      return Handle_BinLDrivers_DocumentRetrievalDriver_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _BinLDrivers.delete_BinLDrivers_DocumentRetrievalDriver

# Register BinLDrivers_DocumentRetrievalDriver in _BinLDrivers:
_BinLDrivers.BinLDrivers_DocumentRetrievalDriver_swigregister(BinLDrivers_DocumentRetrievalDriver)
class BinLDrivers_DocumentSection(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        Empty constructor.

        Parameters
        ----------
        theName: str
        isPostRead: bool

        Return
        -------
        None

        Description
        -----------
        Constructor.

        """
        _BinLDrivers.BinLDrivers_DocumentSection_swiginit(self, _BinLDrivers.new_BinLDrivers_DocumentSection(*args))

    def IsPostRead(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Query the status: if the Section should be read after OCAF; False means that the Section is read before starting to read OCAF data.

        """
        return _BinLDrivers.BinLDrivers_DocumentSection_IsPostRead(self, *args)

    def Length(self, *args):
        r"""
        Return
        -------
        uint64_t

        Description
        -----------
        Query the length of the section in the persistent file.

        """
        return _BinLDrivers.BinLDrivers_DocumentSection_Length(self, *args)

    def Name(self, *args):
        r"""
        Return
        -------
        TCollection_AsciiString

        Description
        -----------
        Query the name of the section.

        """
        return _BinLDrivers.BinLDrivers_DocumentSection_Name(self, *args)

    def Offset(self, *args):
        r"""
        Return
        -------
        uint64_t

        Description
        -----------
        Query the offset of the section in the persistent file.

        """
        return _BinLDrivers.BinLDrivers_DocumentSection_Offset(self, *args)

    @staticmethod
    def ReadTOC(*args):
        r"""

        Parameters
        ----------
        theSection: BinLDrivers_DocumentSection
        theIS: str
        theDocFormatVersion: TDocStd_FormatVersion

        Return
        -------
        bool

        Description
        -----------
        Fill a DocumentSection instance from the data that are read from TOC. Returns false in case of the stream reading problem.

        """
        return _BinLDrivers.BinLDrivers_DocumentSection_ReadTOC(*args)

    def SetLength(self, *args):
        r"""

        Parameters
        ----------
        theLength: uint64_t

        Return
        -------
        None

        Description
        -----------
        Set the length of the section in the persistent file.

        """
        return _BinLDrivers.BinLDrivers_DocumentSection_SetLength(self, *args)

    def SetOffset(self, *args):
        r"""

        Parameters
        ----------
        theOffset: uint64_t

        Return
        -------
        None

        Description
        -----------
        Set the offset of the section in the persistent file.

        """
        return _BinLDrivers.BinLDrivers_DocumentSection_SetOffset(self, *args)

    def Write(self, *args):
        r"""

        Parameters
        ----------
        theOffset: uint64_t
        theDocFormatVersion: TDocStd_FormatVersion

        Return
        -------
        theOS: Standard_OStream

        Description
        -----------
        Save Offset and Length data into the Section entry in the Document TOC (list of sections).

        """
        return _BinLDrivers.BinLDrivers_DocumentSection_Write(self, *args)

    def WriteTOC(self, *args):
        r"""

        Parameters
        ----------
        theDocFormatVersion: TDocStd_FormatVersion

        Return
        -------
        theOS: Standard_OStream

        Description
        -----------
        Create a Section entry in the Document TOC (list of sections).

        """
        return _BinLDrivers.BinLDrivers_DocumentSection_WriteTOC(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BinLDrivers.delete_BinLDrivers_DocumentSection

# Register BinLDrivers_DocumentSection in _BinLDrivers:
_BinLDrivers.BinLDrivers_DocumentSection_swigregister(BinLDrivers_DocumentSection)
class BinLDrivers_DocumentStorageDriver(OCC.Core.PCDM.PCDM_StorageDriver):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        Constructor.

        """
        _BinLDrivers.BinLDrivers_DocumentStorageDriver_swiginit(self, _BinLDrivers.new_BinLDrivers_DocumentStorageDriver(*args))

    def AddSection(self, *args):
        r"""

        Parameters
        ----------
        theName: str
        isPostRead: bool (optional, default to Standard_True)

        Return
        -------
        None

        Description
        -----------
        Create a section that should be written after the OCAF data.

        """
        return _BinLDrivers.BinLDrivers_DocumentStorageDriver_AddSection(self, *args)

    def AttributeDrivers(self, *args):
        r"""

        Parameters
        ----------
        theMsgDriver: Message_Messenger

        Return
        -------
        opencascade::handle<BinMDF_ADriverTable>

        Description
        -----------
        No available documentation.

        """
        return _BinLDrivers.BinLDrivers_DocumentStorageDriver_AttributeDrivers(self, *args)

    def IsQuickPart(self, *args):
        r"""

        Parameters
        ----------
        theVersion: int

        Return
        -------
        bool

        Description
        -----------
        Return true if document should be stored in quick mode for partial reading.

        """
        return _BinLDrivers.BinLDrivers_DocumentStorageDriver_IsQuickPart(self, *args)

    def Write(self, *args):
        r"""

        Parameters
        ----------
        theDocument: CDM_Document
        theFileName: str
        theRange: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        None

        Description
        -----------
        Write <theDocument> to the binary file <theFileName>.

        Parameters
        ----------
        theDocument: CDM_Document
        theRange: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        theOStream: Standard_OStream

        Description
        -----------
        Write <theDocument> to theOStream.

        """
        return _BinLDrivers.BinLDrivers_DocumentStorageDriver_Write(self, *args)


    @staticmethod
    def DownCast(t):
      return Handle_BinLDrivers_DocumentStorageDriver_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _BinLDrivers.delete_BinLDrivers_DocumentStorageDriver

# Register BinLDrivers_DocumentStorageDriver in _BinLDrivers:
_BinLDrivers.BinLDrivers_DocumentStorageDriver_swigregister(BinLDrivers_DocumentStorageDriver)



@deprecated
def binldrivers_AttributeDrivers(*args):
	return binldrivers.AttributeDrivers(*args)

@deprecated
def binldrivers_DefineFormat(*args):
	return binldrivers.DefineFormat(*args)

@deprecated
def binldrivers_Factory(*args):
	return binldrivers.Factory(*args)

@deprecated
def BinLDrivers_DocumentSection_ReadTOC(*args):
	return BinLDrivers_DocumentSection.ReadTOC(*args)



