tg/structures.h

165 lines
2.7 KiB
C
Raw Normal View History

2013-10-11 16:52:20 -04:00
#ifndef __STRUCTURES_H__
#define __STRUCTURES_H__
struct file_location {
int dc;
long long volume;
int local_id;
long long secret;
};
struct user_status {
int online;
int when;
};
struct user {
int id;
int flags;
char *print_name;
struct file_location photo_big;
struct file_location photo_small;
2013-10-11 16:52:20 -04:00
char *first_name;
char *last_name;
char *phone;
long long access_hash;
struct user_status status;
};
struct chat {
int id;
int flags;
char *print_title;
struct file_location photo_big;
struct file_location photo_small;
char *title;
int user_num;
int date;
int version;
2013-10-23 06:24:59 -04:00
int admin_id;
};
union user_chat {
struct {
int id;
int flags;
char *print_name;
struct file_location photo_big;
struct file_location photo_small;
};
struct user user;
struct chat chat;
};
struct photo_size {
char *type;
struct file_location loc;
int w;
int h;
int size;
char *data;
};
struct geo {
double longitude;
double latitude;
};
struct photo {
long long id;
long long access_hash;
int user_id;
int date;
char *caption;
struct geo geo;
int sizes_num;
struct photo_size *sizes;
};
struct video {
long long id;
long long access_hash;
int user_id;
int date;
char *caption;
int duration;
int size;
struct photo_size thumb;
int dc_id;
int w;
int h;
};
struct message_action {
int type;
union {
struct {
char *title;
int user_num;
int *users;
};
char *new_title;
struct photo photo;
int user;
};
};
struct message_media {
int type;
union {
struct photo photo;
struct video video;
struct geo geo;
struct {
char *phone;
char *first_name;
char *last_name;
int user_id;
};
void *data;
};
};
struct message {
struct message *next_use, *prev_use;
int id;
int flags;
int fwd_from_id;
int fwd_date;
int from_id;
int to_id;
int out;
int unread;
int date;
int service;
union {
struct message_action action;
struct {
char *message;
2013-10-22 11:28:41 -04:00
int message_len;
struct message_media media;
};
};
};
2013-10-11 16:52:20 -04:00
void fetch_file_location (struct file_location *loc);
2013-10-16 15:19:39 -04:00
void fetch_user_status (struct user_status *S);
2013-10-11 16:52:20 -04:00
void fetch_user (struct user *U);
struct user *fetch_alloc_user (void);
struct chat *fetch_alloc_chat (void);
2013-10-16 15:19:39 -04:00
struct message *fetch_alloc_message (void);
struct message *fetch_alloc_message_short (void);
struct message *fetch_alloc_message_short_chat (void);
int fetch_peer_id (void);
void free_user (struct user *U);
void free_chat (struct chat *U);
int print_stat (char *s, int len);
2013-10-16 15:19:39 -04:00
union user_chat *user_chat_get (int id);
struct message *message_get (int id);
void update_message_id (struct message *M, int id);
2013-10-18 15:30:24 -04:00
void message_insert (struct message *M);
2013-10-11 16:52:20 -04:00
#endif