Class: MTProto::TL::UpdatesDifference

Inherits:
Object
  • Object
show all
Defined in:
lib/mtproto/tl/objects/updates_difference.rb

Constant Summary collapse

SCHEMA_PATH =
File.expand_path('../../../../data/tl-schema.json', __dir__)
UPDATE_NEW_MESSAGE =
0x1f2b0afd
UPDATE_NEW_CHANNEL_MESSAGE =
0x62ba04d9

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(type:, date: nil, seq: nil, new_messages: [], pts: nil, state: nil, chats: [], users: [], guest_queries: []) ⇒ UpdatesDifference

Returns a new instance of UpdatesDifference.



15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/mtproto/tl/objects/updates_difference.rb', line 15

def initialize(type:, date: nil, seq: nil, new_messages: [], pts: nil, state: nil, chats: [], users: [],
               guest_queries: [])
  @type = type
  @date = date
  @seq = seq
  @new_messages = new_messages
  @pts = pts
  @state = state
  @chats = chats
  @users = users
  @guest_queries = guest_queries
end

Instance Attribute Details

#chatsObject (readonly)

Returns the value of attribute chats.



11
12
13
# File 'lib/mtproto/tl/objects/updates_difference.rb', line 11

def chats
  @chats
end

#dateObject (readonly)

Returns the value of attribute date.



11
12
13
# File 'lib/mtproto/tl/objects/updates_difference.rb', line 11

def date
  @date
end

#guest_queriesObject (readonly)

Returns the value of attribute guest_queries.



11
12
13
# File 'lib/mtproto/tl/objects/updates_difference.rb', line 11

def guest_queries
  @guest_queries
end

#new_messagesObject (readonly)

Returns the value of attribute new_messages.



11
12
13
# File 'lib/mtproto/tl/objects/updates_difference.rb', line 11

def new_messages
  @new_messages
end

#ptsObject (readonly)

Returns the value of attribute pts.



11
12
13
# File 'lib/mtproto/tl/objects/updates_difference.rb', line 11

def pts
  @pts
end

#seqObject (readonly)

Returns the value of attribute seq.



11
12
13
# File 'lib/mtproto/tl/objects/updates_difference.rb', line 11

def seq
  @seq
end

#stateObject (readonly)

Returns the value of attribute state.



11
12
13
# File 'lib/mtproto/tl/objects/updates_difference.rb', line 11

def state
  @state
end

#typeObject (readonly)

Returns the value of attribute type.



11
12
13
# File 'lib/mtproto/tl/objects/updates_difference.rb', line 11

def type
  @type
end

#usersObject (readonly)

Returns the value of attribute users.



11
12
13
# File 'lib/mtproto/tl/objects/updates_difference.rb', line 11

def users
  @users
end

Class Method Details

.deserialize(data) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/mtproto/tl/objects/updates_difference.rb', line 32

def self.deserialize(data)
  constructor = data[0, 4].unpack1('L<')

  case constructor
  when Constructors::UPDATES_DIFFERENCE_EMPTY
    parse_empty(data)
  when Constructors::UPDATES_DIFFERENCE, Constructors::UPDATES_DIFFERENCE_SLICE
    parse_difference(data, constructor)
  when Constructors::UPDATES_DIFFERENCE_TOO_LONG
    new(type: :too_long, pts: data[4, 4].unpack1('L<'))
  else
    warn "Unknown Difference constructor: 0x#{constructor.to_s(16)}, treating as empty"
    new(type: :empty, date: Time.now.to_i, seq: 0)
  end
end

.schemaObject



28
29
30
# File 'lib/mtproto/tl/objects/updates_difference.rb', line 28

def self.schema
  @schema ||= Schema.new(SCHEMA_PATH)
end