SocketErrorNotification.st
author Claus Gittinger <cg@exept.de>
Sat, 02 May 2020 21:40:13 +0200
changeset 5476 7355a4b11cb6
parent 4569 9bc9566e899d
permissions -rw-r--r--
#FEATURE by cg class: Socket class added: #newTCPclientToHost:port:domain:domainOrder:withTimeout: changed: #newTCPclientToHost:port:domain:withTimeout:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4560
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     1
"{ Package: 'stx:libbasic2' }"
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     2
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     3
"{ NameSpace: Smalltalk }"
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     4
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     5
Notification subclass:#SocketErrorNotification
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     6
	instanceVariableNames:''
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     7
	classVariableNames:''
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     8
	poolDictionaries:''
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
     9
	category:'Kernel-Exceptions-Errors'
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    10
!
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    11
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    12
!SocketErrorNotification class methodsFor:'documentation'!
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    13
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    14
documentation
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    15
"
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    16
    This notification is raised, when an error in a Socket operation is detected.
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    17
    It is used to have a soft transition from old code checking for false
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    18
    to code catching exceptions.
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    19
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    20
    [author:]
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    21
        Stefan Vogel
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    22
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    23
    [instance variables:]
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    24
        parameter    - the OSError containing the error number and error string.
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    25
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    26
    [class variables:]
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    27
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    28
    [see also:]
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    29
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    30
"
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    31
! !
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    32
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    33
!SocketErrorNotification methodsFor:'accessing'!
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    34
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    35
errorCategory
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    36
    "return the generi OS independent error category.
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    37
     return #unknown, if this is not an OS error"
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    38
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    39
    |holder|
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    40
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    41
    holder := self osErrorHolder.
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    42
    holder isNil ifTrue:[
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    43
        ^ #unknown
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    44
    ].
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    45
    ^ holder errorCategory.
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    46
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    47
    "Created: / 19-01-2018 / 13:41:19 / stefan"
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    48
!
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    49
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    50
errorCode
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    51
    "return the generi OS independent error category.
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    52
     return nil, if this is not an OS error"
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    53
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    54
    |holder|
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    55
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    56
    holder := self osErrorHolder.
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    57
    holder isNil ifTrue:[
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    58
        ^ nil
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    59
    ].
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    60
    ^ holder errorCode.
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    61
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    62
    "Created: / 19-01-2018 / 13:42:07 / stefan"
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    63
!
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    64
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    65
osErrorHolder
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    66
    ^ parameter
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    67
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    68
    "Created: / 19-01-2018 / 13:39:28 / stefan"
4569
9bc9566e899d #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 4560
diff changeset
    69
!
9bc9566e899d #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 4560
diff changeset
    70
9bc9566e899d #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 4560
diff changeset
    71
osErrorString
9bc9566e899d #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 4560
diff changeset
    72
    "return the generi OS independent error category.
9bc9566e899d #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 4560
diff changeset
    73
     return nil, if this is not an OS error"
9bc9566e899d #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 4560
diff changeset
    74
9bc9566e899d #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 4560
diff changeset
    75
    |holder|
9bc9566e899d #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 4560
diff changeset
    76
9bc9566e899d #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 4560
diff changeset
    77
    holder := self osErrorHolder.
9bc9566e899d #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 4560
diff changeset
    78
    holder isNil ifTrue:[
9bc9566e899d #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 4560
diff changeset
    79
        ^ nil
9bc9566e899d #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 4560
diff changeset
    80
    ].
9bc9566e899d #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 4560
diff changeset
    81
    ^ holder errorString.
9bc9566e899d #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 4560
diff changeset
    82
9bc9566e899d #FEATURE by stefan
Stefan Vogel <sv@exept.de>
parents: 4560
diff changeset
    83
    "Created: / 19-01-2018 / 15:42:17 / stefan"
4560
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    84
! !
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    85
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    86
!SocketErrorNotification methodsFor:'printing & storing'!
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    87
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    88
description
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    89
    "lazy initialization - the text is not needed for caught exceptions"
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    90
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    91
    messageText isNil ifTrue:[
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    92
	self initializeMessageText
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    93
    ].
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    94
    ^ super description
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    95
!
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    96
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    97
initializeMessageText
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    98
    "for lazy initialization - the text is not needed for caught exceptions"
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
    99
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   100
    self osErrorHolder notNil ifTrue:[
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   101
        messageText := ' : ' , self osErrorHolder errorString.
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   102
    ].
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   103
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   104
    "Modified (format): / 19-01-2018 / 13:58:29 / stefan"
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   105
!
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   106
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   107
messageText
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   108
    "lazy initialization - the text is not needed for caught exceptions"
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   109
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   110
    messageText isNil ifTrue:[
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   111
	self initializeMessageText
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   112
    ].
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   113
    ^ messageText
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   114
! !
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   115
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   116
!SocketErrorNotification class methodsFor:'documentation'!
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   117
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   118
version
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   119
    ^ '$Header$'
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   120
!
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   121
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   122
version_CVS
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   123
    ^ '$Header$'
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   124
! !
e1b8f7dd6e90 initial checkin
Stefan Vogel <sv@exept.de>
parents:
diff changeset
   125