You can subscribe to this list here.
| 2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(3) |
Aug
(3) |
Sep
(5) |
Oct
(12) |
Nov
(11) |
Dec
(12) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2002 |
Jan
(7) |
Feb
(4) |
Mar
(5) |
Apr
(3) |
May
(4) |
Jun
|
Jul
(19) |
Aug
(20) |
Sep
(43) |
Oct
(91) |
Nov
(195) |
Dec
(123) |
| 2003 |
Jan
(67) |
Feb
(140) |
Mar
(151) |
Apr
(110) |
May
(146) |
Jun
(141) |
Jul
(163) |
Aug
(228) |
Sep
(91) |
Oct
(129) |
Nov
(215) |
Dec
(268) |
| 2004 |
Jan
(210) |
Feb
(204) |
Mar
(161) |
Apr
(16) |
May
(24) |
Jun
(19) |
Jul
(4) |
Aug
|
Sep
(28) |
Oct
(7) |
Nov
|
Dec
(2) |
| 2005 |
Jan
(1) |
Feb
(1) |
Mar
(1) |
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
(4) |
Sep
|
Oct
|
Nov
|
Dec
|
| 2007 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
|
1
|
2
|
3
|
|
4
|
5
|
6
(1) |
7
(1) |
8
|
9
|
10
|
|
11
|
12
(5) |
13
(1) |
14
(1) |
15
|
16
|
17
|
|
18
|
19
(2) |
20
|
21
|
22
|
23
|
24
|
|
25
|
26
|
27
|
28
|
29
|
30
|
|
|
From: Marek V. <MVO...@Ba...> - 2001-11-19 13:04:22
|
* This message contains the file 'CORE.ZIP', which has been
* uuencoded. If you are using Pegasus Mail, then you can use
* the browser's eXtract function to lift the original contents
* out to a file, otherwise you will have to extract the message
* and uudecode it manually.
begin 660 CORE.ZIP
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
MKP?^?V&41/=XFM0;N\VPZ8N)SPC,NA'/^&_,<3V8I$?)S4%;K.1J%M9Z&
M`*&KP?*(J2H=8"K=1OE#*3&>((J7G$B-X_:HM57&58A:?_3TVQBUQ:0-^]:5
MHX"RQ$3:;%37/#*_A.MG&,%'!^UXG,'Y.0QX?31294%U30+CE>GT"8.C8!GI
M*E,.Z_K8+;`TE",.AT?S9C^9$&IG;-(*G$0G;5N?==Z/`YJG<@C$FP^7C`<3
M8F"KN77*X5EDH<3:Q8K8:/0#G3RZ6S#(@?;Y4L1*4X@T<BU+%TJ^<IJJ/Q-%
ML:-"40M%T6AJDDN><4'DN2J7Q-#(M=[2>]&U7C%U77Y175,1.B.R.RY<AA)6
MZ%\K61*=D7]!0_2@+SV+$R*/.&*F=%5?"C-'MACEHN!T9@&?2[^)O;LBZ'+^
MO)=;=('U$$$H0\0>$="NHUH*VX'TV`\A)8S?MAIB1!%$1.E91\&]T=X_,O5.
MWQXKO9<Z9-=?/WTB)Z,JA%0!M\AQLEC`/7HL8!CJM=0<$0P.%A.YUF)O)ALH
MRW0>IVJ;5N;-"9B+6:`S;^`ME/(^12`JO+F*X9[T(\*.*<SB`EF8-[/>(8\L
M&/UK1^WW2*,).2!EA&R"4Q?*6'>(S<5!-E8B'.0'^.Q](1_*):MH)^9M:AL7
M8WTV/I-A&VB.'9XC(7ST\=_8AN*Q1`=9*5%'RIQ^UE!R<,=*S6(A1:C1155F
M5.S$"!,K".+,\6E^C^B38'$WL2T.!9G`$FA3+]<(O9T2[*7=5JL<%N.!](-)
MXXV'YAWY`(.@UU3$ZTT5$(K^>37;VJ/2,_'&L[.SYJ,9"#Z2<.$K&WR8H9U6
MF%VSZS%HSTHOQT,*#M@Q6#?-!K0=39U]`\W2?+C&,SO`<A?0IX'@U'.UO)J"
M([5]EIM!S/8RC"YX.(KXZ`8^N3B#K6_=2?@.A*;+.=EDA&2&C!,*>8B--
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
MF4J*XK32-.V_+VU#H:P^M%;R./'[Q@.EXS27!$&<Z43MM@4:A2*EV3[H]P:G
MW05;J;+9/NKW^KV<E=Z!Q@/Q$6."5V16Q7R^S@R%)5!D2D(R'/5[X.*G_KUH
M2SN#Z;.U1HG<TD)I.X$-)9BGMEE=(5,$.`$Q@;@ZK2Q&6,)]6.?"Y0\^CUW^
M&)X9A+';'U]4'HV[)AE"<",_=3`!G!E".1S!R)?]-AT?4.EAF;4;7U?&?'A?
M*AEDH`X5=C&K+$L)M6=$)[/)<O?U",A.YMUYXISVP9YYHX0,Z9@6;3IR>X5G
MVI7M8&L:=Y1S8Z?8DFD>WEFE:HW.K>`N:(P2G:RHM99L@BG3F9>=O*QT7QW-
MG2A7(DJT)FNV<,_<%CZ?8QP3<U.[%=_;<CS/9US63R/D;;WNQF"\A`#WV5<0
M7L\+5_/"TTBXWK2?&-^O-1U=)$K+R_Z?K+DMNS]9U,C]=X<U[5O\7/X!4$L!
M`A0`%``"``@`E(IQ*YJ*4[%L````N0````T````````````@`````````&%T
M=')I8G5T92YC<'!02P$"%``4``(`"`#9!7,K:D\L;)D,``"33P``"P``````
M`````"````"7````871T<FEB=71E+FA02P$"%``4``(`"`!\H7$K8^ZA(RL!
M```Z`@``"````````````"````!9#0``0T]-34].+DA02P$"%``4``(`"``F
M"7,KCS3/-P,%```9%```$P```````````"````"J#@``8V]N9FEG7W9A<FEA
M8FQE+F-P<%!+`0(4`!0``@`(`!L&<RL:RE]1HP4``!$2```1````````````
M(````-X3``!C;VYF:6=?=F%R:6%B;&4N:%!+`0(4`!0``@`(`.I]<2NW9D^O
MI0$``((#```+````````````(````+`9``!E>&-E<'1I;VXN:%!+`0(4`!0`
M`@`(`.I]<2O;'4GTD0(``)X&```,````````````(````'X;``!L;V=M97-S
M86=E+FA02P$"%``4``(`"`""N'(K1P<)KR,!```I`@``#0```````````"``
M```Y'@``<F5F97)E;F-E+F-P<%!+`0(4`!0``@`(`-2X<BOZ+L4^.@D``+<C
M```+````````````(````(<?``!R969E<F5N8V4N:%!+`0(4`!0``@`(`-D$
M<RO*D["5/`0``/L0```+````````````(````.HH``!24U1224Y'+D-04%!+
M`0(4`!0``@`(`+,(<RMT]8\VC@@``&4@```)````````````(````$\M``!2
M<W1R:6YG+FA02P$"%``4``(`"`!!?G$KL,;'U3X!``#<`P``"@``````````
M`"`````$-@``4U1!5%53+D-04%!+`0(4`!0``@`(`.I]<2NGO4S)K@4```02
M```(````````````(````&HW``!35$%455,N2%!+`0(4`!0``@`(`-8(<RN!
MC7-\AP$``)T#```(````````````(````#X]``!415-4+D-04%!+!08`````
.#@`.`"4#``#K/@``````
`
end
|
|
From: Marek V. <MVO...@Ba...> - 2001-11-19 13:04:17
|
Cau, tady posilam naky upravy do core. Doufam, ze se to Stepanovi podari nejak rozumne namergovat s tim, co psal on. Dal uz by se asi melo psat primo pres CVS. Otazka do plena: Kdyz uz vime, ze C++ runtime a STLPort je dll-safe, ma smysl snazit se za kazdou cenu skryvat implementaci (zejmena ty trivialni implementace operatoru v ManagedAttribute asi psat mimo tridu neni moc sikovny). -- Markoid |
|
From: Marek V. <MVO...@Ba...> - 2001-11-14 16:13:47
|
Rad bych doresil nektere veci, abychom se k nim priste
nemuseli vracet. Pripominky by se mely vyresit skrz sourceforge.
* poznamky k interfacum (core/exportable)
asi opravdu nestoji za to, snazit se psat specialni
interfacy, ve kterych bude videt jen to, co smi skript videt
a pouzit; napriklad trida Property jiste bude obsahovat
spoustu private metod pro server a presto ji chceme ve skriptu
pouzit (jako datovou polozku ve ScriptObject) a nechceme
s ni ve skriptu pracovat jako v jave pres pointer
na (omezeny) interface (coz vyzaduje to, ze property by musela
byt vzdycky alokovana dynamicky na heapu a ne jako soucast
ScriptObject)
v zasade lze vsak vzdy oddelit interface od implementace
- pro tridy:
deklaraci tridy v jednom souboru (interface v .h)
inline funkce v dalsim souboru (inline implementace v .h)
zbytek v dalsim souboru (implementace v .cpp)
- pro template tridy to jde dokonce taky:
// interface.h
template <class T>
class MyTemplate
{
MyTemplate();
};
// inline_implementation.h, tohle funguje:
template <class T>
MyTemplate::MyTemplate()
{
}
// dokonce pro predem zname hodnoty T lze napsat
// implementace do .cpp
MyTemplate<int>::MyTemplate()
{
}
jak by se teda mohlo napsat common:
- uplne normalne, jen vyhodit inline funkce a implementace
metod ze sablon do pro skript neviditelnych .h;
interfacy oznacit jako exportovane
-> skript pak bude implementaci importovat ze server.dll;
- nahradit RString novou strukturou String, ktera se nebude
ve svych interfacech odkazovat na STL, ale na ostatni
veci klidne ano (pr. Reference<StringBody>)
- jejich interfacy pak budou muset byt tez v common
sice je pravda, ze takhle se naincludujou i veci, ktere
by skript nemel videt (pr. Reference<>), ale kdyby je
chtel pouzit, tak protoze k nim nikde nesezene implementaci
(ta nebude exportovana a inline funkce skript nebude mit k
dispozici), neslinkuje se
obcas by nebylo na skodu, napsat trivialni implementace nekterych
metod i do interface - kvuli efektivite;
ovsem jen tech metod, ktere nepracuji s pameti
(musi se totiz zajistit, ze pamet vzdy uvolnuje ten (to .dll),
ktere ji alokovalo)
tedy:
/core/exportable/*:
popis exportovanych interfacu, ktere jsou includovatelne do
skriptu; zadna implementace
/core/*:
implementace /core/exportable/* a dalsich objektu, ktere v
exportable vubec nebyly popsany
dal uz bych ty interfacy neresil
* nasleduje ukazka nekterych vyjimek z JDK; tech obecnych je tam
celkem dost malo (navic rada se tyka JVM a dynamickeho linkovani
classu apod.), vetsina je "aplikacnich" (GUI, zvuky,
komprese, ..., SQL, CORBA)
Exception.RuntimeException:
Exception.RuntimeException.ArithmeticException
Exception.RuntimeException.ArrayStoreException
Exception.RuntimeException.ClassCastException
Exception.RuntimeException.IllegalArgumentException
Exception.RuntimeException.IllegalStateException
Exception.RuntimeException.IndexOutOfBoundsException
Exception.RuntimeException.NullPointerException
Exception.RuntimeException.SecurityException
Exception.RuntimeException.SystemException
Exception.IOException:
Exception.IOException.ProtocolException
Exception.IOException.SocketException
-- Markoid
|
|
From: Marek V. <mar...@st...> - 2001-11-13 11:43:21
|
poznamky k novemu core: definice maker: STATUS_DEBUG(p, f) nemelo by byt STATUS_DEBUG( p, f )? status: "Don't use it to return values from functions and methods or ..." jak chces potom treba resit ten priklad s prevodem stringu na cislo? if (strol(string, &long) == STATUS_CONVERSION_ERROR) ... layout: s timhle uz jsem velmi spokojen a na dnesni schuzce uz bych to neresil, komentare & dokumentace jsou napsany pekne architektura systemu & zdrojakova hierarchie: a) o.k. - core bude includovat common cast z lib, pricemz moduly z lib smi includovat jen common cast a ostatni casti z lib, ale nic z core; v common casti budou popsany vsechny builtiny a interfacy, ktere kdy lib muze potrebovat; implementace v core b) common cast bude v core/exportable a lib bude tohle moct includovat, implementace common interfacu pak bude prirozene v core a core nebude includovat nic z lib jak udelat ten common? napr. interface na vsechny primitivnich typy a unicode-string (primitivni typ pouzivany skripty / lib) musi byt tam a bez STL (kompletne vlastni interface, ktery muze ale nemusi kopirovat STL) - nemel by tento string nahradit RString? (pak je zas lepsi moznost b)) buildovaci systemy: ten autoconf je asi OS specific ne? jsem spise pro neco na styl Patrique's mkmk (nebo primo pouzit to) -- Markoid |
|
From: Stepan V. <sv...@vo...> - 2001-11-12 22:28:42
|
Tak tady je ten attachement :-) Pozn.: Nektere layout zmeny z duvodu: -aby to doxygen lepe prechroustal -aby to kdevelop lepe prechroustal -- Stepan |
|
From: Stepan V. <sv...@vo...> - 2001-11-12 22:27:07
|
Nazdar,
Tak jsem doufal, ze neco pres vikend nakoduju, ale nejako se tak nestalo.
Jenom jsem prepracoval Markoidovo core podle me predstavy, vcetne formatovani
a doxygen dokumentace.
Par zmen v layoutu a coding style:
Komprimovanejsi hlavicky funkci. Dovoleno fce() (misto toho (void) na tri
radky).
Vsude mene prazdnych radek - doxygen dokumentace + odsazovani tel funkci imho
jejich zacatky zdurazni dostatecne.
Vsude zruseno struct - vse co dedi/se dedi/ma metody je class.
Zruseno namespace XXX::YYY {, misto toho namespace XXX { namespace YYY {.
Dokumentace - vetami s teckou na konci. Nevynechavat prazdne radky (i kdyz
nekde to tam porad tak je). Hlavni je, aby to vypadalo dobre po prohnani
doxygenem.
+urcite neco navic...
Ideove zmeny:
Status je maly integer (ve tride) obsahujici cosi jako "stav", ale neni urcen
k standardnim vraceni chyb z funkci - to podle me nechceme vubec, od toho
mame vyjimky. Vypada nasledovne:
-type: typ stavu - od DEBUG po ERROR
-priority: priorita stavu - u ERROR by vzdy mela byt HIGHEST, malo prioritni
chyby nemame. U DEBUG ma smysl vyuzit celou skalu plnych 4 priorit,
PRIORITY_LOWEST debugovaci hlasky mohou byt chrleny neustale nechutnou
rychlosti.
-facility: kdo za tento stav muze. Tezko rict, jak moc core jeste rozsekat na
ruzne facility (jako event queue manager apod.).
-code: kod chyby. Ma smysl jenom pro typ TYPE_ERROR, jinde se ignoruje,
protoze warningu apod. muze byt moc ruznych a dost u zavisi na tom, kdo je
vlastne hodi. Typy erroru mohou byt OUT_OF_MEMORY, DISK_FULL,
DISK_ACCESS_DENIED apod.
Kazdemu kodu bude odpovidat nejaka vyjimka. Ve vlastnim jadre ruznych kodu
asi tak moc nebude a vetsinou budou hodne fatalni. Chyby jako "predan NULL"
budou vetsinou internimi zalezitostmi a tedy reseny assertem. Takze jedine
resitelne chyby v budou asi CHECKSUM_ERROR apod. Pokud ale budou builtiny
jadra hazet vyjimky skriptu, muze to byt zajimavejsi (builtin hodi vyjimku;
kdyz ji skript odchyti a nejak si to zaridi, ok.; jinak projde zpet do jadra,
ktere to musi povazovat za fatal error ve skriptu a asi ho odstrelit).
Status umi prevest ten svuj int na retezec (zatim teda ne), jako parametr ma
custom string. Tedy napr.
ERROR, HIGHEST, NETWORK, PRESTRIHLI_NAM_DRAT + "ouvej"
->"Network error: Prestrihli nam drat (ouvej)"
DEBUG, LOWER, NETWORK, NONE + "Ztratovost paketu za posledni minutu je 2%"
->"Network debug: Ztratovost..."
Idea je asi takova, ze u ERROR se bude pouzivat code a u ostatnich
uzivatelsky retezec.
LogMessage je dvojice Status+RString, tj. status s uzivatelskou zpravou. Nic
zajimaveho.
Globalni logger zatim neni napsan. Bude to magicka krabicka akceptujici
LogMessage a provadejici s ni ruzne veci. U loggeru se daji konfigurovat dve
veci:
-destinations: Kdokoliv se muze zaregistrovat jako LogDestination. Pokud
zprava projde odpovidajicimi filtery, dostane se do LogDestination, kde se
zpracuje (napr. print na konzoli, poslani mailu apod.)
-filters: Pro kazdou facility tabulka podminek na status + destination, kam
se to pri splneni ma poslat. Podminky zhruba tvaru:
-type: * nebo presne typ
-priority: <=, =, >=
-code, message: nelze podle nich filtrovat
Exception dedi LogMessage a pod ni lezi cely (zatim neexistujici) strom
vyjimek. Ten se musi co nejdriv vymyslet. Pri konstrukci se hned automaticky
posle do loggeru.
Spousta kecu a dohromady nic noveho.
-- Stepan
|
|
From: Stepan V. <sv...@vo...> - 2001-11-12 22:26:59
|
Nazdar,
Stejne to pred schuzkou nikdo uz neprecte, takze je to jedno, ale:
Nasleduje random soupis veci, ktere mi tak preletly pres mysl. Neboli
jakes-takes todo, ne ale nutne na utery.
Btw. napadlo me, ze bych mohl vyhlasit takovy pekny rozkaz: kazdy si bude
povinen delat poznamky o vecech, ktere mu nejsou jasne / prijde mu, ze by se
nejak mely resit a tak. Ne poznamky ve smyslu "nekolikastrankovy dokument jak
se to teda udela" ale spis bordel jako tedka bude nasledovat. Nebo jako si
boovie nosi na schuz(u|y). Smazat se to smi, az kdyz se to doresi. Nejlepsi
by bylo, kdyby to bylo nejak massivne pristupne. Tak a ted me ukamenujte.
Muj massiv poznamnicek nyni obsahuje zhruba toto:
Globalni hierarchie ruznych typu serveru/procesu (tj. sv + klienti)
-Jak tomu rikat? Myslim dohromady jednotlivym procesum / programum. Procesy
ne, programy/aplikace je taky debilni.
-Pr. nekterych typu: game, master, login, globarchive, objarchive, klient.
-Jake tam teda vlastne budou, kdo s kym, kdy, jak a proc bude komunikovat.
-Co procesy ruznych typu sdileji (ve smyslu sdrojaku).
-Komunikacni protokoly mezi servery/klienty. Jake budou? Coz takhle mit to
vsechno na spolecnem core "posilani objektu-zprav", sitovani se nepise
zbytecne milionkrat znovu. Je to unosne? Ma to jiste dalsi vyhody - update
na klienta ale i globalnich a dulezito-objektovych archivu je vlastne
vsechno jenom replikace a tak. Zase mi ale neni jasne, jak by se ve
"skriptu" psalo vzpamatovavani se po padu.
Zdrojakova hierarchie. Vychazi z process hierarchie. Zatim to vidim na:
-core: sprava objektu, replikace, predavani, sitovani
-lib(jine jmeno): "skript" (vymyslet jine jmeno)
-common: veci spolecne pro servery i klienty
-server: server-only "skript"
-game: game server
-world: oblasti ve svete, logika predavani a replikaci, balancovani
zateze, fyzika a tak
-jmeno_demo_hry: logika hry
-master: master server (zajima ho vubec neco o reprezentaci sveta nebo
logice hry? nejaky priklad?)
-...ostatni typy serveru
-client: client-only "skript"
-world: renderer
-.... (ui, sound, client-side logika a tak)
Samozrejme jsou tu problemy spojene s hierarchii procesu. Kde treba budou
zdrojaky zabyvajici se restartem po padu a syncanim mezi servery?
Jeste ke zdrojaku: psat include i s cestou? Tedy napr.
#include "../../common/list.h"
nebo to prekladat s "-I ../../common", prip. obdobnymi parametry v jinych
prekladacich?
Makefiles. Projecty v MSVC apod. jsou sice prima (no zas tak moc prima mi to
v MSVC zrovna neprijde, ale asi jsem to jenom nepochopil), ale je to dost
malo flexibilni. U vetsiho projektu zacinaj bejt tydle klikaci projekty hodne
omezujici, zvlaste chceme-li tam mit nejake slozite zavislosti typu "nektere
soubory se generuji ruznymi preprocesory" a tak. Navic je dost trapne
sepisovat parstrankovou dokumentaci jak vyrobit project v MSVC, aby se to
vubec dalo prelozit. Tj. chtelo by to napsat si nejaky buildovaci system (ala
Patrikuv mkmk, mel by ho znat Boovie i Markoid, nebo neco jako
automake/autoconf). Musime se ale dohodnout, co vsechno by to melo
podporovat, jak by to melo fungovat, jak udelat podporu ruznych kombinaci
prekladac + target system + options (alespon debug/release, ale ani to
vetsinou nestaci).
Pokud vim, melo by i v MSVC jit pouzit project jenom jako mnozinu zdrojaku +
config editoru a vnutit mu externi makefiles, takze se nemusite bat, ze o
sveho milacka prijdete.
Sonda rozdeleni prace. Uz bychom se nad tim meli nejako rozmyslet. Takze:
Kdo ma zkusenosti (tj. fakt tomu rozumi) s: [prip. kdo se chce naucit:]
-sitovani obecne, network security, SSL apod.
-OpenGL, grafice obecne
-zvuku (ten ale asi nebudeme brat radsi moc vazne)
-psani her obecne
[hmm, chtelo by to ty mnoziny nejak rozkouskovat]
Jinak napada nekoho vubec jak napsat opensource client tak, aby se omezilo
cheatovani na minimum? Closed source client-side scripts? FuJ, to bych se bal
pustit.
Exception hierarchy.
Doxygen notes:
Jak psat treba fixme. Jak to napsat primo do zdrojaku tak, aby se do dostalo
do vysledneho html (ted to pisu do dokumentace k hlavicce metody, to je ale
celkem pruda). Jak psat fixme kdyz to tam neni, todo? bug?
[pozn.: proc vubec do doxygenu? kdyz to strasi ve vysledne dokumentaci, je
vic duvodu to opravdu fixnout, jinak se na to tak nejak pozapomene (nechtejte
vedet, co mi ted vypsalo "find -type f | xargs grep FIXME" v Quarku.
Coding style:
-init, close, clear nebo podobne metody
-vsechny objekty reinit-safe
-NULL vs 0
Nazvoslovi:
pocet = mnozne cislo (zadne _count)
pole = jednotne cislo
Pr.:
int vertices;
Vector vertex[];
Typy:
Zavest nejake ty int32, int64 apod? Jak pojmenovat?
Jestli si myslite, ze to melo prijit do crap, nebo jeste lepe trash, mozna
mate pravdu... Ale co ja s tim ted.
-- Stepan
|
|
From: Marek V. <MVO...@Ba...> - 2001-11-12 15:58:36
|
Na pristi schuzce bych rad projednal:
1) layout - mam zasadni vyhrady k roztahovani popisu inline funkci,
na obrazovce je pak vident nejvyse 5 hlavicek, coz neni
zrovna prijemne
2) architektura systemu:
jadro
common
script
Common cast musi obsahovat popisy interfacu mezi jadrem
a scriptem tak, aby je slo bezpecne includovat jak do
serveru tak, do scriptu
bezpecnosti se mysli to, ze tyto interfacy se nesmi odkazovat
na STL, ale jen na nase vyexportovane objekty nebo builtiny
(maji se exportovat vubec objekty nebo builtiny?);
co vsechno by melo byt v common casti?
- vyjimky? (sprava chyb by mela byt ve scriptu
jinak a vyjimky by se nemely prohazovat ze scriptu do
serveru - minimalne tak, ze se hodi vyjimka ve skriptu
a pokud je skriptem neodchycena, zavola se builtin
informujici server
)
- status a logovani, jak?
- nejaky multi-lingual string (pro zapisy do logu) a jako
property - vnitrne muze byt implementovan
pomoci STL
- jake maji vubec byt podporovany primitivni typy
(replikovatelne)
melo by to byt tez pole?
(napr. primitivni typy v Jave jsou ty std z C a pole)
- co je v common se smi odkazovat jen na jine interfacy
z common
(napr. String nemuze mit ve svem interfacu napsano,
ze ma atribut Reference<Type>, protoze to je zalezitost
implementace a skript ref.h vubec nema co includovat);
** implementace na serveru by se mela pred skriptem totalne
skryt **
priklady, jak skryt serverovskou implementaci v iface.h
|
|
From: Marek V. <MVO...@Ba...> - 2001-11-12 15:58:31
|
* This message contains the file 'IFACE.H', which has been
* uuencoded. If you are using Pegasus Mail, then you can use
* the browser's eXtract function to lift the original contents
* out to a file, otherwise you will have to extract the message
* and uudecode it manually.
begin 660 IFACE.H
M+R\@=B!C;VUM;VX@:F4@:6YT97)F86-E#0H-"F-L87-S(%A0=6)L:6,-"@E[
M#0H)=F]I9"!F*"D[#0H)=F]I9"!G*"D[#0H)?3L-"@T*+R\@=B!S97)V97(-
M"@T*6#HZ9B@I#0H)>PT*"7-T871I8U]C87-T/%@@*CXH('1H:7,@*2T^9B@I
M.PT*"7T-"@T*8VQA<W,@6"`Z('!U8FQI8R!84'5B;&EC('L-"@T*#0H)+R\@
M<VMR>71E('9E8VDL(&MT97)E(&YE;6$@<VMR:7!T('9I9&5T"0T*#0H)+R\@
M<V5R=F5R+"!K9'EZ(&1A=F$@<VMR:7!T=2!K(&1I<W!O>FEC:2!8+"!T86L@
M;74@;6ES=&\@=&]H;R!D82!84'5B;&EC.PT*"2\O('!O:W5D('-K<FEP="!8
M4'5B;&EC('!O=7II=F$@:F5N('!R;R!K;VUU;FEK86-I('-E('-E<G9E<F5M
M(&IE('1O(&\N:RX-"@T*?0T*#0HO+R!K9'EB>2!S:W)I<'0@<&]T<F5B;W9A
M;"!Z(%A0=6)L:6,@9&5D:70L('5D96QA('1O:&QE.@T*+R\@*&MD>2!B>2!T
M;R!A;&4@<&]T<F5B;W9A;#\@<VYA9"!J96YO;2!P<F\@=&5N(%-C<FEP=$]B
M:F5C="D-"B\O('8@8V]M;6]N.@T*#0IC;&%S<R!38W)I<'1/8FIE8W10=6)L
M:6,-"@E[#0H)<&]P:7,@:F5N(&EN=&5R9F%C92`K('9E8VDL(&MT97)E(&)Y
M(&UE;"!S:W)I<'0@=FED970-"@EP<FEV871E.@T*"6-L87-S(%-C<FEP=$]B
M:F5C=%-E<G9E<B`J('@[#0H)?0T*#0HO+R!V('-E<G9E<G4-"@T*8VQA<W,@
M4V-R:7!T3V)J96-T4V5R=F5R#0H)>PT*"6EM<&QE;65N=&%C92!C:&]V86YI
M#0H)4V-R:7!T3V)J96-T4'5B;&EC("H@>#L-"@DO+R!P;VEN=&5R>2!N82!C
M;&%S<R!F86-T;W)Y+"!A=&0N#0H)?0T*#0HO+R!P<F\@:V%Z9&]U(&EN<W1A
M;F-I(%-C<FEP=$]B:F5C="!S97)V97(@=GET=F]R:2`R(&]B:F5K='D@*'!U
M8FQI8R!S97)V97(L#0HO+R!K=&5R92!P<F]P;VII*0T*#0HO+R!T>2!P;VEN
M=&5R>2!N82!P<FEB=7IN92!O8FIE:W1Y(&)Y(&UO>FYA(&IE<W1E('-L;R!S
1:W)Y="!D961I8VYO<W1I#0IO
`
end
|
|
From: Stepan V. <sv...@vo...> - 2001-11-07 13:15:57
|
Zdar lide, Tak jsem preformatoval Markoiduv vytvor podle zatim-castecne dohodnuteho layoutu. Plus tam jsou nejake moje otravne reci. Co se obsahu tyce, nic moc jsem nezmenil. Tak to okomentujte. Shrnute obsahove pripominky: -Reference counted objects ok. -Reference counted strings nevim (ten zapisovaci operator[] se mi porad nelibi). Zatim nevim, jak moc je to cele nutne. -Status & Exception. Mel by se lepe dohodnout obsah tridy Status, co od toho vlastne pozadujeme apod. K logovani: Prijde mi, ze do logovace by mely proudit objekty obsahujici: -type: typ zpravy (INFO, DEBUG, WARNING, ERROR) -priority: dulezitost (treba 1 nejvic, 3 nejmin; nemusi mit obrovsky rozsah) -source: kdo za to muze (sitovani, sound system, gfx system, core) -code: cislo takove, ze trojice (type,source,code) hlasku jednoznacne (*) identifikuje [zamerne bez priority]. Mozna by bylo lepsi jenom dvojic (source,code) -message: libovolny string Filtrovani by se delalo zhruba takhle: -pro kazdout trojici (source,type,destination) maximalni priority, kterou chci do destination propoustet (tj. 0=nic, +inf=vsechno) [bez ohledu na implementaci takovedle tabulky; kdyz by takovych trojic bylo neunosne mnoho, muze se to uchovavat nejak chytrejc] -destination je treba konzole, log soubor, e-mail atd. Pozn.: u INFO a DEBUG maji ruzne priority smysl, u WARNING jeste taky (ale asi staci 2 az 3), ERROR je asi proste ERROR (napada snad nekoho malo prioiritni ERROR, ktery se nema logovat?). Odpovidajicim zpusobem by se musel zmeni Status. -- Stepan |
|
From: Marek V. <mar...@st...> - 2001-11-06 10:33:16
|
Cau, tady posilam zaklad massiv core (nezavisly na tom, o cem se bavime na schuzkach): jedna se o jednotny zpusob vraceni chyb (tvar vyjimek) a jejich logovani, reference-counted objects a reference-counted string trivialne vybudovany nad std::string s vyuzitim tech reference-counted objects. Kdybyste se treba na to koukli a vecer pak k tomu prednesli nejake poznamky, navrhy, vyhrady, budu jenom rad - aspon bude co projednavat. -- Markoid |