-
Notifications
You must be signed in to change notification settings - Fork 0
/
messages.go
executable file
·78 lines (62 loc) · 2.49 KB
/
messages.go
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
package actor
import "github.com/meeypioneer/mey-actor/mailbox"
//An AutoReceiveMessage is a special kind of user message that will be handled in some way automatially by the actor
type AutoReceiveMessage interface {
AutoReceiveMessage()
}
//NotInfluenceReceiveTimeout messages will not reset the ReceiveTimeout timer of an actor that receives the message
type NotInfluenceReceiveTimeout interface {
NotInfluenceReceiveTimeout()
}
// A SystemMessage message is reserved for specific lifecycle messages used by the actor system
type SystemMessage interface {
SystemMessage()
}
// A ReceiveTimeout message is sent to an actor after the Context.ReceiveTimeout duration has expired
type ReceiveTimeout struct{}
// A Restarting message is sent to an actor when the actor is being restarted by the system due to a failure
type Restarting struct{}
// A Stopping message is sent to an actor prior to the actor being stopped
type Stopping struct{}
// A Stopped message is sent to the actor once it has been stopped. A stopped actor will receive no further messages
type Stopped struct{}
// A Started message is sent to an actor once it has been started and ready to begin receiving messages.
type Started struct{}
// Restart is message sent by the actor system to control the lifecycle of an actor
type Restart struct{}
type Failure struct {
Who *PID
Reason interface{}
RestartStats *RestartStatistics
Message interface{}
}
type continuation struct {
message interface{}
f func()
}
func (*Restarting) AutoReceiveMessage() {}
func (*Stopping) AutoReceiveMessage() {}
func (*Stopped) AutoReceiveMessage() {}
func (*PoisonPill) AutoReceiveMessage() {}
func (*Started) SystemMessage() {}
func (*Stop) SystemMessage() {}
func (*Watch) SystemMessage() {}
func (*Unwatch) SystemMessage() {}
func (*Terminated) SystemMessage() {}
func (*Failure) SystemMessage() {}
func (*Restart) SystemMessage() {}
func (*continuation) SystemMessage() {}
var (
restartingMessage interface{} = &Restarting{}
stoppingMessage interface{} = &Stopping{}
stoppedMessage interface{} = &Stopped{}
poisonPillMessage interface{} = &PoisonPill{}
receiveTimeoutMessage interface{} = &ReceiveTimeout{}
)
var (
restartMessage interface{} = &Restart{}
startedMessage interface{} = &Started{}
stopMessage interface{} = &Stop{}
resumeMailboxMessage interface{} = &mailbox.ResumeMailbox{}
suspendMailboxMessage interface{} = &mailbox.SuspendMailbox{}
)