# This file was automatically generated by SWIG (https://www.swig.org).
# Version 4.1.1
#
# 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
# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _data
else:
    from arc import _data

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__ = _data.delete_SwigPyIterator

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

import warnings

def deprecated(method):
    """This decorator is used to mark python methods as deprecated, _not_
    functions. It will result in a warning being emmitted when the method
    is used."""
    def newMethod(*args, **kwargs):
        warnings.warn("Call to deprecated method 'arc.%s.%s'." % (args[0].__class__.__name__, method.__name__), category = DeprecationWarning, stacklevel = 2)
        return method(*args, **kwargs)
    newMethod.__name__ = method.__name__
    newMethod.__doc__ = method.__doc__
    newMethod.__dict__.update(method.__dict__)
    return newMethod


class StaticPropertyWrapper(object):
    def __init__(self, wrapped_class):
        object.__setattr__(self, "wrapped_class", wrapped_class)

    def __getattr__(self, name):
        orig_attr = getattr(self.wrapped_class, name)
        if isinstance(orig_attr, property):
            return orig_attr.fget()
        else:
            return orig_attr

    def __setattr__(self, name, value):
        orig_attr = getattr(self.wrapped_class, name)
        if isinstance(orig_attr, property):
            orig_attr.fset(value)
        else:
            setattr(self.wrapped_class, name, value)



DataStatusRetryableBase = _data.DataStatusRetryableBase
DataStatusErrnoBase = _data.DataStatusErrnoBase
EARCTRANSFERTIMEOUT = _data.EARCTRANSFERTIMEOUT
EARCCHECKSUM = _data.EARCCHECKSUM
EARCLOGIC = _data.EARCLOGIC
EARCRESINVAL = _data.EARCRESINVAL
EARCSVCTMP = _data.EARCSVCTMP
EARCSVCPERM = _data.EARCSVCPERM
EARCUIDSWITCH = _data.EARCUIDSWITCH
EARCREQUESTTIMEOUT = _data.EARCREQUESTTIMEOUT
EARCOTHER = _data.EARCOTHER
DataStatusErrnoMax = _data.DataStatusErrnoMax
class DataStatus(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Success = _data.DataStatus_Success
    ReadAcquireError = _data.DataStatus_ReadAcquireError
    WriteAcquireError = _data.DataStatus_WriteAcquireError
    ReadResolveError = _data.DataStatus_ReadResolveError
    WriteResolveError = _data.DataStatus_WriteResolveError
    ReadStartError = _data.DataStatus_ReadStartError
    WriteStartError = _data.DataStatus_WriteStartError
    ReadError = _data.DataStatus_ReadError
    WriteError = _data.DataStatus_WriteError
    TransferError = _data.DataStatus_TransferError
    ReadStopError = _data.DataStatus_ReadStopError
    WriteStopError = _data.DataStatus_WriteStopError
    PreRegisterError = _data.DataStatus_PreRegisterError
    PostRegisterError = _data.DataStatus_PostRegisterError
    UnregisterError = _data.DataStatus_UnregisterError
    CacheError = _data.DataStatus_CacheError
    CredentialsExpiredError = _data.DataStatus_CredentialsExpiredError
    DeleteError = _data.DataStatus_DeleteError
    NoLocationError = _data.DataStatus_NoLocationError
    LocationAlreadyExistsError = _data.DataStatus_LocationAlreadyExistsError
    NotSupportedForDirectDataPointsError = _data.DataStatus_NotSupportedForDirectDataPointsError
    UnimplementedError = _data.DataStatus_UnimplementedError
    IsReadingError = _data.DataStatus_IsReadingError
    IsWritingError = _data.DataStatus_IsWritingError
    CheckError = _data.DataStatus_CheckError
    ListError = _data.DataStatus_ListError
    ListNonDirError = _data.DataStatus_ListNonDirError
    StatError = _data.DataStatus_StatError
    StatNotPresentError = _data.DataStatus_StatNotPresentError
    NotInitializedError = _data.DataStatus_NotInitializedError
    SystemError = _data.DataStatus_SystemError
    StageError = _data.DataStatus_StageError
    InconsistentMetadataError = _data.DataStatus_InconsistentMetadataError
    ReadPrepareError = _data.DataStatus_ReadPrepareError
    ReadPrepareWait = _data.DataStatus_ReadPrepareWait
    WritePrepareError = _data.DataStatus_WritePrepareError
    WritePrepareWait = _data.DataStatus_WritePrepareWait
    ReadFinishError = _data.DataStatus_ReadFinishError
    WriteFinishError = _data.DataStatus_WriteFinishError
    CreateDirectoryError = _data.DataStatus_CreateDirectoryError
    RenameError = _data.DataStatus_RenameError
    SuccessCached = _data.DataStatus_SuccessCached
    SuccessCancelled = _data.DataStatus_SuccessCancelled
    GenericError = _data.DataStatus_GenericError
    UnknownError = _data.DataStatus_UnknownError
    ReadAcquireErrorRetryable = _data.DataStatus_ReadAcquireErrorRetryable
    WriteAcquireErrorRetryable = _data.DataStatus_WriteAcquireErrorRetryable
    ReadResolveErrorRetryable = _data.DataStatus_ReadResolveErrorRetryable
    WriteResolveErrorRetryable = _data.DataStatus_WriteResolveErrorRetryable
    ReadStartErrorRetryable = _data.DataStatus_ReadStartErrorRetryable
    WriteStartErrorRetryable = _data.DataStatus_WriteStartErrorRetryable
    ReadErrorRetryable = _data.DataStatus_ReadErrorRetryable
    WriteErrorRetryable = _data.DataStatus_WriteErrorRetryable
    TransferErrorRetryable = _data.DataStatus_TransferErrorRetryable
    ReadStopErrorRetryable = _data.DataStatus_ReadStopErrorRetryable
    WriteStopErrorRetryable = _data.DataStatus_WriteStopErrorRetryable
    PreRegisterErrorRetryable = _data.DataStatus_PreRegisterErrorRetryable
    PostRegisterErrorRetryable = _data.DataStatus_PostRegisterErrorRetryable
    UnregisterErrorRetryable = _data.DataStatus_UnregisterErrorRetryable
    CacheErrorRetryable = _data.DataStatus_CacheErrorRetryable
    DeleteErrorRetryable = _data.DataStatus_DeleteErrorRetryable
    CheckErrorRetryable = _data.DataStatus_CheckErrorRetryable
    ListErrorRetryable = _data.DataStatus_ListErrorRetryable
    StatErrorRetryable = _data.DataStatus_StatErrorRetryable
    StageErrorRetryable = _data.DataStatus_StageErrorRetryable
    ReadPrepareErrorRetryable = _data.DataStatus_ReadPrepareErrorRetryable
    WritePrepareErrorRetryable = _data.DataStatus_WritePrepareErrorRetryable
    ReadFinishErrorRetryable = _data.DataStatus_ReadFinishErrorRetryable
    WriteFinishErrorRetryable = _data.DataStatus_WriteFinishErrorRetryable
    CreateDirectoryErrorRetryable = _data.DataStatus_CreateDirectoryErrorRetryable
    RenameErrorRetryable = _data.DataStatus_RenameErrorRetryable
    GenericErrorRetryable = _data.DataStatus_GenericErrorRetryable

    def __init__(self, *args):
        _data.DataStatus_swiginit(self, _data.new_DataStatus(*args))

    def __eq__(self, *args):
        return _data.DataStatus___eq__(self, *args)

    def __ne__(self, *args):
        return _data.DataStatus___ne__(self, *args)

    def __nonzero__(self):
        return _data.DataStatus___nonzero__(self)
    __bool__ = __nonzero__



    def Passed(self):
        return _data.DataStatus_Passed(self)

    def Retryable(self):
        return _data.DataStatus_Retryable(self)

    def GetStatus(self):
        return _data.DataStatus_GetStatus(self)

    def SetErrno(self, error_no):
        return _data.DataStatus_SetErrno(self, error_no)

    def GetErrno(self):
        return _data.DataStatus_GetErrno(self)

    def GetStrErrno(self):
        return _data.DataStatus_GetStrErrno(self)

    def SetDesc(self, d):
        return _data.DataStatus_SetDesc(self, d)

    def GetDesc(self):
        return _data.DataStatus_GetDesc(self)

    def __str__(self):
        return _data.DataStatus___str__(self)
    __swig_destroy__ = _data.delete_DataStatus

# Register DataStatus in _data:
_data.DataStatus_swigregister(DataStatus)

def __lshift__(*args):
    return _data.__lshift__(*args)
class FileInfo(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    file_type_unknown = _data.FileInfo_file_type_unknown
    file_type_file = _data.FileInfo_file_type_file
    file_type_dir = _data.FileInfo_file_type_dir

    def __init__(self, *args):
        _data.FileInfo_swiginit(self, _data.new_FileInfo(*args))

    def GetName(self):
        return _data.FileInfo_GetName(self)

    def GetLastName(self):
        return _data.FileInfo_GetLastName(self)

    def SetName(self, n):
        return _data.FileInfo_SetName(self, n)

    def GetURLs(self):
        return _data.FileInfo_GetURLs(self)

    def AddURL(self, u):
        return _data.FileInfo_AddURL(self, u)

    def CheckSize(self):
        return _data.FileInfo_CheckSize(self)

    def GetSize(self):
        return _data.FileInfo_GetSize(self)

    def SetSize(self, s):
        return _data.FileInfo_SetSize(self, s)

    def CheckCheckSum(self):
        return _data.FileInfo_CheckCheckSum(self)

    def GetCheckSum(self):
        return _data.FileInfo_GetCheckSum(self)

    def SetCheckSum(self, c):
        return _data.FileInfo_SetCheckSum(self, c)

    def CheckModified(self):
        return _data.FileInfo_CheckModified(self)

    def GetModified(self):
        return _data.FileInfo_GetModified(self)

    def SetModified(self, t):
        return _data.FileInfo_SetModified(self, t)

    def CheckValid(self):
        return _data.FileInfo_CheckValid(self)

    def GetValid(self):
        return _data.FileInfo_GetValid(self)

    def SetValid(self, t):
        return _data.FileInfo_SetValid(self, t)

    def CheckType(self):
        return _data.FileInfo_CheckType(self)

    def GetType(self):
        return _data.FileInfo_GetType(self)

    def SetType(self, t):
        return _data.FileInfo_SetType(self, t)

    def CheckLatency(self):
        return _data.FileInfo_CheckLatency(self)

    def GetLatency(self):
        return _data.FileInfo_GetLatency(self)

    def SetLatency(self, l):
        return _data.FileInfo_SetLatency(self, l)

    def GetMetaData(self):
        return _data.FileInfo_GetMetaData(self)

    def SetMetaData(self, att, val):
        return _data.FileInfo_SetMetaData(self, att, val)

    def __lt__(self, f):
        return _data.FileInfo___lt__(self, f)

    def __nonzero__(self):
        return _data.FileInfo___nonzero__(self)
    __bool__ = __nonzero__


    __swig_destroy__ = _data.delete_FileInfo

# Register FileInfo in _data:
_data.FileInfo_swigregister(FileInfo)
class URLMap(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):
        _data.URLMap_swiginit(self, _data.new_URLMap())
    __swig_destroy__ = _data.delete_URLMap

    def map(self, url):
        return _data.URLMap_map(self, url)

    def local(self, url):
        return _data.URLMap_local(self, url)

    def add(self, *args):
        return _data.URLMap_add(self, *args)

    def __nonzero__(self):
        return _data.URLMap___nonzero__(self)
    __bool__ = __nonzero__



# Register URLMap in _data:
_data.URLMap_swigregister(URLMap)
class DataPoint(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
    ACCESS_LATENCY_ZERO = _data.DataPoint_ACCESS_LATENCY_ZERO
    ACCESS_LATENCY_SMALL = _data.DataPoint_ACCESS_LATENCY_SMALL
    ACCESS_LATENCY_LARGE = _data.DataPoint_ACCESS_LATENCY_LARGE
    INFO_TYPE_MINIMAL = _data.DataPoint_INFO_TYPE_MINIMAL
    INFO_TYPE_NAME = _data.DataPoint_INFO_TYPE_NAME
    INFO_TYPE_TYPE = _data.DataPoint_INFO_TYPE_TYPE
    INFO_TYPE_TIMES = _data.DataPoint_INFO_TYPE_TIMES
    INFO_TYPE_CONTENT = _data.DataPoint_INFO_TYPE_CONTENT
    INFO_TYPE_CKSUM = _data.DataPoint_INFO_TYPE_CKSUM
    INFO_TYPE_ACCESS = _data.DataPoint_INFO_TYPE_ACCESS
    INFO_TYPE_STRUCT = _data.DataPoint_INFO_TYPE_STRUCT
    INFO_TYPE_REST = _data.DataPoint_INFO_TYPE_REST
    INFO_TYPE_ALL = _data.DataPoint_INFO_TYPE_ALL

    def Transfer(self, otherendpoint, source, callback=None):
        return _data.DataPoint_Transfer(self, otherendpoint, source, callback)

    @staticmethod
    def Transfer3rdParty(source, destination, usercfg, callback=None):
        return _data.DataPoint_Transfer3rdParty(source, destination, usercfg, callback)
    __swig_destroy__ = _data.delete_DataPoint

    def GetURL(self):
        return _data.DataPoint_GetURL(self)

    def GetUserConfig(self):
        return _data.DataPoint_GetUserConfig(self)

    def SetURL(self, url):
        return _data.DataPoint_SetURL(self, url)

    def str(self):
        return _data.DataPoint_str(self)

    def __nonzero__(self):
        return _data.DataPoint___nonzero__(self)
    __bool__ = __nonzero__



    def PrepareReading(self, timeout, wait_time):
        return _data.DataPoint_PrepareReading(self, timeout, wait_time)

    def PrepareWriting(self, timeout, wait_time):
        return _data.DataPoint_PrepareWriting(self, timeout, wait_time)

    def StartReading(self, buffer):
        return _data.DataPoint_StartReading(self, buffer)

    def StartWriting(self, buffer, space_cb=None):
        return _data.DataPoint_StartWriting(self, buffer, space_cb)

    def StopReading(self):
        return _data.DataPoint_StopReading(self)

    def StopWriting(self):
        return _data.DataPoint_StopWriting(self)

    def FinishReading(self, error=False):
        return _data.DataPoint_FinishReading(self, error)

    def FinishWriting(self, error=False):
        return _data.DataPoint_FinishWriting(self, error)

    def Check(self, check_meta):
        return _data.DataPoint_Check(self, check_meta)

    def Remove(self):
        return _data.DataPoint_Remove(self)

    def Stat(self, *args):
        return _data.DataPoint_Stat(self, *args)

    def List(self, *args):
        return _data.DataPoint_List(self, *args)

    def CreateDirectory(self, with_parents=False):
        return _data.DataPoint_CreateDirectory(self, with_parents)

    def Rename(self, newurl):
        return _data.DataPoint_Rename(self, newurl)

    def ReadOutOfOrder(self, v):
        return _data.DataPoint_ReadOutOfOrder(self, v)

    def WriteOutOfOrder(self):
        return _data.DataPoint_WriteOutOfOrder(self)

    def SetAdditionalChecks(self, v):
        return _data.DataPoint_SetAdditionalChecks(self, v)

    def GetAdditionalChecks(self):
        return _data.DataPoint_GetAdditionalChecks(self)

    def SetSecure(self, v):
        return _data.DataPoint_SetSecure(self, v)

    def GetSecure(self):
        return _data.DataPoint_GetSecure(self)

    def Passive(self, v):
        return _data.DataPoint_Passive(self, v)

    def GetFailureReason(self):
        return _data.DataPoint_GetFailureReason(self)

    def Range(self, start=0, end=0):
        return _data.DataPoint_Range(self, start, end)

    def Resolve(self, *args):
        return _data.DataPoint_Resolve(self, *args)

    def Registered(self):
        return _data.DataPoint_Registered(self)

    def PreRegister(self, replication, force=False):
        return _data.DataPoint_PreRegister(self, replication, force)

    def PostRegister(self, replication):
        return _data.DataPoint_PostRegister(self, replication)

    def PreUnregister(self, replication):
        return _data.DataPoint_PreUnregister(self, replication)

    def Unregister(self, all):
        return _data.DataPoint_Unregister(self, all)

    def Finalise(self, error_msg, dn):
        return _data.DataPoint_Finalise(self, error_msg, dn)

    def CheckSize(self):
        return _data.DataPoint_CheckSize(self)

    def SetSize(self, val):
        return _data.DataPoint_SetSize(self, val)

    def GetSize(self):
        return _data.DataPoint_GetSize(self)

    def CheckCheckSum(self):
        return _data.DataPoint_CheckCheckSum(self)

    def SetCheckSum(self, val):
        return _data.DataPoint_SetCheckSum(self, val)

    def GetCheckSum(self):
        return _data.DataPoint_GetCheckSum(self)

    def DefaultCheckSum(self):
        return _data.DataPoint_DefaultCheckSum(self)

    def CheckModified(self):
        return _data.DataPoint_CheckModified(self)

    def SetModified(self, val):
        return _data.DataPoint_SetModified(self, val)

    def GetModified(self):
        return _data.DataPoint_GetModified(self)

    def CheckValid(self):
        return _data.DataPoint_CheckValid(self)

    def SetValid(self, val):
        return _data.DataPoint_SetValid(self, val)

    def GetValid(self):
        return _data.DataPoint_GetValid(self)

    def SetAccessLatency(self, latency):
        return _data.DataPoint_SetAccessLatency(self, latency)

    def GetAccessLatency(self):
        return _data.DataPoint_GetAccessLatency(self)

    def BufSize(self):
        return _data.DataPoint_BufSize(self)

    def BufNum(self):
        return _data.DataPoint_BufNum(self)

    def Cache(self):
        return _data.DataPoint_Cache(self)

    def Local(self):
        return _data.DataPoint_Local(self)

    def ReadOnly(self):
        return _data.DataPoint_ReadOnly(self)

    def GetTries(self):
        return _data.DataPoint_GetTries(self)

    def SetTries(self, n):
        return _data.DataPoint_SetTries(self, n)

    def NextTry(self):
        return _data.DataPoint_NextTry(self)

    def RequiresCredentials(self):
        return _data.DataPoint_RequiresCredentials(self)

    def RequiresCredentialsInFile(self):
        return _data.DataPoint_RequiresCredentialsInFile(self)

    def IsIndex(self):
        return _data.DataPoint_IsIndex(self)

    def IsStageable(self):
        return _data.DataPoint_IsStageable(self)

    def SupportsTransfer(self):
        return _data.DataPoint_SupportsTransfer(self)

    def AcceptsMeta(self):
        return _data.DataPoint_AcceptsMeta(self)

    def ProvidesMeta(self):
        return _data.DataPoint_ProvidesMeta(self)

    def SetMeta(self, p):
        return _data.DataPoint_SetMeta(self, p)

    def ResetMeta(self):
        return _data.DataPoint_ResetMeta(self)

    def CompareMeta(self, p):
        return _data.DataPoint_CompareMeta(self, p)

    def TransferLocations(self):
        return _data.DataPoint_TransferLocations(self)

    def ClearTransferLocations(self):
        return _data.DataPoint_ClearTransferLocations(self)

    def CurrentLocation(self):
        return _data.DataPoint_CurrentLocation(self)

    def CurrentLocationMetadata(self):
        return _data.DataPoint_CurrentLocationMetadata(self)

    def CurrentLocationHandle(self):
        return _data.DataPoint_CurrentLocationHandle(self)

    def CompareLocationMetadata(self):
        return _data.DataPoint_CompareLocationMetadata(self)

    def NextLocation(self):
        return _data.DataPoint_NextLocation(self)

    def LocationValid(self):
        return _data.DataPoint_LocationValid(self)

    def LastLocation(self):
        return _data.DataPoint_LastLocation(self)

    def HaveLocations(self):
        return _data.DataPoint_HaveLocations(self)

    def AddLocation(self, url, meta):
        return _data.DataPoint_AddLocation(self, url, meta)

    def RemoveLocation(self):
        return _data.DataPoint_RemoveLocation(self)

    def RemoveLocations(self, p):
        return _data.DataPoint_RemoveLocations(self, p)

    def ClearLocations(self):
        return _data.DataPoint_ClearLocations(self)

    def AddCheckSumObject(self, cksum):
        return _data.DataPoint_AddCheckSumObject(self, cksum)

    def GetCheckSumObject(self, index):
        return _data.DataPoint_GetCheckSumObject(self, index)

    def SortLocations(self, pattern, url_map):
        return _data.DataPoint_SortLocations(self, pattern, url_map)

    def AddURLOptions(self, options):
        return _data.DataPoint_AddURLOptions(self, options)

# Register DataPoint in _data:
_data.DataPoint_swigregister(DataPoint)
class DataPointLoader(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

# Register DataPointLoader in _data:
_data.DataPointLoader_swigregister(DataPointLoader)
class DataPointPluginArgument(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, url, usercfg):
        _data.DataPointPluginArgument_swiginit(self, _data.new_DataPointPluginArgument(url, usercfg))
    __swig_destroy__ = _data.delete_DataPointPluginArgument

# Register DataPointPluginArgument in _data:
_data.DataPointPluginArgument_swigregister(DataPointPluginArgument)
class FileInfoList(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def iterator(self):
        return _data.FileInfoList_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _data.FileInfoList___nonzero__(self)

    def __bool__(self):
        return _data.FileInfoList___bool__(self)

    def __len__(self):
        return _data.FileInfoList___len__(self)

    def __getslice__(self, i, j):
        return _data.FileInfoList___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _data.FileInfoList___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _data.FileInfoList___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _data.FileInfoList___delitem__(self, *args)

    def __getitem__(self, *args):
        return _data.FileInfoList___getitem__(self, *args)

    def __setitem__(self, *args):
        return _data.FileInfoList___setitem__(self, *args)

    def pop(self):
        return _data.FileInfoList_pop(self)

    def append(self, x):
        return _data.FileInfoList_append(self, x)

    def empty(self):
        return _data.FileInfoList_empty(self)

    def size(self):
        return _data.FileInfoList_size(self)

    def swap(self, v):
        return _data.FileInfoList_swap(self, v)

    def begin(self):
        return _data.FileInfoList_begin(self)

    def end(self):
        return _data.FileInfoList_end(self)

    def rbegin(self):
        return _data.FileInfoList_rbegin(self)

    def rend(self):
        return _data.FileInfoList_rend(self)

    def clear(self):
        return _data.FileInfoList_clear(self)

    def get_allocator(self):
        return _data.FileInfoList_get_allocator(self)

    def pop_back(self):
        return _data.FileInfoList_pop_back(self)

    def erase(self, *args):
        return _data.FileInfoList_erase(self, *args)

    def __init__(self, *args):
        _data.FileInfoList_swiginit(self, _data.new_FileInfoList(*args))

    def push_back(self, x):
        return _data.FileInfoList_push_back(self, x)

    def front(self):
        return _data.FileInfoList_front(self)

    def back(self):
        return _data.FileInfoList_back(self)

    def assign(self, n, x):
        return _data.FileInfoList_assign(self, n, x)

    def resize(self, *args):
        return _data.FileInfoList_resize(self, *args)

    def insert(self, *args):
        return _data.FileInfoList_insert(self, *args)

    def pop_front(self):
        return _data.FileInfoList_pop_front(self)

    def push_front(self, x):
        return _data.FileInfoList_push_front(self, x)

    def reverse(self):
        return _data.FileInfoList_reverse(self)
    __swig_destroy__ = _data.delete_FileInfoList

# Register FileInfoList in _data:
_data.FileInfoList_swigregister(FileInfoList)
class DataPointList(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def iterator(self):
        return _data.DataPointList_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _data.DataPointList___nonzero__(self)

    def __bool__(self):
        return _data.DataPointList___bool__(self)

    def __len__(self):
        return _data.DataPointList___len__(self)

    def __getslice__(self, i, j):
        return _data.DataPointList___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _data.DataPointList___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _data.DataPointList___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _data.DataPointList___delitem__(self, *args)

    def __getitem__(self, *args):
        return _data.DataPointList___getitem__(self, *args)

    def __setitem__(self, *args):
        return _data.DataPointList___setitem__(self, *args)

    def pop(self):
        return _data.DataPointList_pop(self)

    def append(self, x):
        return _data.DataPointList_append(self, x)

    def empty(self):
        return _data.DataPointList_empty(self)

    def size(self):
        return _data.DataPointList_size(self)

    def swap(self, v):
        return _data.DataPointList_swap(self, v)

    def begin(self):
        return _data.DataPointList_begin(self)

    def end(self):
        return _data.DataPointList_end(self)

    def rbegin(self):
        return _data.DataPointList_rbegin(self)

    def rend(self):
        return _data.DataPointList_rend(self)

    def clear(self):
        return _data.DataPointList_clear(self)

    def get_allocator(self):
        return _data.DataPointList_get_allocator(self)

    def pop_back(self):
        return _data.DataPointList_pop_back(self)

    def erase(self, *args):
        return _data.DataPointList_erase(self, *args)

    def __init__(self, *args):
        _data.DataPointList_swiginit(self, _data.new_DataPointList(*args))

    def push_back(self, x):
        return _data.DataPointList_push_back(self, x)

    def front(self):
        return _data.DataPointList_front(self)

    def back(self):
        return _data.DataPointList_back(self)

    def assign(self, n, x):
        return _data.DataPointList_assign(self, n, x)

    def resize(self, *args):
        return _data.DataPointList_resize(self, *args)

    def insert(self, *args):
        return _data.DataPointList_insert(self, *args)

    def pop_front(self):
        return _data.DataPointList_pop_front(self)

    def push_front(self, x):
        return _data.DataPointList_push_front(self, x)

    def remove(self, x):
        return _data.DataPointList_remove(self, x)

    def unique(self):
        return _data.DataPointList_unique(self)

    def reverse(self):
        return _data.DataPointList_reverse(self)

    def sort(self):
        return _data.DataPointList_sort(self)

    def merge(self, x):
        return _data.DataPointList_merge(self, x)
    __swig_destroy__ = _data.delete_DataPointList

# Register DataPointList in _data:
_data.DataPointList_swigregister(DataPointList)
class DataHandle(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, url, usercfg):
        _data.DataHandle_swiginit(self, _data.new_DataHandle(url, usercfg))
    __swig_destroy__ = _data.delete_DataHandle

    def __ref__(self, *args):
        return _data.DataHandle___ref__(self, *args)

    def __nonzero__(self):
        return _data.DataHandle___nonzero__(self)
    __bool__ = __nonzero__



    @staticmethod
    def GetPoint(url, usercfg):
        return _data.DataHandle_GetPoint(url, usercfg)

# Register DataHandle in _data:
_data.DataHandle_swigregister(DataHandle)
DATASPEED_AVERAGING_PERIOD = _data.DATASPEED_AVERAGING_PERIOD
class DataSpeed(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):
        _data.DataSpeed_swiginit(self, _data.new_DataSpeed(*args))
    __swig_destroy__ = _data.delete_DataSpeed

    def verbose(self, *args):
        return _data.DataSpeed_verbose(self, *args)

    def set_min_speed(self, min_speed, min_speed_time):
        return _data.DataSpeed_set_min_speed(self, min_speed, min_speed_time)

    def set_min_average_speed(self, min_average_speed):
        return _data.DataSpeed_set_min_average_speed(self, min_average_speed)

    def set_max_inactivity_time(self, max_inactivity_time):
        return _data.DataSpeed_set_max_inactivity_time(self, max_inactivity_time)

    def get_max_inactivity_time(self):
        return _data.DataSpeed_get_max_inactivity_time(self)

    def set_base(self, base_=60):
        return _data.DataSpeed_set_base(self, base_)

    def set_max_data(self, max=0):
        return _data.DataSpeed_set_max_data(self, max)

    def set_progress_indicator(self, func=None):
        return _data.DataSpeed_set_progress_indicator(self, func)

    def reset(self):
        return _data.DataSpeed_reset(self)

    def transfer(self, n=0):
        return _data.DataSpeed_transfer(self, n)

    def hold(self, disable):
        return _data.DataSpeed_hold(self, disable)

    def min_speed_failure(self):
        return _data.DataSpeed_min_speed_failure(self)

    def min_average_speed_failure(self):
        return _data.DataSpeed_min_average_speed_failure(self)

    def max_inactivity_time_failure(self):
        return _data.DataSpeed_max_inactivity_time_failure(self)

    def transferred_size(self):
        return _data.DataSpeed_transferred_size(self)

# Register DataSpeed in _data:
_data.DataSpeed_swigregister(DataSpeed)
class DataBuffer(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    speed = property(_data.DataBuffer_speed_get, _data.DataBuffer_speed_set)

    def __nonzero__(self):
        return _data.DataBuffer___nonzero__(self)
    __bool__ = __nonzero__



    def __init__(self, *args):
        _data.DataBuffer_swiginit(self, _data.new_DataBuffer(*args))
    __swig_destroy__ = _data.delete_DataBuffer

    def set(self, cksum=None, size=1048576, blocks=3):
        return _data.DataBuffer_set(self, cksum, size, blocks)

    def add(self, cksum):
        return _data.DataBuffer_add(self, cksum)

    def is_written(self, handle):
        return _data.DataBuffer_is_written(self, handle)

    def is_notwritten(self, handle):
        return _data.DataBuffer_is_notwritten(self, handle)

    def eof_read(self, *args):
        return _data.DataBuffer_eof_read(self, *args)

    def eof_write(self, *args):
        return _data.DataBuffer_eof_write(self, *args)

    def error_read(self, *args):
        return _data.DataBuffer_error_read(self, *args)

    def error_write(self, *args):
        return _data.DataBuffer_error_write(self, *args)

    def error_transfer(self):
        return _data.DataBuffer_error_transfer(self)

    def error(self):
        return _data.DataBuffer_error(self)

    def wait_any(self):
        return _data.DataBuffer_wait_any(self)

    def wait_used(self):
        return _data.DataBuffer_wait_used(self)

    def wait_for_read(self):
        return _data.DataBuffer_wait_for_read(self)

    def wait_for_write(self):
        return _data.DataBuffer_wait_for_write(self)

    def checksum_valid(self, *args):
        return _data.DataBuffer_checksum_valid(self, *args)

    def checksum_object(self, *args):
        return _data.DataBuffer_checksum_object(self, *args)

    def wait_eof_read(self):
        return _data.DataBuffer_wait_eof_read(self)

    def wait_read(self):
        return _data.DataBuffer_wait_read(self)

    def wait_eof_write(self):
        return _data.DataBuffer_wait_eof_write(self)

    def wait_write(self):
        return _data.DataBuffer_wait_write(self)

    def wait_eof(self):
        return _data.DataBuffer_wait_eof(self)

    def eof_position(self):
        return _data.DataBuffer_eof_position(self)

    def buffer_size(self):
        return _data.DataBuffer_buffer_size(self)

    def for_write(self, *args):
        return _data.DataBuffer_for_write(self, *args)

    def for_read(self, *args):
        return _data.DataBuffer_for_read(self, *args)

    def is_read(self, handle, DataBufferIsReadBuf, offset):
        return _data.DataBuffer_is_read(self, handle, DataBufferIsReadBuf, offset)

# Register DataBuffer in _data:
_data.DataBuffer_swigregister(DataBuffer)
class CacheParameters(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    cache_path = property(_data.CacheParameters_cache_path_get, _data.CacheParameters_cache_path_set)
    cache_link_path = property(_data.CacheParameters_cache_link_path_get, _data.CacheParameters_cache_link_path_set)

    def __init__(self):
        _data.CacheParameters_swiginit(self, _data.new_CacheParameters())
    __swig_destroy__ = _data.delete_CacheParameters

# Register CacheParameters in _data:
_data.CacheParameters_swigregister(CacheParameters)
class FileCache(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):
        _data.FileCache_swiginit(self, _data.new_FileCache(*args))

    def Start(self, url, available, is_locked, delete_first=False):
        return _data.FileCache_Start(self, url, available, is_locked, delete_first)

    def Stop(self, url):
        return _data.FileCache_Stop(self, url)

    def StopAndDelete(self, url):
        return _data.FileCache_StopAndDelete(self, url)

    def File(self, url):
        return _data.FileCache_File(self, url)

    def Link(self, link_path, url, copy, executable, holding_lock, try_again):
        return _data.FileCache_Link(self, link_path, url, copy, executable, holding_lock, try_again)

    def Release(self):
        return _data.FileCache_Release(self)

    def AddDN(self, url, DN, expiry_time):
        return _data.FileCache_AddDN(self, url, DN, expiry_time)

    def CheckDN(self, url, DN):
        return _data.FileCache_CheckDN(self, url, DN)

    def CheckCreated(self, url):
        return _data.FileCache_CheckCreated(self, url)

    def GetCreated(self, url):
        return _data.FileCache_GetCreated(self, url)

    def __nonzero__(self):
        return _data.FileCache___nonzero__(self)
    __bool__ = __nonzero__



    def __eq__(self, a):
        return _data.FileCache___eq__(self, a)
    __swig_destroy__ = _data.delete_FileCache

# Register FileCache in _data:
_data.FileCache_swigregister(FileCache)
class DataMover(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):
        _data.DataMover_swiginit(self, _data.new_DataMover())
    __swig_destroy__ = _data.delete_DataMover

    def Transfer(self, *args):
        return _data.DataMover_Transfer(self, *args)

    def Delete(self, url, errcont=False):
        return _data.DataMover_Delete(self, url, errcont)

    def Cancel(self):
        return _data.DataMover_Cancel(self)

    def verbose(self, *args):
        return _data.DataMover_verbose(self, *args)

    def retry(self, *args):
        return _data.DataMover_retry(self, *args)

    def secure(self, arg2):
        return _data.DataMover_secure(self, arg2)

    def passive(self, arg2):
        return _data.DataMover_passive(self, arg2)

    def force_to_meta(self, arg2):
        return _data.DataMover_force_to_meta(self, arg2)

    def checks(self, *args):
        return _data.DataMover_checks(self, *args)

    def set_default_min_speed(self, min_speed, min_speed_time):
        return _data.DataMover_set_default_min_speed(self, min_speed, min_speed_time)

    def set_default_min_average_speed(self, min_average_speed):
        return _data.DataMover_set_default_min_average_speed(self, min_average_speed)

    def set_default_max_inactivity_time(self, max_inactivity_time):
        return _data.DataMover_set_default_max_inactivity_time(self, max_inactivity_time)

    def set_progress_indicator(self, func=None):
        return _data.DataMover_set_progress_indicator(self, func)

    def set_preferred_pattern(self, pattern):
        return _data.DataMover_set_preferred_pattern(self, pattern)

# Register DataMover in _data:
_data.DataMover_swigregister(DataMover)
class DTRStatus(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    NEW = _data.DTRStatus_NEW
    CHECK_CACHE = _data.DTRStatus_CHECK_CACHE
    CHECKING_CACHE = _data.DTRStatus_CHECKING_CACHE
    CACHE_WAIT = _data.DTRStatus_CACHE_WAIT
    CACHE_CHECKED = _data.DTRStatus_CACHE_CHECKED
    RESOLVE = _data.DTRStatus_RESOLVE
    RESOLVING = _data.DTRStatus_RESOLVING
    RESOLVED = _data.DTRStatus_RESOLVED
    QUERY_REPLICA = _data.DTRStatus_QUERY_REPLICA
    QUERYING_REPLICA = _data.DTRStatus_QUERYING_REPLICA
    REPLICA_QUERIED = _data.DTRStatus_REPLICA_QUERIED
    PRE_CLEAN = _data.DTRStatus_PRE_CLEAN
    PRE_CLEANING = _data.DTRStatus_PRE_CLEANING
    PRE_CLEANED = _data.DTRStatus_PRE_CLEANED
    STAGE_PREPARE = _data.DTRStatus_STAGE_PREPARE
    STAGING_PREPARING = _data.DTRStatus_STAGING_PREPARING
    STAGING_PREPARING_WAIT = _data.DTRStatus_STAGING_PREPARING_WAIT
    STAGED_PREPARED = _data.DTRStatus_STAGED_PREPARED
    TRANSFER = _data.DTRStatus_TRANSFER
    TRANSFERRING = _data.DTRStatus_TRANSFERRING
    TRANSFERRING_CANCEL = _data.DTRStatus_TRANSFERRING_CANCEL
    TRANSFERRED = _data.DTRStatus_TRANSFERRED
    RELEASE_REQUEST = _data.DTRStatus_RELEASE_REQUEST
    RELEASING_REQUEST = _data.DTRStatus_RELEASING_REQUEST
    REQUEST_RELEASED = _data.DTRStatus_REQUEST_RELEASED
    FINALISE_REPLICA = _data.DTRStatus_FINALISE_REPLICA
    FINALISING_REPLICA = _data.DTRStatus_FINALISING_REPLICA
    REPLICA_FINALISED = _data.DTRStatus_REPLICA_FINALISED
    REGISTER_REPLICA = _data.DTRStatus_REGISTER_REPLICA
    REGISTERING_REPLICA = _data.DTRStatus_REGISTERING_REPLICA
    REPLICA_REGISTERED = _data.DTRStatus_REPLICA_REGISTERED
    PROCESS_CACHE = _data.DTRStatus_PROCESS_CACHE
    PROCESSING_CACHE = _data.DTRStatus_PROCESSING_CACHE
    CACHE_PROCESSED = _data.DTRStatus_CACHE_PROCESSED
    DONE = _data.DTRStatus_DONE
    CANCELLED = _data.DTRStatus_CANCELLED
    CANCELLED_FINISHED = _data.DTRStatus_CANCELLED_FINISHED
    ERROR = _data.DTRStatus_ERROR
    NULL_STATE = _data.DTRStatus_NULL_STATE

    def __init__(self, *args):
        _data.DTRStatus_swiginit(self, _data.new_DTRStatus(*args))

    def __eq__(self, *args):
        return _data.DTRStatus___eq__(self, *args)

    def __ne__(self, *args):
        return _data.DTRStatus___ne__(self, *args)

    def str(self):
        return _data.DTRStatus_str(self)

    def SetDesc(self, d):
        return _data.DTRStatus_SetDesc(self, d)

    def GetDesc(self):
        return _data.DTRStatus_GetDesc(self)

    def GetStatus(self):
        return _data.DTRStatus_GetStatus(self)
    __swig_destroy__ = _data.delete_DTRStatus

# Register DTRStatus in _data:
_data.DTRStatus_swigregister(DTRStatus)
cvar = _data.cvar
DTRStatus.ToProcessStates = _data.cvar.DTRStatus_ToProcessStates
DTRStatus.ProcessingStates = _data.cvar.DTRStatus_ProcessingStates
DTRStatus.StagedStates = _data.cvar.DTRStatus_StagedStates

class DTRErrorStatus(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    NONE_ERROR = _data.DTRErrorStatus_NONE_ERROR
    INTERNAL_LOGIC_ERROR = _data.DTRErrorStatus_INTERNAL_LOGIC_ERROR
    INTERNAL_PROCESS_ERROR = _data.DTRErrorStatus_INTERNAL_PROCESS_ERROR
    SELF_REPLICATION_ERROR = _data.DTRErrorStatus_SELF_REPLICATION_ERROR
    CACHE_ERROR = _data.DTRErrorStatus_CACHE_ERROR
    TEMPORARY_REMOTE_ERROR = _data.DTRErrorStatus_TEMPORARY_REMOTE_ERROR
    PERMANENT_REMOTE_ERROR = _data.DTRErrorStatus_PERMANENT_REMOTE_ERROR
    LOCAL_FILE_ERROR = _data.DTRErrorStatus_LOCAL_FILE_ERROR
    TRANSFER_SPEED_ERROR = _data.DTRErrorStatus_TRANSFER_SPEED_ERROR
    STAGING_TIMEOUT_ERROR = _data.DTRErrorStatus_STAGING_TIMEOUT_ERROR
    NO_ERROR_LOCATION = _data.DTRErrorStatus_NO_ERROR_LOCATION
    ERROR_SOURCE = _data.DTRErrorStatus_ERROR_SOURCE
    ERROR_DESTINATION = _data.DTRErrorStatus_ERROR_DESTINATION
    ERROR_TRANSFER = _data.DTRErrorStatus_ERROR_TRANSFER
    ERROR_UNKNOWN = _data.DTRErrorStatus_ERROR_UNKNOWN

    def __init__(self, *args):
        _data.DTRErrorStatus_swiginit(self, _data.new_DTRErrorStatus(*args))

    def GetErrorStatus(self):
        return _data.DTRErrorStatus_GetErrorStatus(self)

    def GetLastErrorState(self):
        return _data.DTRErrorStatus_GetLastErrorState(self)

    def GetErrorLocation(self):
        return _data.DTRErrorStatus_GetErrorLocation(self)

    def GetDesc(self):
        return _data.DTRErrorStatus_GetDesc(self)

    def __eq__(self, *args):
        return _data.DTRErrorStatus___eq__(self, *args)

    def __ne__(self, *args):
        return _data.DTRErrorStatus___ne__(self, *args)
    __swig_destroy__ = _data.delete_DTRErrorStatus

# Register DTRErrorStatus in _data:
_data.DTRErrorStatus_swigregister(DTRErrorStatus)
class DTRStatusTypeVector(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def iterator(self):
        return _data.DTRStatusTypeVector_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _data.DTRStatusTypeVector___nonzero__(self)

    def __bool__(self):
        return _data.DTRStatusTypeVector___bool__(self)

    def __len__(self):
        return _data.DTRStatusTypeVector___len__(self)

    def __getslice__(self, i, j):
        return _data.DTRStatusTypeVector___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _data.DTRStatusTypeVector___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _data.DTRStatusTypeVector___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _data.DTRStatusTypeVector___delitem__(self, *args)

    def __getitem__(self, *args):
        return _data.DTRStatusTypeVector___getitem__(self, *args)

    def __setitem__(self, *args):
        return _data.DTRStatusTypeVector___setitem__(self, *args)

    def pop(self):
        return _data.DTRStatusTypeVector_pop(self)

    def append(self, x):
        return _data.DTRStatusTypeVector_append(self, x)

    def empty(self):
        return _data.DTRStatusTypeVector_empty(self)

    def size(self):
        return _data.DTRStatusTypeVector_size(self)

    def swap(self, v):
        return _data.DTRStatusTypeVector_swap(self, v)

    def begin(self):
        return _data.DTRStatusTypeVector_begin(self)

    def end(self):
        return _data.DTRStatusTypeVector_end(self)

    def rbegin(self):
        return _data.DTRStatusTypeVector_rbegin(self)

    def rend(self):
        return _data.DTRStatusTypeVector_rend(self)

    def clear(self):
        return _data.DTRStatusTypeVector_clear(self)

    def get_allocator(self):
        return _data.DTRStatusTypeVector_get_allocator(self)

    def pop_back(self):
        return _data.DTRStatusTypeVector_pop_back(self)

    def erase(self, *args):
        return _data.DTRStatusTypeVector_erase(self, *args)

    def __init__(self, *args):
        _data.DTRStatusTypeVector_swiginit(self, _data.new_DTRStatusTypeVector(*args))

    def push_back(self, x):
        return _data.DTRStatusTypeVector_push_back(self, x)

    def front(self):
        return _data.DTRStatusTypeVector_front(self)

    def back(self):
        return _data.DTRStatusTypeVector_back(self)

    def assign(self, n, x):
        return _data.DTRStatusTypeVector_assign(self, n, x)

    def resize(self, *args):
        return _data.DTRStatusTypeVector_resize(self, *args)

    def insert(self, *args):
        return _data.DTRStatusTypeVector_insert(self, *args)

    def reserve(self, n):
        return _data.DTRStatusTypeVector_reserve(self, n)

    def capacity(self):
        return _data.DTRStatusTypeVector_capacity(self)
    __swig_destroy__ = _data.delete_DTRStatusTypeVector

# Register DTRStatusTypeVector in _data:
_data.DTRStatusTypeVector_swigregister(DTRStatusTypeVector)
GENERATOR = _data.GENERATOR
SCHEDULER = _data.SCHEDULER
PRE_PROCESSOR = _data.PRE_PROCESSOR
DELIVERY = _data.DELIVERY
POST_PROCESSOR = _data.POST_PROCESSOR
INITIATED = _data.INITIATED
RUNNING = _data.RUNNING
TO_STOP = _data.TO_STOP
STOPPED = _data.STOPPED
class TransferParameters(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    min_average_bandwidth = property(_data.TransferParameters_min_average_bandwidth_get, _data.TransferParameters_min_average_bandwidth_set)
    max_inactivity_time = property(_data.TransferParameters_max_inactivity_time_get, _data.TransferParameters_max_inactivity_time_set)
    min_current_bandwidth = property(_data.TransferParameters_min_current_bandwidth_get, _data.TransferParameters_min_current_bandwidth_set)
    averaging_time = property(_data.TransferParameters_averaging_time_get, _data.TransferParameters_averaging_time_set)

    def __init__(self):
        _data.TransferParameters_swiginit(self, _data.new_TransferParameters())
    __swig_destroy__ = _data.delete_TransferParameters

# Register TransferParameters in _data:
_data.TransferParameters_swigregister(TransferParameters)
class DTRCacheParameters(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    cache_dirs = property(_data.DTRCacheParameters_cache_dirs_get, _data.DTRCacheParameters_cache_dirs_set)
    drain_cache_dirs = property(_data.DTRCacheParameters_drain_cache_dirs_get, _data.DTRCacheParameters_drain_cache_dirs_set)
    readonly_cache_dirs = property(_data.DTRCacheParameters_readonly_cache_dirs_get, _data.DTRCacheParameters_readonly_cache_dirs_set)

    def __init__(self, *args):
        _data.DTRCacheParameters_swiginit(self, _data.new_DTRCacheParameters(*args))
    __swig_destroy__ = _data.delete_DTRCacheParameters

# Register DTRCacheParameters in _data:
_data.DTRCacheParameters_swigregister(DTRCacheParameters)
class DTRCredentialInfo(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):
        _data.DTRCredentialInfo_swiginit(self, _data.new_DTRCredentialInfo(*args))

    def getDN(self):
        return _data.DTRCredentialInfo_getDN(self)

    def getExpiryTime(self):
        return _data.DTRCredentialInfo_getExpiryTime(self)

    def extractVOMSVO(self):
        return _data.DTRCredentialInfo_extractVOMSVO(self)

    def extractVOMSGroup(self):
        return _data.DTRCredentialInfo_extractVOMSGroup(self)

    def extractVOMSRole(self):
        return _data.DTRCredentialInfo_extractVOMSRole(self)
    __swig_destroy__ = _data.delete_DTRCredentialInfo

# Register DTRCredentialInfo in _data:
_data.DTRCredentialInfo_swigregister(DTRCredentialInfo)
CACHEABLE = _data.CACHEABLE
NON_CACHEABLE = _data.NON_CACHEABLE
CACHE_ALREADY_PRESENT = _data.CACHE_ALREADY_PRESENT
CACHE_DOWNLOADED = _data.CACHE_DOWNLOADED
CACHE_LOCKED = _data.CACHE_LOCKED
CACHE_SKIP = _data.CACHE_SKIP
CACHE_NOT_USED = _data.CACHE_NOT_USED
class DTRCallback(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__ = _data.delete_DTRCallback

    def receiveDTR(self, dtr):
        return _data.DTRCallback_receiveDTR(self, dtr)

# Register DTRCallback in _data:
_data.DTRCallback_swigregister(DTRCallback)
class DTR(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    LOG_LEVEL = property(_data.DTR_LOG_LEVEL_get, _data.DTR_LOG_LEVEL_set)

    def __init__(self, *args):
        _data.DTR_swiginit(self, _data.new_DTR(*args))
    __swig_destroy__ = _data.delete_DTR

    def __nonzero__(self):
        return _data.DTR___nonzero__(self)
    __bool__ = __nonzero__



    def registerCallback(self, cb, owner):
        return _data.DTR_registerCallback(self, cb, owner)

    def reset(self):
        return _data.DTR_reset(self)

    def set_id(self, id):
        return _data.DTR_set_id(self, id)

    def get_id(self):
        return _data.DTR_get_id(self)

    def get_short_id(self):
        return _data.DTR_get_short_id(self)

    def get_source(self):
        return _data.DTR_get_source(self)

    def get_destination(self):
        return _data.DTR_get_destination(self)

    def get_source_str(self):
        return _data.DTR_get_source_str(self)

    def get_destination_str(self):
        return _data.DTR_get_destination_str(self)

    def get_usercfg(self):
        return _data.DTR_get_usercfg(self)

    def set_timeout(self, value):
        return _data.DTR_set_timeout(self, value)

    def get_timeout(self):
        return _data.DTR_get_timeout(self)

    def set_process_time(self, process_time):
        return _data.DTR_set_process_time(self, process_time)

    def get_process_time(self):
        return _data.DTR_get_process_time(self)

    def get_creation_time(self):
        return _data.DTR_get_creation_time(self)

    def get_modification_time(self):
        return _data.DTR_get_modification_time(self)

    def get_parent_job_id(self):
        return _data.DTR_get_parent_job_id(self)

    def set_priority(self, pri):
        return _data.DTR_set_priority(self, pri)

    def get_priority(self):
        return _data.DTR_get_priority(self)

    def set_credential_info(self, cred):
        return _data.DTR_set_credential_info(self, cred)

    def get_credential_info(self):
        return _data.DTR_get_credential_info(self)

    def set_transfer_share(self, share_name):
        return _data.DTR_set_transfer_share(self, share_name)

    def get_transfer_share(self):
        return _data.DTR_get_transfer_share(self)

    def set_sub_share(self, share):
        return _data.DTR_set_sub_share(self, share)

    def get_sub_share(self):
        return _data.DTR_get_sub_share(self)

    def set_tries_left(self, tries):
        return _data.DTR_set_tries_left(self, tries)

    def get_tries_left(self):
        return _data.DTR_get_tries_left(self)

    def get_initial_tries(self):
        return _data.DTR_get_initial_tries(self)

    def decrease_tries_left(self):
        return _data.DTR_decrease_tries_left(self)

    def set_status(self, stat):
        return _data.DTR_set_status(self, stat)

    def get_status(self):
        return _data.DTR_get_status(self)

    def set_error_status(self, *args):
        return _data.DTR_set_error_status(self, *args)

    def reset_error_status(self):
        return _data.DTR_reset_error_status(self)

    def get_error_status(self):
        return _data.DTR_get_error_status(self)

    def set_bytes_transferred(self, bytes):
        return _data.DTR_set_bytes_transferred(self, bytes)

    def get_bytes_transferred(self):
        return _data.DTR_get_bytes_transferred(self)

    def set_transfer_time(self, t):
        return _data.DTR_set_transfer_time(self, t)

    def get_transfer_time(self):
        return _data.DTR_get_transfer_time(self)

    def set_cancel_request(self):
        return _data.DTR_set_cancel_request(self)

    def cancel_requested(self):
        return _data.DTR_cancel_requested(self)

    def set_delivery_endpoint(self, endpoint):
        return _data.DTR_set_delivery_endpoint(self, endpoint)

    def get_delivery_endpoint(self):
        return _data.DTR_get_delivery_endpoint(self)

    def add_problematic_delivery_service(self, endpoint):
        return _data.DTR_add_problematic_delivery_service(self, endpoint)

    def get_problematic_delivery_services(self):
        return _data.DTR_get_problematic_delivery_services(self)

    def host_cert_for_remote_delivery(self, *args):
        return _data.DTR_host_cert_for_remote_delivery(self, *args)

    def set_cache_file(self, filename):
        return _data.DTR_set_cache_file(self, filename)

    def get_cache_file(self):
        return _data.DTR_get_cache_file(self)

    def set_cache_parameters(self, param):
        return _data.DTR_set_cache_parameters(self, param)

    def get_cache_parameters(self):
        return _data.DTR_get_cache_parameters(self)

    def set_cache_state(self, state):
        return _data.DTR_set_cache_state(self, state)

    def get_cache_state(self):
        return _data.DTR_get_cache_state(self)

    def set_use_acix(self, acix):
        return _data.DTR_set_use_acix(self, acix)

    def get_use_acix(self):
        return _data.DTR_get_use_acix(self)

    def set_mapped_source(self, *args):
        return _data.DTR_set_mapped_source(self, *args)

    def get_mapped_source(self):
        return _data.DTR_get_mapped_source(self)

    def get_owner(self):
        return _data.DTR_get_owner(self)

    def get_local_user(self):
        return _data.DTR_get_local_user(self)

    def set_replication(self, rep):
        return _data.DTR_set_replication(self, rep)

    def is_replication(self):
        return _data.DTR_is_replication(self)

    def set_force_registration(self, force):
        return _data.DTR_set_force_registration(self, force)

    def is_force_registration(self):
        return _data.DTR_is_force_registration(self)

    def set_bulk_start(self, value):
        return _data.DTR_set_bulk_start(self, value)

    def get_bulk_start(self):
        return _data.DTR_get_bulk_start(self)

    def set_bulk_end(self, value):
        return _data.DTR_set_bulk_end(self, value)

    def get_bulk_end(self):
        return _data.DTR_get_bulk_end(self)

    def bulk_possible(self):
        return _data.DTR_bulk_possible(self)

    def is_mandatory(self):
        return _data.DTR_is_mandatory(self)

    def get_logger(self):
        return _data.DTR_get_logger(self)

    def get_log_destinations(self):
        return _data.DTR_get_log_destinations(self)

    @staticmethod
    def push(dtr, new_owner):
        return _data.DTR_push(dtr, new_owner)

    def suspend(self):
        return _data.DTR_suspend(self)

    def error(self):
        return _data.DTR_error(self)

    def is_destined_for_pre_processor(self):
        return _data.DTR_is_destined_for_pre_processor(self)

    def is_destined_for_post_processor(self):
        return _data.DTR_is_destined_for_post_processor(self)

    def is_destined_for_delivery(self):
        return _data.DTR_is_destined_for_delivery(self)

    def came_from_pre_processor(self):
        return _data.DTR_came_from_pre_processor(self)

    def came_from_post_processor(self):
        return _data.DTR_came_from_post_processor(self)

    def came_from_delivery(self):
        return _data.DTR_came_from_delivery(self)

    def came_from_generator(self):
        return _data.DTR_came_from_generator(self)

    def is_in_final_state(self):
        return _data.DTR_is_in_final_state(self)

    def get_job_perf_log(self):
        return _data.DTR_get_job_perf_log(self)

    def get_job_perf_record(self):
        return _data.DTR_get_job_perf_record(self)

# Register DTR in _data:
_data.DTR_swigregister(DTR)
DTR.LOCAL_DELIVERY = _data.cvar.DTR_LOCAL_DELIVERY


def createDTRPtr(*args):
    return _data.createDTRPtr(*args)

def createDTRLogger(parent, subdomain):
    return _data.createDTRLogger(parent, subdomain)
class DTRCallbackList(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def iterator(self):
        return _data.DTRCallbackList_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _data.DTRCallbackList___nonzero__(self)

    def __bool__(self):
        return _data.DTRCallbackList___bool__(self)

    def __len__(self):
        return _data.DTRCallbackList___len__(self)

    def __getslice__(self, i, j):
        return _data.DTRCallbackList___getslice__(self, i, j)

    def __setslice__(self, *args):
        return _data.DTRCallbackList___setslice__(self, *args)

    def __delslice__(self, i, j):
        return _data.DTRCallbackList___delslice__(self, i, j)

    def __delitem__(self, *args):
        return _data.DTRCallbackList___delitem__(self, *args)

    def __getitem__(self, *args):
        return _data.DTRCallbackList___getitem__(self, *args)

    def __setitem__(self, *args):
        return _data.DTRCallbackList___setitem__(self, *args)

    def pop(self):
        return _data.DTRCallbackList_pop(self)

    def append(self, x):
        return _data.DTRCallbackList_append(self, x)

    def empty(self):
        return _data.DTRCallbackList_empty(self)

    def size(self):
        return _data.DTRCallbackList_size(self)

    def swap(self, v):
        return _data.DTRCallbackList_swap(self, v)

    def begin(self):
        return _data.DTRCallbackList_begin(self)

    def end(self):
        return _data.DTRCallbackList_end(self)

    def rbegin(self):
        return _data.DTRCallbackList_rbegin(self)

    def rend(self):
        return _data.DTRCallbackList_rend(self)

    def clear(self):
        return _data.DTRCallbackList_clear(self)

    def get_allocator(self):
        return _data.DTRCallbackList_get_allocator(self)

    def pop_back(self):
        return _data.DTRCallbackList_pop_back(self)

    def erase(self, *args):
        return _data.DTRCallbackList_erase(self, *args)

    def __init__(self, *args):
        _data.DTRCallbackList_swiginit(self, _data.new_DTRCallbackList(*args))

    def push_back(self, x):
        return _data.DTRCallbackList_push_back(self, x)

    def front(self):
        return _data.DTRCallbackList_front(self)

    def back(self):
        return _data.DTRCallbackList_back(self)

    def assign(self, n, x):
        return _data.DTRCallbackList_assign(self, n, x)

    def resize(self, *args):
        return _data.DTRCallbackList_resize(self, *args)

    def insert(self, *args):
        return _data.DTRCallbackList_insert(self, *args)

    def pop_front(self):
        return _data.DTRCallbackList_pop_front(self)

    def push_front(self, x):
        return _data.DTRCallbackList_push_front(self, x)

    def remove(self, x):
        return _data.DTRCallbackList_remove(self, x)

    def unique(self):
        return _data.DTRCallbackList_unique(self)

    def reverse(self):
        return _data.DTRCallbackList_reverse(self)

    def sort(self):
        return _data.DTRCallbackList_sort(self)

    def merge(self, x):
        return _data.DTRCallbackList_merge(self, x)
    __swig_destroy__ = _data.delete_DTRCallbackList

# Register DTRCallbackList in _data:
_data.DTRCallbackList_swigregister(DTRCallbackList)
class TransferSharesConf(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    USER = _data.TransferSharesConf_USER
    VO = _data.TransferSharesConf_VO
    GROUP = _data.TransferSharesConf_GROUP
    ROLE = _data.TransferSharesConf_ROLE
    NONE = _data.TransferSharesConf_NONE

    def __init__(self, *args):
        _data.TransferSharesConf_swiginit(self, _data.new_TransferSharesConf(*args))

    def set_share_type(self, type):
        return _data.TransferSharesConf_set_share_type(self, type)

    def set_reference_share(self, RefShare, Priority):
        return _data.TransferSharesConf_set_reference_share(self, RefShare, Priority)

    def set_reference_shares(self, shares):
        return _data.TransferSharesConf_set_reference_shares(self, shares)

    def is_configured(self, ShareToCheck):
        return _data.TransferSharesConf_is_configured(self, ShareToCheck)

    def get_basic_priority(self, ShareToCheck):
        return _data.TransferSharesConf_get_basic_priority(self, ShareToCheck)

    def conf(self):
        return _data.TransferSharesConf_conf(self)

    def extract_share_info(self, DTRToExtract):
        return _data.TransferSharesConf_extract_share_info(self, DTRToExtract)
    __swig_destroy__ = _data.delete_TransferSharesConf

# Register TransferSharesConf in _data:
_data.TransferSharesConf_swigregister(TransferSharesConf)
class TransferShares(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):
        _data.TransferShares_swiginit(self, _data.new_TransferShares(*args))
    __swig_destroy__ = _data.delete_TransferShares

    def set_shares_conf(self, share_conf):
        return _data.TransferShares_set_shares_conf(self, share_conf)

    def calculate_shares(self, TotalNumberOfSlots):
        return _data.TransferShares_calculate_shares(self, TotalNumberOfSlots)

    def increase_transfer_share(self, ShareToIncrease):
        return _data.TransferShares_increase_transfer_share(self, ShareToIncrease)

    def decrease_transfer_share(self, ShareToDecrease):
        return _data.TransferShares_decrease_transfer_share(self, ShareToDecrease)

    def decrease_number_of_slots(self, ShareToDecrease):
        return _data.TransferShares_decrease_number_of_slots(self, ShareToDecrease)

    def can_start(self, ShareToStart):
        return _data.TransferShares_can_start(self, ShareToStart)

    def active_shares(self):
        return _data.TransferShares_active_shares(self)

# Register TransferShares in _data:
_data.TransferShares_swigregister(TransferShares)
class StringIntMap(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def iterator(self):
        return _data.StringIntMap_iterator(self)
    def __iter__(self):
        return self.iterator()

    def __nonzero__(self):
        return _data.StringIntMap___nonzero__(self)

    def __bool__(self):
        return _data.StringIntMap___bool__(self)

    def __len__(self):
        return _data.StringIntMap___len__(self)
    def __iter__(self):
        return self.key_iterator()
    def iterkeys(self):
        return self.key_iterator()
    def itervalues(self):
        return self.value_iterator()
    def iteritems(self):
        return self.iterator()

    def __getitem__(self, key):
        return _data.StringIntMap___getitem__(self, key)

    def __delitem__(self, key):
        return _data.StringIntMap___delitem__(self, key)

    def has_key(self, key):
        return _data.StringIntMap_has_key(self, key)

    def keys(self):
        return _data.StringIntMap_keys(self)

    def values(self):
        return _data.StringIntMap_values(self)

    def items(self):
        return _data.StringIntMap_items(self)

    def __contains__(self, key):
        return _data.StringIntMap___contains__(self, key)

    def key_iterator(self):
        return _data.StringIntMap_key_iterator(self)

    def value_iterator(self):
        return _data.StringIntMap_value_iterator(self)

    def __setitem__(self, *args):
        return _data.StringIntMap___setitem__(self, *args)

    def asdict(self):
        return _data.StringIntMap_asdict(self)

    def __init__(self, *args):
        _data.StringIntMap_swiginit(self, _data.new_StringIntMap(*args))

    def empty(self):
        return _data.StringIntMap_empty(self)

    def size(self):
        return _data.StringIntMap_size(self)

    def swap(self, v):
        return _data.StringIntMap_swap(self, v)

    def begin(self):
        return _data.StringIntMap_begin(self)

    def end(self):
        return _data.StringIntMap_end(self)

    def rbegin(self):
        return _data.StringIntMap_rbegin(self)

    def rend(self):
        return _data.StringIntMap_rend(self)

    def clear(self):
        return _data.StringIntMap_clear(self)

    def get_allocator(self):
        return _data.StringIntMap_get_allocator(self)

    def count(self, x):
        return _data.StringIntMap_count(self, x)

    def erase(self, *args):
        return _data.StringIntMap_erase(self, *args)

    def find(self, x):
        return _data.StringIntMap_find(self, x)

    def lower_bound(self, x):
        return _data.StringIntMap_lower_bound(self, x)

    def upper_bound(self, x):
        return _data.StringIntMap_upper_bound(self, x)
    __swig_destroy__ = _data.delete_StringIntMap

# Register StringIntMap in _data:
_data.StringIntMap_swigregister(StringIntMap)
class Scheduler(DTRCallback):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    @staticmethod
    def getInstance():
        return _data.Scheduler_getInstance()

    def __init__(self):
        _data.Scheduler_swiginit(self, _data.new_Scheduler())
    __swig_destroy__ = _data.delete_Scheduler

    def SetSlots(self, pre_processor=0, post_processor=0, delivery=0, emergency=0, staged_prepared=0):
        return _data.Scheduler_SetSlots(self, pre_processor, post_processor, delivery, emergency, staged_prepared)

    def AddURLMapping(self, *args):
        return _data.Scheduler_AddURLMapping(self, *args)

    def SetURLMapping(self, *args):
        return _data.Scheduler_SetURLMapping(self, *args)

    def SetPreferredPattern(self, pattern):
        return _data.Scheduler_SetPreferredPattern(self, pattern)

    def SetTransferSharesConf(self, share_conf):
        return _data.Scheduler_SetTransferSharesConf(self, share_conf)

    def SetTransferParameters(self, params):
        return _data.Scheduler_SetTransferParameters(self, params)

    def SetDeliveryServices(self, endpoints):
        return _data.Scheduler_SetDeliveryServices(self, endpoints)

    def SetRemoteSizeLimit(self, limit):
        return _data.Scheduler_SetRemoteSizeLimit(self, limit)

    def SetDumpLocation(self, location):
        return _data.Scheduler_SetDumpLocation(self, location)

    def SetJobPerfLog(self, perf_log):
        return _data.Scheduler_SetJobPerfLog(self, perf_log)

    def start(self):
        return _data.Scheduler_start(self)

    def receiveDTR(self, dtr):
        return _data.Scheduler_receiveDTR(self, dtr)

    def cancelDTRs(self, jobid):
        return _data.Scheduler_cancelDTRs(self, jobid)

    def stop(self):
        return _data.Scheduler_stop(self)

# Register Scheduler in _data:
_data.Scheduler_swigregister(Scheduler)
class DTRPointer(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):
        _data.DTRPointer_swiginit(self, _data.new_DTRPointer(*args))
    __swig_destroy__ = _data.delete_DTRPointer

    def __ref__(self):
        return _data.DTRPointer___ref__(self)

    def __deref__(self):
        return _data.DTRPointer___deref__(self)

    def __eq__(self, p):
        return _data.DTRPointer___eq__(self, p)

    def __ne__(self, p):
        return _data.DTRPointer___ne__(self, p)

    def __lt__(self, p):
        return _data.DTRPointer___lt__(self, p)

    def Ptr(self):
        return _data.DTRPointer_Ptr(self)

    def Release(self):
        return _data.DTRPointer_Release(self)

    def Holders(self):
        return _data.DTRPointer_Holders(self)

    def WaitOutRange(self, *args):
        return _data.DTRPointer_WaitOutRange(self, *args)

    def WaitInRange(self, *args):
        return _data.DTRPointer_WaitInRange(self, *args)
    LOCAL_DELIVERY = property(_data.DTRPointer_LOCAL_DELIVERY_get)
    LOG_LEVEL = property(_data.DTRPointer_LOG_LEVEL_get, _data.DTRPointer_LOG_LEVEL_set)

    def __nonzero__(self):
        return _data.DTRPointer___nonzero__(self)
    __bool__ = __nonzero__



    def registerCallback(self, cb, owner):
        return _data.DTRPointer_registerCallback(self, cb, owner)

    def reset(self):
        return _data.DTRPointer_reset(self)

    def set_id(self, id):
        return _data.DTRPointer_set_id(self, id)

    def get_id(self):
        return _data.DTRPointer_get_id(self)

    def get_short_id(self):
        return _data.DTRPointer_get_short_id(self)

    def get_source(self):
        return _data.DTRPointer_get_source(self)

    def get_destination(self):
        return _data.DTRPointer_get_destination(self)

    def get_source_str(self):
        return _data.DTRPointer_get_source_str(self)

    def get_destination_str(self):
        return _data.DTRPointer_get_destination_str(self)

    def get_usercfg(self):
        return _data.DTRPointer_get_usercfg(self)

    def set_timeout(self, value):
        return _data.DTRPointer_set_timeout(self, value)

    def get_timeout(self):
        return _data.DTRPointer_get_timeout(self)

    def set_process_time(self, process_time):
        return _data.DTRPointer_set_process_time(self, process_time)

    def get_process_time(self):
        return _data.DTRPointer_get_process_time(self)

    def get_creation_time(self):
        return _data.DTRPointer_get_creation_time(self)

    def get_modification_time(self):
        return _data.DTRPointer_get_modification_time(self)

    def get_parent_job_id(self):
        return _data.DTRPointer_get_parent_job_id(self)

    def set_priority(self, pri):
        return _data.DTRPointer_set_priority(self, pri)

    def get_priority(self):
        return _data.DTRPointer_get_priority(self)

    def set_credential_info(self, cred):
        return _data.DTRPointer_set_credential_info(self, cred)

    def get_credential_info(self):
        return _data.DTRPointer_get_credential_info(self)

    def set_transfer_share(self, share_name):
        return _data.DTRPointer_set_transfer_share(self, share_name)

    def get_transfer_share(self):
        return _data.DTRPointer_get_transfer_share(self)

    def set_sub_share(self, share):
        return _data.DTRPointer_set_sub_share(self, share)

    def get_sub_share(self):
        return _data.DTRPointer_get_sub_share(self)

    def set_tries_left(self, tries):
        return _data.DTRPointer_set_tries_left(self, tries)

    def get_tries_left(self):
        return _data.DTRPointer_get_tries_left(self)

    def get_initial_tries(self):
        return _data.DTRPointer_get_initial_tries(self)

    def decrease_tries_left(self):
        return _data.DTRPointer_decrease_tries_left(self)

    def set_status(self, stat):
        return _data.DTRPointer_set_status(self, stat)

    def get_status(self):
        return _data.DTRPointer_get_status(self)

    def set_error_status(self, *args):
        return _data.DTRPointer_set_error_status(self, *args)

    def reset_error_status(self):
        return _data.DTRPointer_reset_error_status(self)

    def get_error_status(self):
        return _data.DTRPointer_get_error_status(self)

    def set_bytes_transferred(self, bytes):
        return _data.DTRPointer_set_bytes_transferred(self, bytes)

    def get_bytes_transferred(self):
        return _data.DTRPointer_get_bytes_transferred(self)

    def set_transfer_time(self, t):
        return _data.DTRPointer_set_transfer_time(self, t)

    def get_transfer_time(self):
        return _data.DTRPointer_get_transfer_time(self)

    def set_cancel_request(self):
        return _data.DTRPointer_set_cancel_request(self)

    def cancel_requested(self):
        return _data.DTRPointer_cancel_requested(self)

    def set_delivery_endpoint(self, endpoint):
        return _data.DTRPointer_set_delivery_endpoint(self, endpoint)

    def get_delivery_endpoint(self):
        return _data.DTRPointer_get_delivery_endpoint(self)

    def add_problematic_delivery_service(self, endpoint):
        return _data.DTRPointer_add_problematic_delivery_service(self, endpoint)

    def get_problematic_delivery_services(self):
        return _data.DTRPointer_get_problematic_delivery_services(self)

    def host_cert_for_remote_delivery(self, *args):
        return _data.DTRPointer_host_cert_for_remote_delivery(self, *args)

    def set_cache_file(self, filename):
        return _data.DTRPointer_set_cache_file(self, filename)

    def get_cache_file(self):
        return _data.DTRPointer_get_cache_file(self)

    def set_cache_parameters(self, param):
        return _data.DTRPointer_set_cache_parameters(self, param)

    def get_cache_parameters(self):
        return _data.DTRPointer_get_cache_parameters(self)

    def set_cache_state(self, state):
        return _data.DTRPointer_set_cache_state(self, state)

    def get_cache_state(self):
        return _data.DTRPointer_get_cache_state(self)

    def set_use_acix(self, acix):
        return _data.DTRPointer_set_use_acix(self, acix)

    def get_use_acix(self):
        return _data.DTRPointer_get_use_acix(self)

    def set_mapped_source(self, *args):
        return _data.DTRPointer_set_mapped_source(self, *args)

    def get_mapped_source(self):
        return _data.DTRPointer_get_mapped_source(self)

    def get_owner(self):
        return _data.DTRPointer_get_owner(self)

    def get_local_user(self):
        return _data.DTRPointer_get_local_user(self)

    def set_replication(self, rep):
        return _data.DTRPointer_set_replication(self, rep)

    def is_replication(self):
        return _data.DTRPointer_is_replication(self)

    def set_force_registration(self, force):
        return _data.DTRPointer_set_force_registration(self, force)

    def is_force_registration(self):
        return _data.DTRPointer_is_force_registration(self)

    def set_bulk_start(self, value):
        return _data.DTRPointer_set_bulk_start(self, value)

    def get_bulk_start(self):
        return _data.DTRPointer_get_bulk_start(self)

    def set_bulk_end(self, value):
        return _data.DTRPointer_set_bulk_end(self, value)

    def get_bulk_end(self):
        return _data.DTRPointer_get_bulk_end(self)

    def bulk_possible(self):
        return _data.DTRPointer_bulk_possible(self)

    def is_mandatory(self):
        return _data.DTRPointer_is_mandatory(self)

    def get_logger(self):
        return _data.DTRPointer_get_logger(self)

    def get_log_destinations(self):
        return _data.DTRPointer_get_log_destinations(self)

    def push(self, dtr, new_owner):
        return _data.DTRPointer_push(self, dtr, new_owner)

    def suspend(self):
        return _data.DTRPointer_suspend(self)

    def error(self):
        return _data.DTRPointer_error(self)

    def is_destined_for_pre_processor(self):
        return _data.DTRPointer_is_destined_for_pre_processor(self)

    def is_destined_for_post_processor(self):
        return _data.DTRPointer_is_destined_for_post_processor(self)

    def is_destined_for_delivery(self):
        return _data.DTRPointer_is_destined_for_delivery(self)

    def came_from_pre_processor(self):
        return _data.DTRPointer_came_from_pre_processor(self)

    def came_from_post_processor(self):
        return _data.DTRPointer_came_from_post_processor(self)

    def came_from_delivery(self):
        return _data.DTRPointer_came_from_delivery(self)

    def came_from_generator(self):
        return _data.DTRPointer_came_from_generator(self)

    def is_in_final_state(self):
        return _data.DTRPointer_is_in_final_state(self)

    def get_job_perf_log(self):
        return _data.DTRPointer_get_job_perf_log(self)

    def get_job_perf_record(self):
        return _data.DTRPointer_get_job_perf_record(self)

# Register DTRPointer in _data:
_data.DTRPointer_swigregister(DTRPointer)
class DTRLogger(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):
        _data.DTRLogger_swiginit(self, _data.new_DTRLogger(*args))
    __swig_destroy__ = _data.delete_DTRLogger

    def __ref__(self):
        return _data.DTRLogger___ref__(self)

    def __deref__(self):
        return _data.DTRLogger___deref__(self)

    def __nonzero__(self):
        return _data.DTRLogger___nonzero__(self)
    __bool__ = __nonzero__



    def __eq__(self, p):
        return _data.DTRLogger___eq__(self, p)

    def __ne__(self, p):
        return _data.DTRLogger___ne__(self, p)

    def __lt__(self, p):
        return _data.DTRLogger___lt__(self, p)

    def Ptr(self):
        return _data.DTRLogger_Ptr(self)

    def Release(self):
        return _data.DTRLogger_Release(self)

    def Holders(self):
        return _data.DTRLogger_Holders(self)

    def WaitOutRange(self, *args):
        return _data.DTRLogger_WaitOutRange(self, *args)

    def WaitInRange(self, *args):
        return _data.DTRLogger_WaitInRange(self, *args)

# Register DTRLogger in _data:
_data.DTRLogger_swigregister(DTRLogger)

import arc

def datapoint_from_url(url_string, usercfg=arc.UserConfig()):
    url = arc.URL(url_string)
    data_handle = DataHandle(url, usercfg)
    data_point = data_handle.__ref__()
    url.thisown = False
    data_handle.thisown = False
    return data_point