File: ExceptionC.pyx

package info (click to toggle)
paraview 3.8.0-1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 173,864 kB
  • ctags: 192,754
  • sloc: cpp: 1,497,065; ansic: 607,818; tcl: 47,394; xml: 47,108; python: 29,870; perl: 3,117; java: 2,428; yacc: 1,853; sh: 833; asm: 471; lex: 393; pascal: 228; makefile: 189; fortran: 31
file content (82 lines) | stat: -rw-r--r-- 2,206 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
cdef extern from "Python.h":
    ctypedef class __builtin__.RuntimeError [object PyBaseExceptionObject]:
        pass

cdef class Exception(RuntimeError):

    """
    Exception
    """

    cdef int ob_mpi

    def __cinit__(self, int ierr=0):
        if ierr < MPI_SUCCESS:      ierr = MPI_ERR_UNKNOWN
        if ierr > MPI_ERR_LASTCODE: ierr = MPI_ERR_UNKNOWN
        self.ob_mpi = ierr
        RuntimeError.__init__(self, ierr)

    def __richcmp__(Exception self, int error, int op):
        cdef int ierr  = self.ob_mpi
        if op == 0: return ierr <  error
        if op == 1: return ierr <= error
        if op == 2: return ierr == error
        if op == 3: return ierr != error
        if op == 4: return ierr >  error
        if op == 5: return ierr >= error

    def __nonzero__(self):
        return self.ob_mpi != MPI_SUCCESS

    def __int__(self):
        if not mpi_active():
            return self.ob_mpi
        return self.Get_error_code()

    def __repr__(self):
        return mpistr('MPI.Exception(%d)') % self.ob_mpi

    def __str__(self):
        if not mpi_active():
            return mpistr("error code: %d") % self.ob_mpi
        return self.Get_error_string()

    def Get_error_code(self):
        """
        Error code
        """
        cdef int errorcode = MPI_SUCCESS
        errorcode = self.ob_mpi
        return errorcode

    property error_code:
        """error code"""
        def __get__(self):
            return self.Get_error_code()

    def Get_error_class(self):
        """
        Error class
        """
        cdef int errorclass = MPI_SUCCESS
        CHKERR( MPI_Error_class(self.ob_mpi, &errorclass) )
        return errorclass

    property error_class:
        """error class"""
        def __get__(self):
            return self.Get_error_class()

    def Get_error_string(self):
        """
        Error string
        """
        cdef char string[MPI_MAX_ERROR_STRING+1]
        cdef int resultlen = 0
        CHKERR( MPI_Error_string(self.ob_mpi, string, &resultlen) )
        return tompistr(string, resultlen)

    property error_string:
        """error string"""
        def __get__(self):
            return self.Get_error_string()