/////////////////////////////////////////////////////////////////////////////// // Copyright © 2020 xx network SEZC // // // // Use of this source code is governed by a license that can be found in the // // LICENSE file // /////////////////////////////////////////////////////////////////////////////// package bindings import ( "gitlab.com/elixxir/client/interfaces/message" ) // Message is a message received from the cMix network in the clear // or that has been decrypted using established E2E keys. type Message struct { r message.Receive } // GetID returns the id of the message func (m *Message) GetID() []byte { return m.r.ID[:] } // GetSender returns the message's sender ID, if available func (m *Message) GetSender() []byte { return m.r.Sender.Bytes() } // GetPayload returns the message's payload/contents func (m *Message) GetPayload() []byte { return m.r.Payload } // GetMessageType returns the message's type func (m *Message) GetMessageType() int { return int(m.r.MessageType) } // GetTimestampMS returns the message's timestamp in milliseconds func (m *Message) GetTimestampMS() int64 { ts := m.r.Timestamp.UnixNano() ts = (ts + 500000) / 1000000 return ts } // GetTimestampNano returns the message's timestamp in nanoseconds func (m *Message) GetTimestampNano() int64 { return m.r.Timestamp.UnixNano() } // GetRoundTimestampMS returns the message's round timestamp in milliseconds func (m *Message) GetRoundTimestampMS() int64 { ts := m.r.RoundTimestamp.UnixNano() ts = (ts + 999999) / 1000000 return ts } // GetRoundTimestampNano returns the message's round timestamp in nanoseconds func (m *Message) GetRoundTimestampNano() int64 { return m.r.RoundTimestamp.UnixNano() } // GetRoundId returns the message's round ID func (m *Message) GetRoundId() int64 { return int64(m.r.RoundId) }