"""
This type stub file was generated by pyright.
"""

from .vtkObject import vtkObject

class vtkMultiThreader(vtkObject):
    """
    vtkMultiThreader - A class for performing multithreaded execution
    
    Superclass: vtkObject
    
    vtkMultithreader is a class that provides support for multithreaded
    execution using pthreads on POSIX systems, or Win32 threads on
    Windows.  This class can be used to execute a single method on
    multiple threads, or to specify a method per thread.
    """
    def GetGlobalDefaultNumberOfThreads(self):
        """
        V.GetGlobalDefaultNumberOfThreads() -> int
        C++: static int GetGlobalDefaultNumberOfThreads()
        
        Set/Get the value which is used to initialize the NumberOfThreads
        in the constructor.  Initially this default is set to the number
        of processors or VTK_MAX_THREADS (which ever is less).
        """
        ...
    
    def GetGlobalMaximumNumberOfThreads(self):
        """
        V.GetGlobalMaximumNumberOfThreads() -> int
        C++: static int GetGlobalMaximumNumberOfThreads()
        
        Set/Get the maximum number of threads to use when multithreading.
        This limits and overrides any other settings for multithreading.
        A value of zero indicates no limit.
        """
        ...
    
    def GetNumberOfGenerationsFromBase(self, string):
        """
        V.GetNumberOfGenerationsFromBase(string) -> int
        C++: vtkIdType GetNumberOfGenerationsFromBase(const char *type)
            override;
        
        Given a the name of a base class of this class type, return the
        distance of inheritance between this class type and the named
        class (how many generations of inheritance are there between this
        class and the named class). If the named class is not in this
        class's inheritance tree, return a negative value. Valid
        responses will always be nonnegative. This method works in
        combination with vtkTypeMacro found in vtkSetGet.h.
        """
        ...
    
    def GetNumberOfGenerationsFromBaseType(self, string):
        """
        V.GetNumberOfGenerationsFromBaseType(string) -> int
        C++: static vtkIdType GetNumberOfGenerationsFromBaseType(
            const char *type)
        
        Given a the name of a base class of this class type, return the
        distance of inheritance between this class type and the named
        class (how many generations of inheritance are there between this
        class and the named class). If the named class is not in this
        class's inheritance tree, return a negative value. Valid
        responses will always be nonnegative. This method works in
        combination with vtkTypeMacro found in vtkSetGet.h.
        """
        ...
    
    def GetNumberOfThreads(self):
        """
        V.GetNumberOfThreads() -> int
        C++: virtual int GetNumberOfThreads()
        
        Get/Set the number of threads to create. It will be clamped to
        the range 1 - VTK_MAX_THREADS, so the caller of this method
        should check that the requested number of threads was accepted.
        """
        ...
    
    def GetNumberOfThreadsMaxValue(self):
        """
        V.GetNumberOfThreadsMaxValue() -> int
        C++: virtual int GetNumberOfThreadsMaxValue()
        
        Get/Set the number of threads to create. It will be clamped to
        the range 1 - VTK_MAX_THREADS, so the caller of this method
        should check that the requested number of threads was accepted.
        """
        ...
    
    def GetNumberOfThreadsMinValue(self):
        """
        V.GetNumberOfThreadsMinValue() -> int
        C++: virtual int GetNumberOfThreadsMinValue()
        
        Get/Set the number of threads to create. It will be clamped to
        the range 1 - VTK_MAX_THREADS, so the caller of this method
        should check that the requested number of threads was accepted.
        """
        ...
    
    def IsA(self, string):
        """
        V.IsA(string) -> int
        C++: vtkTypeBool IsA(const char *type) override;
        
        Return 1 if this class is the same type of (or a subclass of) the
        named class. Returns 0 otherwise. This method works in
        combination with vtkTypeMacro found in vtkSetGet.h.
        """
        ...
    
    def IsThreadActive(self, p_int):
        """
        V.IsThreadActive(int) -> int
        C++: vtkTypeBool IsThreadActive(int threadID)
        
        Determine if a thread is still active
        """
        ...
    
    def IsTypeOf(self, string):
        """
        V.IsTypeOf(string) -> int
        C++: static vtkTypeBool IsTypeOf(const char *type)
        
        Return 1 if this class type is the same type of (or a subclass
        of) the named class. Returns 0 otherwise. This method works in
        combination with vtkTypeMacro found in vtkSetGet.h.
        """
        ...
    
    def MultipleMethodExecute(self):
        """
        V.MultipleMethodExecute()
        C++: void MultipleMethodExecute()
        
        Execute the MultipleMethods (as define by calling
        SetMultipleMethod for each of the required this->NumberOfThreads
        methods) using this->NumberOfThreads threads.
        """
        ...
    
    def NewInstance(self):
        """
        V.NewInstance() -> vtkMultiThreader
        C++: vtkMultiThreader *NewInstance()
        """
        ...
    
    def SafeDownCast(self, vtkObjectBase):
        """
        V.SafeDownCast(vtkObjectBase) -> vtkMultiThreader
        C++: static vtkMultiThreader *SafeDownCast(vtkObjectBase *o)
        """
        ...
    
    def SetGlobalDefaultNumberOfThreads(self, p_int):
        """
        V.SetGlobalDefaultNumberOfThreads(int)
        C++: static void SetGlobalDefaultNumberOfThreads(int val)
        
        Set/Get the value which is used to initialize the NumberOfThreads
        in the constructor.  Initially this default is set to the number
        of processors or VTK_MAX_THREADS (which ever is less).
        """
        ...
    
    def SetGlobalMaximumNumberOfThreads(self, p_int):
        """
        V.SetGlobalMaximumNumberOfThreads(int)
        C++: static void SetGlobalMaximumNumberOfThreads(int val)
        
        Set/Get the maximum number of threads to use when multithreading.
        This limits and overrides any other settings for multithreading.
        A value of zero indicates no limit.
        """
        ...
    
    def SetNumberOfThreads(self, p_int):
        """
        V.SetNumberOfThreads(int)
        C++: virtual void SetNumberOfThreads(int _arg)
        
        Get/Set the number of threads to create. It will be clamped to
        the range 1 - VTK_MAX_THREADS, so the caller of this method
        should check that the requested number of threads was accepted.
        """
        ...
    
    def SingleMethodExecute(self):
        """
        V.SingleMethodExecute()
        C++: void SingleMethodExecute()
        
        Execute the SingleMethod (as define by SetSingleMethod) using
        this->NumberOfThreads threads.
        """
        ...
    
    def TerminateThread(self, p_int):
        """
        V.TerminateThread(int)
        C++: void TerminateThread(int thread_id)
        
        Terminate the thread that was created with a SpawnThreadExecute()
        """
        ...
    
    def __delattr__(self, *args, **kwargs):
        """ Implement delattr(self, name). """
        ...
    
    def __getattribute__(self, *args, **kwargs):
        """ Return getattr(self, name). """
        ...
    
    def __init__(self, *args, **kwargs) -> None:
        ...
    
    @staticmethod
    def __new__(*args, **kwargs):
        """ Create and return a new object.  See help(type) for accurate signature. """
        ...
    
    def __repr__(self, *args, **kwargs):
        """ Return repr(self). """
        ...
    
    def __setattr__(self, *args, **kwargs):
        """ Implement setattr(self, name, value). """
        ...
    
    def __str__(self, *args, **kwargs) -> str:
        """ Return str(self). """
        ...
    
    __this__ = ...
    __dict__ = ...
    __vtkname__ = ...


