Documentation

Overview

    Package xtime implements time related XMPP functionality.

    In particular, this package implements XEP-0202: Entity Time and XEP-0082: XMPP Date and Time Profiles.

    Index

    Examples

    Constants

    View Source
    const (
    	// NS is the XML namespace used by XMPP entity time requests.
    	// It is provided as a convenience.
    	NS = "urn:xmpp:time"
    
    	// LegacyDateTime implements the legacy profile mentioned in XEP-0082.
    	//
    	// Unless you are implementing an older XEP that specifically calls for this
    	// format, time.RFC3339 should be used instead.
    	LegacyDateTime = "20060102T15:04:05"
    )

    Variables

    This section is empty.

    Functions

    func Get

    func Get(ctx context.Context, s *xmpp.Session, to jid.JID) (time.Time, error)

      Get sends a request to the provided JID asking for its time.

      func Handle

      func Handle(h Handler) mux.Option

        Handle returns an option that registers a Handler for entity time requests.

        Types

        type Handler

        type Handler struct {
        	TimeFunc func() time.Time
        }

          Handler responds to requests for our time. If timeFunc is nil, time.Now is used.

          func (Handler) HandleIQ

          func (h Handler) HandleIQ(iq stanza.IQ, t xmlstream.TokenReadEncoder, start *xml.StartElement) error

            HandleIQ responds to entity time requests.

            type Time

            type Time struct {
            	XMLName xml.Name `xml:"urn:xmpp:time time"`
            	time.Time
            }

              Time is like a time.Time but it can be marshaled as an XEP-0202 time payload.

              Example
              Output:
              
              <time xmlns="urn:xmpp:time"><tzo>-05:00</tzo><utc>2020-02-19T11:46:00Z</utc></time>
              

              func (Time) MarshalXML

              func (t Time) MarshalXML(e *xml.Encoder, _ xml.StartElement) error

                MarshalXML implements xml.Marshaler.

                func (Time) TokenReader

                func (t Time) TokenReader() xml.TokenReader

                  TokenReader satisfies the xmlstream.Marshaler interface.

                  func (*Time) UnmarshalXML

                  func (t *Time) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error

                    UnmarshalXML implements xml.Unmarshaler.

                    func (Time) WriteXML

                    func (t Time) WriteXML(w xmlstream.TokenWriter) (n int, err error)

                      WriteXML satisfies the xmlstream.WriterTo interface. It is like MarshalXML except it writes tokens to w.

                      Source Files