예제 #1
0
        public void read(BinaryReader reader)
        {
            logger.info("read session...");
            id         = reader.ReadUInt64();
            sequence   = reader.ReadInt32();
            mainDcId   = reader.ReadInt32();
            timeOffset = reader.ReadInt32();
            cachedSalt = reader.ReadUInt64();
            int count = reader.ReadInt32();

            // contacts sync marker
            ContactsStateMarker = Serializers.String.read(reader);

            dcs = new Dictionary <int, TelegramDC>(count);
            for (int i = 0; i < count; i++)
            {
                int endpointId = reader.ReadInt32();
                dcs.Add(endpointId, new TelegramDC(reader));
            }

            int authorizationExists = reader.ReadInt32();

            if (authorizationExists != 0)
            {
                authorization = (Auth_authorizationConstructor)TL.Parse <auth_Authorization>(reader);
            }


            int usersCount = reader.ReadInt32();

            users = new Dictionary <int, UserModel>(usersCount + 10);
            for (int i = 0; i < usersCount; i++)
            {
                users.Add(reader.ReadInt32(), new UserModel(TL.Parse <User>(reader)));
            }

            int chatsCount = reader.ReadInt32();

            chats = new Dictionary <int, ChatModel>(chatsCount + 10);
            for (int i = 0; i < chatsCount; i++)
            {
                chats.Add(reader.ReadInt32(), new ChatModel(TL.Parse <Chat>(reader)));
            }

            logger.info("reading updates state....");
            updates = new UpdatesProcessor(this, reader);

            logger.info("reading dialogs...");
            dialogs = new Dialogs(this, reader);

            files          = new Files(this);
            encryptedChats = new EncryptedChats(this, reader);

            logger.info("session readed complete");
        }
예제 #2
0
        public TelegramSession(ulong id, int sequence)
        {
            this.id        = id;
            this.sequence  = sequence;
            dcs            = new Dictionary <int, TelegramDC>();
            updates        = new UpdatesProcessor(this);
            dialogs        = new Dialogs(this);
            files          = new Files(this);
            encryptedChats = new EncryptedChats(this);
            users          = new Dictionary <int, UserModel>();
            chats          = new Dictionary <int, ChatModel>();

            SubscribeToUpdates();
        }