Opiniowanie pakietow -- baza danych i nie tylko
Paweł Kołodziej
pawelk w pld.org.pl
Sob, 3 Lut 2001, 22:45:43 CET
Dnia Sat, Feb 03, 2001 at 05:12:47PM +0100, Paweł Kołodziej napisał(a):
[qrna, jak to głupio wygląda -- jakbym romiawiał z samym sobą ;)]
> Fajnie. Kiedy otrzyamsz ten list prawdopodobnie będziesz już kończył, i
> rozglądał się za kolejnym zajęciem. Ja w między czasie przemyślałem sobie
> sprawe serwera do opioniowania pakietów. Wyszło mi, że jadnak zapsianie
> tego w <werble> C </werble> było by dość dobrym rozwiązanie. Dokładnie
> chodzi mi o część odbierającą raporty od użytkownika, wysyłającą mu
> "osobiste" statystiki. Powód: kompatybilność z wuchem. Przecież pisanie
> tego w czym innym spowodowało by koniecznośc dwukrotnego tworzenia kodu
> obsługi ankiet i sieci. Dalej masz ochotę to napisać ?
Jeśli tak, to daj znać. Może zrobił byś obsługe sieci (szeroko rozumianej)?
Dokladnie IMHO przydało by się takie cos:
serwerek pracuje sobie caly czas, jak przychodzi zapytanie to sie forkuje
(niby mozna to zrobic na gniazdkach nieblokujacych, ale na poczatek to
chyba przesada) i obsługuje to połaczenie. Ma dostępne (to ja moge już
załatwić) takie funkcje:
/** rejestruje urzytkoniwka na serwerze, zwraca przydzielony mu numer */
int registerUser(char *nick,
char *surname,char *firstname,
char *email,
int experienceLevel);
/** wrzuca do bazy raport o pakiecie 'package'. zwraca 0 -- ok, != jakis
blad */
int addReport(int userNo,TpkgDescribe *package,
int enviromentCount,TpkgDescribe *enviroment,
int gradesCount, Tgrade *grades);
/** dodaje nowa "funkcje" do listy przypisanej do danego pakietu.
Zwraca numer funkcji. */
int addNewFeature(int userNo, char *packageName,char * featureDescription)
/** Przypisuje pakietowi funkcje o numerze 'featrueNo' (tzn. dodaje
* skojazenie ten pakiet ma taka funkcje, a nie tworzy nowej funkcji */
void addFeatureToPackage(int userNo, char *packageName, int fetureNo);
To w sumie na razie wszystko. IMHO nie ma sensu planować mechanizmu
pobierania opini, bo nie wiadomo co z tego wyjdzie i jakie zmiany bedą
jeszcze konieczne.
Teraz potrzebne jest takie miedzymordzie które, udostępni powyższe
funkcje dla wucha, ich "wywołania" prześle przez sieć do serwera, i tam
wywoła funkcje bliźniaczą z odpowiednio odtworzonymi parametrami.
Qrcze. Czuje, że nie wyrażam się jasno.
Widze to tak: wuch wywołuje funkcje miedzymordzia:
registerUser("boss","kowalski","jan","boss w bosi.w.pl",100);
międzymordzie zaminienia to na ładny pakiecik, robi gniazdko do
serwera, wysyła ten pakiecik. Serwer z pakietu odczytuje jaka funkcja i z
jakimi parametrami została wywołana, wywyłuje tą samą funkcję, z tymi
samymi parametrami, tyle że nie pochadzącą z miedzymordzia a z biblioteki
"serwerowej" (którą podejmuje się napisać) i przesyla do klienta wynik.
To jak zrobisz to ? W miare możliwości odpowiedz szybko (z góry dzięki
za wspaniały kod :).
a. i jeszcze te typy:
struct TpkgDescribe{
char *name,
char *EVR;
};
struct Tgrade{
int featureNo,
int grade,
char *comment; /* moze być NULL */
};
--
Paweł Kołodziej
pawelk w pld.org.pl
,,O ile nam wiadomo, komputer nigdy nie popełnił niewykrytego błędu.''
-- Weisert
Więcej informacji o liście dyskusyjnej pld-installer