Idź do dokumentacji tego pliku.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef __EKG_SESSIONS_H
00022 #define __EKG_SESSIONS_H
00023
00024 #include <time.h>
00025
00026 typedef enum {
00027 EKG_STATUS_NULL = 0x00,
00028
00029
00030 EKG_STATUS_ERROR,
00031 EKG_STATUS_BLOCKED,
00032
00033
00034 EKG_STATUS_UNKNOWN,
00035 EKG_STATUS_NA,
00036
00037
00038 EKG_STATUS_INVISIBLE,
00039 EKG_STATUS_DND,
00040 EKG_STATUS_GONE,
00041 EKG_STATUS_XA,
00042 EKG_STATUS_AWAY,
00043
00044
00045 EKG_STATUS_AVAIL,
00046 EKG_STATUS_FFC
00047 } status_t;
00048
00049 typedef struct session_param {
00050 struct session_param *next;
00051
00052 char *key;
00053 char *value;
00054 } session_param_t;
00055
00059 typedef struct ekg_session {
00060 struct ekg_session *next;
00061
00062
00063 void *plugin;
00064 char *uid;
00065 char *alias;
00066 void *__priv;
00067 struct userlist *userlist;
00068
00069
00070 status_t status;
00071 char *descr;
00072 char *__password;
00073
00074 unsigned int connected : 1;
00075 unsigned int connecting : 2;
00076 unsigned int __autoaway : 1;
00077
00078 time_t __activity;
00079 time_t __last_conn;
00080
00081 int __global_vars_count;
00082 char **__values;
00083 session_param_t *__local_vars;
00084
00085 status_t __last_status;
00086 char *__last_descr;
00087 int __flock_fd;
00088 } session_t;
00089
00090 extern session_t *sessions;
00091
00092 extern session_t *session_current;
00093
00094 session_t *session_find(const char *uid);
00095
00096 const char *session_uid_get(session_t *s);
00097
00098 session_t *remote_session_add(const char *uid, const char *plugin);
00099 int remote_session_remove(const char *uid);
00100
00101 void sessions_free();
00102
00103 #endif
00104
00105
00106
00107
00108
00109
00110
00111
00112