mirror of
https://github.com/hanzoai/tasks.git
synced 2026-10-04 02:04:03 +00:00
## 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`.
96 lines
2.0 KiB
Go
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
|
|
},
|
|
)
|