# sprawdzic jak sie userlista zachowuje po zmianach.. (21.12.2005)

# BUG : jak sie robi /script --reset kilka razy albo /plugin -perl /plugin +perl SIGSEGV @ perl_parse() 

# TODO: zrobic to w docbooku albo czymstam...
# TODO: dokonczyc.

# czw mar 16 22:31:19 CET 2006
## Wywalono stimer z handlera timerow. (type, self)
## zmiana timer->delete() na timer->destroy()

#####################################################################################################################################

Ekg2
    EKG_MSGCLASS_SENT									(int)
    EKG_MSGCLASS_SENT_CHAT								(int)
    EKG_NO_THEMEBIT									(int)

    -> session_find($nazwa)	- szuka sesji						(Ekg2::Session)
    -> plugin_find($nazwa)	- szuka pluga						(Ekg2::Plugin)
    -> variable_find($nazwa)	- szuka zmiennej					(Ekg2::Variable)
    
    -> window_findid($id)       - szuka okna o numerku					(Ekg2::Window)
    -> window_find($nazwa)	- szuka okna o nazwie					(Ekg2::Window)

    -> session_current()	- aktualna sesja.					(Ekg2::Session)
    -> window_current()		- aktualne okno.					(Ekg2::Window)

    -> plugins()	    - lista pluginow						(lista Ekg2::Plugin)
    -> sessions()	    - lista sesji						(lista Ekg2::Session)
    -> windows()	    - lista okine						(lista Ekg2::Window)
    -> timers()		    - lista zegarkow						(lista Ekg2::Timer)
    -> variables()	    - lista zmiennych						(lista Ekg2::Variable)
    -> commands()	    - lista komend						(lista Ekg2::Command)

Ekg2::Command
	{name}			- nazwa
    
	-> execute($param)	- wykonuje polecenie
	-> remove()		- usuwa polecenie.

Ekg2::Plugin
	{name}			- nazwa							(char *)
	{prio}			- priorytet 						(int)
   
	-> unload()		- wyladowuje plugin.					(int)

Ekg2::Session
	{connected}		- czy polaczona.					(int)
	{uid}			- nazwa.						(char *)
	{status}		- status, tryb lub jaktotamsienazywa (avail,..)		(char *)
    
	-> disconnect()		- robi /disconnect
	-> connect()		- robi /connect
	-> set()		- zmienia session_current na ta sesje (zle ?!)
	-> connected_set($var)	- ustawia czy sesja jest polaczona czy nie.
    
	-> params()		- lista zmiennych sesji					(lista Ekg2::Session::Param)
	-> userlist()		- userlista sesji					(Ekg2::Userlist)

Ekg2::Session::Param
	-> set($newvalue)
	-> help()

Ekg2::User
	{uid}			- nazwa usera w/g plugina.				(char *)
	{nickname}		- nazwa usera.						(char *)
	{status}		- status usera						(char *)

	-> set_status($status)	- zmienia status userowi (avail, notavail...)		
	
Ekg2::Userlist
	{}			- just a pointer					(list_t)

	-> users		- lista userow						(lista Ekg2::User)
	-> add($uid, $nick)	- dodaje usera do userlisty				(Ekg2::User)
	-> remove($user)	- usuwa Ekg2::User z userlisty.
	-> find($uid)		- szuka usera na userlista				(Ekg2::User)
	
Ekg2::Window
	{target}		- nazwa.						(char *)
	{id}			- numerek						(int)
    
	-> kill()		- zabija okno.
	-> switch()		- przechodzi na okno
	-> print_format($fmt,$line) - pisze do okna.
	-> print($tekst)	= (print_format("generic", $tekst)
    
	-> next()		- nastepne okno						(Ekg2::Window)
	-> prev()		- poprzednie okno.					(Ekg2::Window)

	-> userlist()		- userlista okna                                        (Ekg2::Userlist)

Ekg2::Timers
	{name}			- nazwa							(char *)
	{freq}			- czestotliwosc						(int)

	-> destroy()		- nieszczy timer.					(void)

Ekg2::Variable
	{name}			- nazwa							(char *)
	{value}			- wartosc						(char */ int *)

	-> set($value)
	-> help()

#####################################################################################################################################

Ekg2::Irc
    -> session2server(sesja)	- zwraca zblessowana sesje ircowa ze `zwyklej`		(Ekg2::Irc::Server)
    -> servers()		- zwraca liste sesji irc.				(Ekg2::Irc::Server)

Ekg2::Irc::Server 
   -> session() 	    - sesja							(Ekg2::Session)
   {nick}		    - nick (j->nick albo session_get(... , "nick")		(char *)
   {server}		    - nazwa serwera ()						(char *)
   {ip}			    - jesli zresolvowano to adres ip, jesli nie to 0.0.0.0	(char *)

  -> raw($co)			- wysyla do serwera.
		    /quote $co
  -> quit($reason)		- rozlacza sie z serwerem.
		    /quote QUIT :$reason
  -> newnick($nick)		- zmienia nick.
		    /quote NICK $nick
  -> setmode($mode)		- zmienia tryby.
		    /quote MODE nasz_nick $mode
  -> oper($nick, $haslo)	- identyfikuje sie jako operator.
		    /quote OPER $nick $haslo
  -> die($server, $reason)	- zabija serwer ircd.
		    /quote DIE  $server :$reason (dobrze ?, rfc!)

  -> channels()			- zwraca liste kanalow na jakich siedzimy.		(lista Ekg2::Irc::Channel)
  -> people()			- zwraca liste userow  na kanalach na ktorych siedzimy. (lista Ekg2::Irc::User)

  -> session()			- zwraca zblessowana `zwykla` sesje			(Ekg2::Session)
  
 
Ekg2::Irc::Channel
   {name}                  -  nazwa kanalu (bez irc:)					(char *)
   {mode}		   -  tryb kanalu						(char *)
   {topic}		   -  topic.							(char *)
   {topicby}		   -  autor topica.						(char *)
#   {window}	           -  okno.							(Ekg2::Window)

   {name_}		   -  nazwa kanalu (  z irc:) wyleci pewnie za niedlugo....	(char *)
   {mode_int}		   -  ? 							(int)

#  -> part($reason)		- wychodzi z kanalu 
##  -> kick($user, $reason)	- 		    
##  -> 
  
Ekg2::Irc::User
	-> channels		- lista kanalow na ktorych siedzi user			(lista Ekg2::Irc::Channel)
#  -> kill($reason)		- zabija usera.    
##  -> whois(

Ekg2::Irc::Channel::User
#    -> kick($reason);
#    -> 


#####################################################################################################################################

