from abc import abstractmethod, ABC
from pyson.JsonSubTypes import JsonSubTypes
@JsonSubTypes([ "ActionEvent","SessionStarted","TournamentStarted"])
class NegotiationEvent (ABC):
'''
reports some event happened in the negotiation system. Generally, parties are
informed about events in the system, but this depends on the protocol.
'''
@abstractmethod
def getTime(self)->int:
'''
@return the time at which the event happened on the server, measured in
milliseconds, between the start time and midnight, January 1,
1970 UTCas. See also {@link System#currentTimeMillis()}.
If the event is about an {@link Action} done by a negotiation
party on another machine, this time refers to the time the action
was handled on the server (which may differ from the clock time
on the other machine).
Note: we do not use RFC 3339 because we need millisecond
accuracy.
'''