@classmethod
def bind_complete(cls, ldap):
    """Called to mark a successful bind to the LDAP server.

        :param ldap.LDAPObject ldap: The LDAP object.

        :return: None - any returned value is ignored.

        This callback is used to indicate a successful bind, and to give you
        one opportunity to interact with the LDAP server, before the connection
        is taken over by the syncrepl search.

        For example, if you want to record the bind DN (which you might not
        know, if you are doing things like a SASL bind), or you want to
        retrieve the schema stored on the server, this is the time to do it!

        This is the very first callback to be called.  Once the callback
        completes, the syncrepl search will begin, and other callbacks will
        start coming in.

        .. note::

            Once the callback has completed, there is no guarantee that `ldap`
            will still be a valid reference.

        .. warning::

            If you start any asynchronous operations (which includes searches),
            those operations **must** be completed before this callback
            returns.

        .. warning::

            Please do not unbind `ldap` from the LDAP server!

        .. warning::

            Once the callback completes, this LDAP connection will be used for
            the syncrepl search.  **No other operations will be allowed!**
            If you want to communicate with the LDAP server after this callback
            completes, you will need to set up a separate LDAP connection.
        """
    pass
