Groups | Search | Server Info | Keyboard shortcuts | Login | Register


Groups > pl.comp.programming > #34990

Jakie są dobre zasady programowania programów opartych na wtyczkach?

Path csiph.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From Jacek Marcin Jaworski <jaworski1978@adres.pl>
Newsgroups pl.comp.programming, pl.comp.lang.c
Subject Jakie są dobre zasady programowania programów opartych na wtyczkach?
Followup-To pl.comp.programming
Date Sat, 3 Feb 2024 05:51:13 +0100
Lines 42
Message-ID <l25v21F7db6U1@mid.individual.net> (permalink)
Mime-Version 1.0
Content-Type text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding 8bit
X-Trace individual.net 97PiEf9CG18p+Iadf/6BJgv8cx4r5804RJs5WAiPE5hoDlfVKm
Cancel-Lock sha1:t8VLZhhsozt1wDkWxeKvmXP85HA= sha256:V8lwZ+MwU7y5X0EDXrAhsbXcuQrDk+9VbIAjNhpJouc=
User-Agent Mozilla Thunderbird
Content-Language pl-PL, en-GB
Xref csiph.com pl.comp.programming:34990 pl.comp.lang.c:28773

Cross-posted to 2 groups.

Followups directed to: pl.comp.programming

Show key headers only | View raw


Dzień dobry! (Mimo, że do świtu jeszcze prawie 2,5godz.)

Problem jaki teraz chcę poruszyć to programowanie w C++ programów 
opartych o wtyczki. Tylko trik polega na tym, że są to programy 
zdarzeniowe czyli używające biblioteki takiej jak Qt.

Model programu mam prosty i logiczny:
Logiki prog.->Narzędzia prog.->Bibl. własne->Bibl. obce

To co dla mnie jest kluczowe, to możliwość rozszerzania logik o wtyczki.
Problem jaki tu występuje, to hazard wynikający z przechodzenia zdarzeń 
przez pętlę zdarzeń, która ma to do siebie że nie gwarantuje kiedy 
zdarzenie będzie obsłużone. Dlatego wygodny mechanizm sygnał->slot w 
przypadku wtyczek odpada (bo program staje się nieprzewidywalny).

W klasycznym ujęciu problem jest rozwiązywany banalnie: przez tablice 
wsk. do f. (np. "tablice przerwań programowych" w M$ DOS).
Tylko, że w C++ nie mamy dostępu do tablic f. wirtualnych.

Jednak można sobie zdefiniować tablice f. C jako f. zwrotnych z góry 
określoną sygnaturą i je wywoływać z wtyczek. Wadą jest to, że styk 
miedzy prog. a wtyczką oparty jest nie na obiektach tylko na czystych f. 
C (co oznacza konieczność użycia globalnych zm. we wtyczkach).
W tym przypadku do każdej logiki należało by dodać po jednej tablicy 
tych f. C na każde przewidziane działanie wtyczek.

Z drugiej strony są szablony:
Można sobie wyobrazić tablicę obiektów pewnego szablonu (sygnatury f.). 
I te obiekty mogą mieć albo wsk. do f. C albo wsk. do o. i f. (zgodnej z 
sygnaturą). Tu należy zadbać jedynie o prawidłowe sygnatury f. i 
operator porównania który jest konieczny dla f. tablicy removeAll().
To rozwiązanie jest dużo bardziej odlotowe od prostych tablic z f. C, 
ale ma tą zaletę, że było by obiektowo i bez zm. globalnych we wtyczkach.

Pyt. są takie:
1. Czy macie jakieś inne pomysły na wywołania zwrotne z prog. do wtyczek?
2. Jak wasze prawdziwe prog. korzystają z wtyczek?
3. Jakbyście pisali nowy prog. oparty o wtyczki to które rozw. byście 
wybrali?

Miłej sob. i nie.!
Jacek Marcin Jaworski

Back to pl.comp.programming | Previous | NextNext in thread | Find similar


Thread

Jakie są dobre zasady programowania programów opartych na wtyczkach? Jacek Marcin Jaworski <jaworski1978@adres.pl> - 2024-02-03 05:51 +0100
  Re: Jakie są dobre zasady programowania programów opartych na wtyczkach? heby <heby@poczta.onet.pl> - 2024-02-03 17:23 +0100

csiph-web