eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingJakie są dobre zasady programowania programów opartych na wtyczkach?Jakie są dobre zasady programowania programów opartych na wtyczkach?
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!fu-berlin.de!uni-berlin.de!individual.n
    et!not-for-mail
    From: Jacek Marcin Jaworski <j...@a...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: <l...@m...individual.net>
    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: news-archive.icm.edu.pl pl.comp.programming:215990 pl.comp.lang.c:308883
    [ ukryj nagłówki ]

    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

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

  • 03.02.24 17:23 heby

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: