Skip to content

Commit 5c6a832

Browse files
committed
Add created_timestamp to GameEvent
1 parent be07b28 commit 5c6a832

File tree

4 files changed

+632
-605
lines changed

4 files changed

+632
-605
lines changed

frontend/src/proto/ssl_gc_game_event.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ export interface GameEvent {
1919
* Ignored if sent by autoRef to game controller.
2020
*/
2121
origin?: string[];
22+
/** Unix timestamp in microseconds when the event was created. */
23+
createdTimestamp?: number;
2224
event?:
2325
| { $case: "ballLeftFieldTouchLine"; ballLeftFieldTouchLine: GameEvent_BallLeftField }
2426
| { $case: "ballLeftFieldGoalLine"; ballLeftFieldGoalLine: GameEvent_BallLeftField }
@@ -856,6 +858,7 @@ export const GameEvent = {
856858
return {
857859
type: isSet(object.type) ? gameEvent_TypeFromJSON(object.type) : GameEvent_Type.UNKNOWN_GAME_EVENT_TYPE,
858860
origin: Array.isArray(object?.origin) ? object.origin.map((e: any) => String(e)) : [],
861+
createdTimestamp: isSet(object.createdTimestamp) ? Number(object.createdTimestamp) : 0,
859862
event: isSet(object.ballLeftFieldTouchLine)
860863
? {
861864
$case: "ballLeftFieldTouchLine",
@@ -1036,6 +1039,7 @@ export const GameEvent = {
10361039
} else {
10371040
obj.origin = [];
10381041
}
1042+
message.createdTimestamp !== undefined && (obj.createdTimestamp = Math.round(message.createdTimestamp));
10391043
message.event?.$case === "ballLeftFieldTouchLine" &&
10401044
(obj.ballLeftFieldTouchLine = message.event?.ballLeftFieldTouchLine
10411045
? GameEvent_BallLeftField.toJSON(message.event?.ballLeftFieldTouchLine)

internal/app/engine/engine.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,14 @@ func NewEngine(gameConfig config.Game, engineConfig config.Engine) (e *Engine) {
8080
// Enqueue adds the change to the change queue
8181
func (e *Engine) Enqueue(change *statemachine.Change) {
8282
if change.GetAddGameEventChange() != nil {
83+
// Set creation timestamp
84+
gameEvent := change.GetAddGameEventChange().GameEvent
85+
if gameEvent.CreatedTimestamp != nil {
86+
log.Printf("Ignore existing created_timestamp in enqueued game event: %v", gameEvent)
87+
}
88+
gameEvent.CreatedTimestamp = new(uint64)
89+
*gameEvent.CreatedTimestamp = uint64(e.timeProvider().UnixMicro())
90+
8391
change = e.filterGameEvent(change)
8492
if change == nil {
8593
return

0 commit comments

Comments
 (0)