Files
tasks/components/dummy/statemachine.go
Alex ShtinandGitHub 8e8f1b0f7c Remove license header from every file (#7689)
## What changed?
<!-- Describe what has changed in this PR -->
Remove license header from every file. Because it is really hard to
follow in this PR here is the summary:
1. License header is removed from all `.go` and `.proto` files
:fireworks::fireworks:🎆.
2. `LICENSE` file in the root directory has only Temporal and Uber
copyrights.
3. 5 other `LICENSE` files added to the packages which have copyrights
different from Temporal and Uber: Datadog, Xargin, "Mat Ryer, Tyler
Bunnell and contributors".
4. `license_file` flag is removed from all code generation tools.
5. `copyright_file` flag is removed from `go:generate mockgen`
directive.
6. All copyright related targets are removed from `Makefile`.
7. Updated Temporal copyright year to 2025 everywhere.

## Why?
<!-- Tell your future self why have you made these changes -->
I double checked with legal department that it is not needed to have
license header in every file. One file per repo is enough. I put all
copyrights to the root `LICENSE` file and removed header from all other
files. Also updated tools and `Makefile`.
2025-05-01 18:50:21 -07:00

96 lines
2.0 KiB
Go

package dummy
import (
"encoding/json"
"go.temporal.io/api/serviceerror"
"go.temporal.io/server/service/history/hsm"
)
type State int
const (
State0 State = iota
State1
)
var StateMachineType = "dummy.Dummy"
func MachineCollection(tree *hsm.Node) hsm.Collection[*Dummy] {
return hsm.NewCollection[*Dummy](tree, StateMachineType)
}
// Dummy state machine.
// It's used for writing unit tests. Do not use in production!
type Dummy struct {
CurrentState State
}
var _ hsm.StateMachine[State] = &Dummy{}
// NewDummy creates a new callback in the STANDBY state from given params.
func NewDummy() *Dummy {
return &Dummy{
CurrentState: State0,
}
}
func (sm *Dummy) State() State {
return sm.CurrentState
}
func (sm *Dummy) SetState(state State) {
sm.CurrentState = state
}
func (sm Dummy) RegenerateTasks(*hsm.Node) ([]hsm.Task, error) {
return []hsm.Task{}, nil
}
type stateMachineDefinition struct{}
var _ hsm.StateMachineDefinition = stateMachineDefinition{}
func (stateMachineDefinition) Type() string {
return StateMachineType
}
func (stateMachineDefinition) Deserialize(d []byte) (any, error) {
sm := &Dummy{}
err := json.Unmarshal(d, &sm)
return sm, err
}
func (stateMachineDefinition) Serialize(state any) ([]byte, error) {
return json.Marshal(state)
}
func (stateMachineDefinition) CompareState(s1, s2 any) (int, error) {
// This is just a dummy used in tests, CompareState is not used.
return 0, serviceerror.NewUnimplemented("CompareState not implemented for dummy state machine")
}
func RegisterStateMachine(r *hsm.Registry) error {
return r.RegisterMachine(stateMachineDefinition{})
}
type Event0 struct{}
var Transition0 = hsm.NewTransition(
[]State{State0, State1},
State0,
func(sm *Dummy, e Event0) (hsm.TransitionOutput, error) {
return hsm.TransitionOutput{}, nil
},
)
type Event1 struct{}
var Transition1 = hsm.NewTransition(
[]State{State0, State1},
State1,
func(sm *Dummy, e Event1) (hsm.TransitionOutput, error) {
return hsm.TransitionOutput{}, nil
},
)