Nagram/TMessagesProj/jni/tgnet/ApiScheme.h

609 lines
16 KiB
C
Raw Normal View History

2016-10-11 11:57:01 +00:00
/*
2018-07-30 02:07:02 +00:00
* This is the source code of tgnet library v. 1.1
2016-10-11 11:57:01 +00:00
* It is licensed under GNU GPL v. 2 or later.
* You should have received a copy of the license in this archive (see LICENSE).
*
2018-07-30 02:07:02 +00:00
* Copyright Nikolai Kudashov, 2015-2018.
2016-10-11 11:57:01 +00:00
*/
#ifndef APISCHEME_H
#define APISCHEME_H
#include <vector>
#include <memory>
#include "TLObject.h"
class ByteArray;
class NativeByteBuffer;
class Bool : public TLObject {
public:
2018-07-30 02:07:02 +00:00
static Bool *TLdeserialize(NativeByteBuffer *stream, uint32_t constructor, int32_t instanceNum, bool &error);
2016-10-11 11:57:01 +00:00
};
class TL_boolTrue : public Bool {
public:
static const uint32_t constructor = 0x997275b5;
void serializeToStream(NativeByteBuffer *stream);
};
class TL_boolFalse : public Bool {
public:
static const uint32_t constructor = 0xbc799737;
void serializeToStream(NativeByteBuffer *stream);
};
class TL_dcOption : public TLObject {
public:
2018-07-30 02:07:02 +00:00
static const uint32_t constructor = 0x18b7a10d;
2016-10-11 11:57:01 +00:00
int32_t flags;
2017-07-08 16:32:04 +00:00
bool ipv6;
bool media_only;
bool tcpo_only;
bool cdn;
bool isStatic;
2016-10-11 11:57:01 +00:00
int32_t id;
std::string ip_address;
int32_t port;
2018-07-30 02:07:02 +00:00
std::unique_ptr<ByteArray> secret;
2016-10-11 11:57:01 +00:00
2018-07-30 02:07:02 +00:00
static TL_dcOption *TLdeserialize(NativeByteBuffer *stream, uint32_t constructor, int32_t instanceNum, bool &error);
void readParams(NativeByteBuffer *stream, int32_t instanceNum, bool &error);
2016-10-11 11:57:01 +00:00
void serializeToStream(NativeByteBuffer *stream);
};
2017-07-08 16:32:04 +00:00
class TL_cdnPublicKey : public TLObject {
public:
static const uint32_t constructor = 0xc982eaba;
int32_t dc_id;
std::string public_key;
2018-07-30 02:07:02 +00:00
static TL_cdnPublicKey *TLdeserialize(NativeByteBuffer *stream, uint32_t constructor, int32_t instanceNum, bool &error);
void readParams(NativeByteBuffer *stream, int32_t instanceNum, bool &error);
2017-07-08 16:32:04 +00:00
void serializeToStream(NativeByteBuffer *stream);
};
class TL_cdnConfig : public TLObject {
public:
static const uint32_t constructor = 0x5725e40a;
std::vector<std::unique_ptr<TL_cdnPublicKey>> public_keys;
2018-07-30 02:07:02 +00:00
static TL_cdnConfig *TLdeserialize(NativeByteBuffer *stream, uint32_t constructor, int32_t instanceNum, bool &error);
void readParams(NativeByteBuffer *stream, int32_t instanceNum, bool &error);
2017-07-08 16:32:04 +00:00
void serializeToStream(NativeByteBuffer *stream);
};
class TL_help_getCdnConfig : public TLObject {
public:
static const uint32_t constructor = 0x52029342;
bool isNeedLayer();
2018-07-30 02:07:02 +00:00
TLObject *deserializeResponse(NativeByteBuffer *stream, uint32_t constructor, int32_t instanceNum, bool &error);
2016-10-11 11:57:01 +00:00
void serializeToStream(NativeByteBuffer *stream);
};
class TL_config : public TLObject {
public:
2018-07-30 02:07:02 +00:00
static const uint32_t constructor = 0x3213dbba;
2016-10-11 11:57:01 +00:00
int32_t flags;
int32_t date;
int32_t expires;
bool test_mode;
int32_t this_dc;
std::vector<std::unique_ptr<TL_dcOption>> dc_options;
2018-07-30 02:07:02 +00:00
std::string dc_txt_domain_name;
2016-10-11 11:57:01 +00:00
int32_t chat_size_max;
int32_t megagroup_size_max;
int32_t forwarded_count_max;
int32_t online_update_period_ms;
int32_t offline_blur_timeout_ms;
int32_t offline_idle_timeout_ms;
int32_t online_cloud_timeout_ms;
int32_t notify_cloud_delay_ms;
int32_t notify_default_delay_ms;
int32_t push_chat_period_ms;
int32_t push_chat_limit;
int32_t saved_gifs_limit;
int32_t edit_time_limit;
2018-07-30 02:07:02 +00:00
int32_t revoke_time_limit;
int32_t revoke_pm_time_limit;
2016-10-11 11:57:01 +00:00
int32_t rating_e_decay;
int32_t stickers_recent_limit;
2017-12-08 17:35:59 +00:00
int32_t stickers_faved_limit;
int32_t channels_read_media_period;
2016-10-11 11:57:01 +00:00
int32_t tmp_sessions;
2017-03-30 23:58:05 +00:00
int32_t pinned_dialogs_count_max;
int32_t call_receive_timeout_ms;
int32_t call_ring_timeout_ms;
int32_t call_connect_timeout_ms;
int32_t call_packet_timeout_ms;
std::string me_url_prefix;
2018-07-30 02:07:02 +00:00
std::string autoupdate_url_prefix;
std::string gif_search_username;
std::string venue_search_username;
std::string img_search_username;
std::string static_maps_provider;
int32_t caption_length_max;
int32_t message_length_max;
int32_t webfile_dc_id;
2017-07-08 16:32:04 +00:00
std::string suggested_lang_code;
int32_t lang_pack_version;
2016-10-11 11:57:01 +00:00
2018-07-30 02:07:02 +00:00
static TL_config *TLdeserialize(NativeByteBuffer *stream, uint32_t constructor, int32_t instanceNum, bool &error);
void readParams(NativeByteBuffer *stream, int32_t instanceNum, bool &error);
2016-10-11 11:57:01 +00:00
void serializeToStream(NativeByteBuffer *stream);
};
class TL_help_getConfig : public TLObject {
public:
static const uint32_t constructor = 0xc4f9186b;
bool isNeedLayer();
2018-07-30 02:07:02 +00:00
TLObject *deserializeResponse(NativeByteBuffer *stream, uint32_t constructor, int32_t instanceNum, bool &error);
2016-10-11 11:57:01 +00:00
void serializeToStream(NativeByteBuffer *stream);
};
class TL_account_registerDevice : public TLObject {
public:
static const uint32_t constructor = 0x637ea878;
int32_t token_type;
std::string token;
bool isNeedLayer();
2018-07-30 02:07:02 +00:00
TLObject *deserializeResponse(NativeByteBuffer *stream, uint32_t constructor, int32_t instanceNum, bool &error);
2016-10-11 11:57:01 +00:00
void serializeToStream(NativeByteBuffer *stream);
};
class UserStatus : public TLObject {
public:
int32_t expires;
2018-07-30 02:07:02 +00:00
static UserStatus *TLdeserialize(NativeByteBuffer *stream, uint32_t constructor, int32_t instanceNum, bool &error);
2016-10-11 11:57:01 +00:00
};
class TL_userStatusOffline : public UserStatus {
public:
static const uint32_t constructor = 0x8c703f;
2018-07-30 02:07:02 +00:00
void readParams(NativeByteBuffer *stream, int32_t instanceNum, bool &error);
2016-10-11 11:57:01 +00:00
void serializeToStream(NativeByteBuffer *stream);
};
class TL_userStatusLastWeek : public UserStatus {
public:
static const uint32_t constructor = 0x7bf09fc;
void serializeToStream(NativeByteBuffer *stream);
};
class TL_userStatusEmpty : public UserStatus {
public:
static const uint32_t constructor = 0x9d05049;
void serializeToStream(NativeByteBuffer *stream);
};
class TL_userStatusLastMonth : public UserStatus {
public:
static const uint32_t constructor = 0x77ebc742;
void serializeToStream(NativeByteBuffer *stream);
};
class TL_userStatusOnline : public UserStatus {
public:
static const uint32_t constructor = 0xedb93949;
2018-07-30 02:07:02 +00:00
void readParams(NativeByteBuffer *stream, int32_t instanceNum, bool &error);
2016-10-11 11:57:01 +00:00
void serializeToStream(NativeByteBuffer *stream);
};
class TL_userStatusRecently : public UserStatus {
public:
static const uint32_t constructor = 0xe26f42f1;
void serializeToStream(NativeByteBuffer *stream);
};
class FileLocation : public TLObject {
public:
int32_t dc_id;
int64_t volume_id;
int32_t local_id;
int64_t secret;
std::unique_ptr<ByteArray> key;
std::unique_ptr<ByteArray> iv;
2018-07-30 02:07:02 +00:00
static FileLocation *TLdeserialize(NativeByteBuffer *stream, uint32_t constructor, int32_t instanceNum, bool &error);
2016-10-11 11:57:01 +00:00
};
class TL_fileLocation : public FileLocation {
public:
static const uint32_t constructor = 0x53d69076;
2018-07-30 02:07:02 +00:00
void readParams(NativeByteBuffer *stream, int32_t instanceNum, bool &error);
2016-10-11 11:57:01 +00:00
void serializeToStream(NativeByteBuffer *stream);
};
class TL_fileEncryptedLocation : public FileLocation {
public:
static const uint32_t constructor = 0x55555554;
2018-07-30 02:07:02 +00:00
void readParams(NativeByteBuffer *stream, int32_t instanceNum, bool &error);
2016-10-11 11:57:01 +00:00
void serializeToStream(NativeByteBuffer *stream);
};
class TL_fileLocationUnavailable : public FileLocation {
public:
static const uint32_t constructor = 0x7c596b46;
2018-07-30 02:07:02 +00:00
void readParams(NativeByteBuffer *stream, int32_t instanceNum, bool &error);
2016-10-11 11:57:01 +00:00
void serializeToStream(NativeByteBuffer *stream);
};
class UserProfilePhoto : public TLObject {
public:
int64_t photo_id;
std::unique_ptr<FileLocation> photo_small;
std::unique_ptr<FileLocation> photo_big;
2018-07-30 02:07:02 +00:00
static UserProfilePhoto *TLdeserialize(NativeByteBuffer *stream, uint32_t constructor, int32_t instanceNum, bool &error);
2016-10-11 11:57:01 +00:00
};
class TL_userProfilePhotoEmpty : public UserProfilePhoto {
public:
static const uint32_t constructor = 0x4f11bae1;
void serializeToStream(NativeByteBuffer *stream);
};
class TL_userProfilePhoto : public UserProfilePhoto {
public:
static const uint32_t constructor = 0xd559d8c8;
2018-07-30 02:07:02 +00:00
void readParams(NativeByteBuffer *stream, int32_t instanceNum, bool &error);
2016-10-11 11:57:01 +00:00
void serializeToStream(NativeByteBuffer *stream);
};
class User : public TLObject {
public:
int32_t id;
std::string first_name;
std::string last_name;
std::string username;
int64_t access_hash;
std::string phone;
std::unique_ptr<UserProfilePhoto> photo;
std::unique_ptr<UserStatus> status;
int32_t flags;
int32_t bot_info_version;
std::string restriction_reason;
std::string bot_inline_placeholder;
2017-07-08 16:32:04 +00:00
std::string lang_code;
2016-10-11 11:57:01 +00:00
2018-07-30 02:07:02 +00:00
static User *TLdeserialize(NativeByteBuffer *stream, uint32_t constructor, int32_t instanceNum, bool &error);
2016-10-11 11:57:01 +00:00
};
class TL_userEmpty : public User {
public:
static const uint32_t constructor = 0x200250ba;
2018-07-30 02:07:02 +00:00
void readParams(NativeByteBuffer *stream, int32_t instanceNum, bool &error);
2016-10-11 11:57:01 +00:00
void serializeToStream(NativeByteBuffer *stream);
};
class TL_user : public User {
public:
2017-07-08 16:32:04 +00:00
static const uint32_t constructor = 0x2e13f4c3;
2016-10-11 11:57:01 +00:00
2018-07-30 02:07:02 +00:00
void readParams(NativeByteBuffer *stream, int32_t instanceNum, bool &error);
2016-10-11 11:57:01 +00:00
void serializeToStream(NativeByteBuffer *stream);
};
class TL_auth_authorization : public TLObject {
public:
static const uint32_t constructor = 0xcd050916;
int32_t flags;
int32_t tmp_sessions;
std::unique_ptr<User> user;
2018-07-30 02:07:02 +00:00
static TL_auth_authorization *TLdeserialize(NativeByteBuffer *stream, uint32_t constructor, int32_t instanceNum, bool &error);
void readParams(NativeByteBuffer *stream, int32_t instanceNum, bool &error);
2016-10-11 11:57:01 +00:00
};
class TL_auth_exportedAuthorization : public TLObject {
public:
static const uint32_t constructor = 0xdf969c2d;
int32_t id;
std::unique_ptr<ByteArray> bytes;
2018-07-30 02:07:02 +00:00
static TL_auth_exportedAuthorization *TLdeserialize(NativeByteBuffer *stream, uint32_t constructor, int32_t instanceNum, bool &error);
void readParams(NativeByteBuffer *stream, int32_t instanceNum, bool &error);
2016-10-11 11:57:01 +00:00
};
class TL_auth_exportAuthorization : public TLObject {
public:
static const uint32_t constructor = 0xe5bfffcd;
int32_t dc_id;
bool isNeedLayer();
2018-07-30 02:07:02 +00:00
TLObject *deserializeResponse(NativeByteBuffer *stream, uint32_t constructor, int32_t instanceNum, bool &error);
2016-10-11 11:57:01 +00:00
void serializeToStream(NativeByteBuffer *stream);
};
class TL_auth_importAuthorization : public TLObject {
public:
static const uint32_t constructor = 0xe3ef9613;
int32_t id;
std::unique_ptr<ByteArray> bytes;
bool isNeedLayer();
2018-07-30 02:07:02 +00:00
TLObject *deserializeResponse(NativeByteBuffer *stream, uint32_t constructor, int32_t instanceNum, bool &error);
2016-10-11 11:57:01 +00:00
void serializeToStream(NativeByteBuffer *stream);
};
class auth_SentCode : public TLObject {
public:
bool phone_registered;
std::string phone_code_hash;
int32_t send_call_timeout;
bool is_password;
2018-07-30 02:07:02 +00:00
static auth_SentCode *TLdeserialize(NativeByteBuffer *stream, uint32_t constructor, int32_t instanceNum, bool &error);
2016-10-11 11:57:01 +00:00
};
class TL_auth_sentAppCode : public auth_SentCode {
public:
static const uint32_t constructor = 0xe325edcf;
2018-07-30 02:07:02 +00:00
void readParams(NativeByteBuffer *stream, int32_t instanceNum, bool &error);
2016-10-11 11:57:01 +00:00
void serializeToStream(NativeByteBuffer *stream);
};
class TL_auth_sentCode : public auth_SentCode {
public:
static const uint32_t constructor = 0xefed51d9;
2018-07-30 02:07:02 +00:00
void readParams(NativeByteBuffer *stream, int32_t instanceNum, bool &error);
2016-10-11 11:57:01 +00:00
void serializeToStream(NativeByteBuffer *stream);
};
class TL_auth_sendCode : public TLObject {
public:
static const uint32_t constructor = 0x768d5f4d;
std::string phone_number;
int32_t sms_type;
int32_t api_id;
std::string api_hash;
std::string lang_code;
2018-07-30 02:07:02 +00:00
TLObject *deserializeResponse(NativeByteBuffer *stream, uint32_t constructor, int32_t instanceNum, bool &error);
2016-10-11 11:57:01 +00:00
void serializeToStream(NativeByteBuffer *stream);
};
class TL_updatesTooLong : public TLObject {
public:
static const uint32_t constructor = 0xe317af7e;
void serializeToStream(NativeByteBuffer *stream);
};
class storage_FileType : public TLObject {
public:
2018-07-30 02:07:02 +00:00
static storage_FileType *TLdeserialize(NativeByteBuffer *stream, uint32_t constructor, int32_t instanceNum, bool &error);
2016-10-11 11:57:01 +00:00
};
class TL_storage_fileUnknown : public storage_FileType {
public:
static const uint32_t constructor = 0xaa963b05;
void serializeToStream(NativeByteBuffer *stream);
};
class TL_storage_fileMp4 : public storage_FileType {
public:
static const uint32_t constructor = 0xb3cea0e4;
void serializeToStream(NativeByteBuffer *stream);
};
class TL_storage_fileWebp : public storage_FileType {
public:
static const uint32_t constructor = 0x1081464c;
void serializeToStream(NativeByteBuffer *stream);
};
class TL_storage_filePng : public storage_FileType {
public:
static const uint32_t constructor = 0xa4f63c0;
void serializeToStream(NativeByteBuffer *stream);
};
class TL_storage_fileGif : public storage_FileType {
public:
static const uint32_t constructor = 0xcae1aadf;
void serializeToStream(NativeByteBuffer *stream);
};
class TL_storage_filePdf : public storage_FileType {
public:
static const uint32_t constructor = 0xae1e508d;
void serializeToStream(NativeByteBuffer *stream);
};
class TL_storage_fileMp3 : public storage_FileType {
public:
static const uint32_t constructor = 0x528a0677;
void serializeToStream(NativeByteBuffer *stream);
};
class TL_storage_fileJpeg : public storage_FileType {
public:
static const uint32_t constructor = 0x7efe0e;
void serializeToStream(NativeByteBuffer *stream);
};
class TL_storage_fileMov : public storage_FileType {
public:
static const uint32_t constructor = 0x4b09ebbc;
void serializeToStream(NativeByteBuffer *stream);
};
class TL_storage_filePartial : public storage_FileType {
public:
static const uint32_t constructor = 0x40bc6f52;
void serializeToStream(NativeByteBuffer *stream);
};
class InputFileLocation : public TLObject {
public:
int64_t id;
int64_t access_hash;
int32_t version;
int64_t volume_id;
int32_t local_id;
int64_t secret;
2018-07-30 02:07:02 +00:00
static InputFileLocation *TLdeserialize(NativeByteBuffer *stream, uint32_t constructor, int32_t instanceNum, bool &error);
2016-10-11 11:57:01 +00:00
};
class TL_inputDocumentFileLocation : public InputFileLocation {
public:
static const uint32_t constructor = 0x430f0724;
2018-07-30 02:07:02 +00:00
void readParams(NativeByteBuffer *stream, int32_t instanceNum, bool &error);
2016-10-11 11:57:01 +00:00
void serializeToStream(NativeByteBuffer *stream);
};
class TL_inputFileLocation : public InputFileLocation {
public:
static const uint32_t constructor = 0x14637196;
2018-07-30 02:07:02 +00:00
void readParams(NativeByteBuffer *stream, int32_t instanceNum, bool &error);
2016-10-11 11:57:01 +00:00
void serializeToStream(NativeByteBuffer *stream);
};
class TL_inputEncryptedFileLocation : public InputFileLocation {
public:
static const uint32_t constructor = 0xf5235d55;
2018-07-30 02:07:02 +00:00
void readParams(NativeByteBuffer *stream, int32_t instanceNum, bool &error);
2016-10-11 11:57:01 +00:00
void serializeToStream(NativeByteBuffer *stream);
};
class TL_upload_saveFilePart : public TLObject {
public:
static const uint32_t constructor = 0xb304a621;
int64_t file_id;
int32_t file_part;
std::unique_ptr<ByteArray> bytes;
bool isNeedLayer();
2018-07-30 02:07:02 +00:00
TLObject *deserializeResponse(NativeByteBuffer *stream, uint32_t constructor, int32_t instanceNum, bool &error);
2016-10-11 11:57:01 +00:00
void serializeToStream(NativeByteBuffer *stream);
};
class TL_upload_file : public TLObject {
public:
static const uint32_t constructor = 0x96a18d5;
std::unique_ptr<storage_FileType> type;
int32_t mtime;
NativeByteBuffer *bytes = nullptr;
~TL_upload_file();
2018-07-30 02:07:02 +00:00
static TL_upload_file *TLdeserialize(NativeByteBuffer *stream, uint32_t constructor, int32_t instanceNum, bool &error);
void readParams(NativeByteBuffer *stream, int32_t instanceNum, bool &error);
2016-10-11 11:57:01 +00:00
};
class TL_upload_getFile : public TLObject {
public:
static const uint32_t constructor = 0xe3a6cfb5;
InputFileLocation *location;
int32_t offset;
int32_t limit;
bool isNeedLayer();
2018-07-30 02:07:02 +00:00
TLObject *deserializeResponse(NativeByteBuffer *stream, uint32_t constructor, int32_t instanceNum, bool &error);
2016-10-11 11:57:01 +00:00
void serializeToStream(NativeByteBuffer *stream);
};
#endif