ekg2
 All Struktury Danych Pliki Funkcje Zmienne Definicje typów Wyliczenia Wartości wyliczeń Definicje Grupay Strony
Struktury danych | Definicje | Definicje typów | Wyliczenia | Funkcje | Zmienne
Dokumentacja pliku userlist.h
#include "ekg2-config.h"
#include "win32.h"
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <stdio.h>
#include <stdarg.h>
#include <time.h>
#include "dynstuff.h"
#include "sessions.h"
#include "plugins.h"
#include "windows.h"

Idź do kodu źródłowego tego pliku.

Struktury danych

struct  userlist
struct  ekg_resource
struct  ekg_group
struct  ignore_label

Definicje

#define IGNORE_LABELS_MAX   9
#define userlist_find_n(a, b)   userlist_find(session_find(a), b)
#define user_private_item_get_safe(user, name, result)   private_item_get_safe(&(user)->priv_list, name, result)
#define user_private_item_get(user, name)   private_item_get(&(user)->priv_list, name)
#define user_private_item_get_int_safe(user, name, result)   private_item_get_int_safe(&(user)->priv_list), name, int *result)
#define user_private_item_get_int(user, name)   private_item_get_int(&(user)->priv_list, name)
#define user_private_item_set(user, name, value)   private_item_set(&(user)->priv_list, name, value)
#define user_private_item_set_int(user, name, value)   private_item_set_int(&(user)->priv_list, name, value)
#define user_private_items_destroy(user)   private_items_destroy(&(user)->priv_list);

Definicje typów

typedef struct userlist userlist_t
typedef struct ekg_resource ekg_resource_t

Wyliczenia

enum  xstate_t { EKG_XSTATE_BLINK = 1, EKG_XSTATE_TYPING = 2, EKG_XSTATE_BLINK = 1, EKG_XSTATE_TYPING = 2 }
enum  userlist_privhandler_func_t {
  EKG_USERLIST_PRIVHANDLER_FREE = 0, EKG_USERLIST_PRIVHANDLER_GET, EKG_USERLIST_PRIVHANDLER_READING, EKG_USERLIST_PRIVHANDLER_WRITING,
  EKG_USERLIST_PRIVHANDLER_SETVAR_BYNAME = 0xC0
}
enum  ignore_t {
  IGNORE_STATUS = 0x01, IGNORE_STATUS_DESCR = 0x02, IGNORE_MSG = 0x04, IGNORE_DCC = 0x08,
  IGNORE_EVENTS = 0x10, IGNORE_NOTIFY = 0x20, IGNORE_XOSD = 0x40, IGNORE_LOG = 0x80,
  IGNORE_ALL = 0xFF, IGNORE_STATUS = 0x01, IGNORE_STATUS_DESCR = 0x02, IGNORE_MSG = 0x04,
  IGNORE_DCC = 0x08, IGNORE_EVENTS = 0x10, IGNORE_NOTIFY = 0x20, IGNORE_XOSD = 0x40,
  IGNORE_LOG = 0x80, IGNORE_ALL = 0xFF
}

Funkcje

int userlist_read (session_t *session)
int userlist_write (session_t *session)
void userlist_write_crash ()
void userlist_clear_status (session_t *session, const char *uid)
userlist_tuserlist_add (session_t *session, const char *uid, const char *nickname)
userlist_tuserlist_add_u (userlist_t **userlist, const char *uid, const char *nickname)
void userlist_add_entry (session_t *session, const char *line)
int userlist_remove (session_t *session, userlist_t *u)
int userlist_remove_u (userlist_t **userlist, userlist_t *u)
int userlist_replace (session_t *session, userlist_t *u)
userlist_tuserlist_find (session_t *session, const char *uid)
userlist_tuserlist_find_u (userlist_t **userlist, const char *uid)
void userlist_free (session_t *session)
void userlists_destroy (userlist_t **userlist)
void * userlist_private_get (plugin_t *plugin, userlist_t *u)
ekg_resource_tuserlist_resource_add (userlist_t *u, const char *name, int prio)
ekg_resource_tuserlist_resource_find (userlist_t *u, const char *name)
void userlist_resource_remove (userlist_t *u, ekg_resource_t *r)
int ignored_add (session_t *session, const char *uid, ignore_t level)
int ignored_remove (session_t *session, const char *uid)
int ignored_check (session_t *session, const char *uid)
int ignore_flags (const char *str)
const char * ignore_format (int level)
int ekg_group_add (userlist_t *u, const char *group)
int ekg_group_remove (userlist_t *u, const char *group)
int ekg_group_member (userlist_t *u, const char *group)
char * group_to_string (struct ekg_group *l, int meta, int sep)
struct ekg_groupgroup_init (const char *groups)
int valid_nick (const char *nick)
int valid_plugin_uid (plugin_t *plugin, const char *uid)
const char * format_user (session_t *session, const char *uid)
const char * get_uid (session_t *session, const char *text)
const char * get_uid_any (session_t *session, const char *text)
const char * get_nickname (session_t *session, const char *text)
char * get_user_name (userlist_t *u)

Zmienne

struct ignore_label ignore_labels [IGNORE_LABELS_MAX]

Dokumentacja definicji

#define IGNORE_LABELS_MAX   9
#define user_private_item_get (   user,
  name 
)    private_item_get(&(user)->priv_list, name)
#define user_private_item_get_int (   user,
  name 
)    private_item_get_int(&(user)->priv_list, name)
#define user_private_item_get_int_safe (   user,
  name,
  result 
)    private_item_get_int_safe(&(user)->priv_list), name, int *result)
#define user_private_item_get_safe (   user,
  name,
  result 
)    private_item_get_safe(&(user)->priv_list, name, result)
#define user_private_item_set (   user,
  name,
  value 
)    private_item_set(&(user)->priv_list, name, value)
#define user_private_item_set_int (   user,
  name,
  value 
)    private_item_set_int(&(user)->priv_list, name, value)
#define user_private_items_destroy (   user)    private_items_destroy(&(user)->priv_list);
#define userlist_find_n (   a,
 
)    userlist_find(session_find(a), b)

Dokumentacja definicji typów

typedef struct ekg_resource ekg_resource_t

ekg_resource_t is used to manage userlist_t resources.
For example jabber resources, or irc friendlist

typedef struct userlist userlist_t

userlist_t is used to manage all info about user.
It's used not only to manage contacts in roster, but also to manage people in chat or conference

Błąd:
There are two private fields [u->priv_data and u->priv] one needs to be removed.

Dokumentacja typów wyliczanych

enum ignore_t
Wartości wyliczeń:
IGNORE_STATUS 
IGNORE_STATUS_DESCR 
IGNORE_MSG 
IGNORE_DCC 
IGNORE_EVENTS 
IGNORE_NOTIFY 
IGNORE_XOSD 
IGNORE_LOG 
IGNORE_ALL 
IGNORE_STATUS 
IGNORE_STATUS_DESCR 
IGNORE_MSG 
IGNORE_DCC 
IGNORE_EVENTS 
IGNORE_NOTIFY 
IGNORE_XOSD 
IGNORE_LOG 
IGNORE_ALL 

userlist_privhandler_func_t - here we declare possible options for 'function' arg in USERLIST_PRIVHANDLE

All of them, excluding EKG_USERLIST_PRIVHANDLER_FREE, should alloc&init priv if needed

Wartości wyliczeń:
EKG_USERLIST_PRIVHANDLER_FREE 

Free private data (called when freeing userlist_t)

EKG_USERLIST_PRIVHANDLER_GET 

Return private data ptr, arg is void** for ptr

EKG_USERLIST_PRIVHANDLER_READING 

Called when reading userlist file,
1st arg is char*** with data array,
2nd arg is int* with array element count you can assume it's always at least 7
Please bear in mind that this query is called at the very beginning of userlist_add_entry()

EKG_USERLIST_PRIVHANDLER_WRITING 

Called when writing userlist file, arg is char*** with data array

EKG_USERLIST_PRIVHANDLER_SETVAR_BYNAME 

Set private 'variable' by name, args care char** with var name and char** with value (will be duplicated)

enum xstate_t
Wartości wyliczeń:
EKG_XSTATE_BLINK 
EKG_XSTATE_TYPING 
EKG_XSTATE_BLINK 
EKG_XSTATE_TYPING 

Dokumentacja funkcji

int ekg_group_add ( userlist_t u,
const char *  group 
)
int ekg_group_member ( userlist_t u,
const char *  group 
)
int ekg_group_remove ( userlist_t u,
const char *  group 
)
const char* format_user ( session_t session,
const char *  uid 
)
const char* get_nickname ( session_t session,
const char *  text 
)
const char* get_uid ( session_t session,
const char *  text 
)
const char* get_uid_any ( session_t session,
const char *  text 
)
char* get_user_name ( userlist_t u)
struct ekg_group* group_init ( const char *  groups)
read
char* group_to_string ( struct ekg_group l,
int  meta,
int  sep 
)
int ignore_flags ( const char *  str)
const char* ignore_format ( int  level)
int ignored_add ( session_t session,
const char *  uid,
ignore_t  level 
)
int ignored_check ( session_t session,
const char *  uid 
)
int ignored_remove ( session_t session,
const char *  uid 
)
userlist_t* userlist_add ( session_t session,
const char *  uid,
const char *  nickname 
)
void userlist_add_entry ( session_t session,
const char *  line 
)
userlist_t* userlist_add_u ( userlist_t **  userlist,
const char *  uid,
const char *  nickname 
)
void userlist_clear_status ( session_t session,
const char *  uid 
)
userlist_t* userlist_find ( session_t session,
const char *  uid 
)
userlist_t* userlist_find_u ( userlist_t **  userlist,
const char *  uid 
)
void userlist_free ( session_t session)
void* userlist_private_get ( plugin_t plugin,
userlist_t u 
)
int userlist_read ( session_t session)
int userlist_remove ( session_t session,
userlist_t u 
)
int userlist_remove_u ( userlist_t **  userlist,
userlist_t u 
)
int userlist_replace ( session_t session,
userlist_t u 
)
ekg_resource_t* userlist_resource_add ( userlist_t u,
const char *  name,
int  prio 
)
ekg_resource_t* userlist_resource_find ( userlist_t u,
const char *  name 
)
void userlist_resource_remove ( userlist_t u,
ekg_resource_t r 
)
int userlist_write ( session_t session)
void userlist_write_crash ( )
void userlists_destroy ( userlist_t **  userlist)
int valid_nick ( const char *  nick)
int valid_plugin_uid ( plugin_t plugin,
const char *  uid 
)

Dokumentacja zmiennych

struct ignore_label ignore_labels[IGNORE_LABELS_MAX]