🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.objects
Article #4786

Re: Interrupt

#4786
From: A. Hajderek
Date: Thu, 21 Jan 1999 11:05
59 lines
2467 bytes
Agnieszka Solarz wrote in message ...
>Chcialbym zeby funkcja obslugujaca przerwanie ustawiala jakas zmienna np
>
>void interrupt IRQ (...)
>{
>liczba = 5;
>}
>
>przy czym nie chce, zeby zmienna liczba byla obiektem globalnym, tylko
>skladnikiem klasy. Jezeli nawet funkcja IRQ jest funkcja skladowa klasy
>xxx, i zmienna liczba jest rowniez skladniekiem tej klasy, to i tak jest
>ona niewidoczna we wnetrzu tej funkcji. Jest to dla mnie troche
>niezrozumiale... Czy istnieje mozliwosc zrobienia tak, aby funkcja
>interrupt zwracala wartosc ? Czy istnieje jakas inna mozliwosc rozwiazania
>tego problemu ?

Podobnie jest z obsluga sygnalow pod Unixem. Z doswiadczenia moge
powiedziec, ze jedyna znana mi metoda jest zastosowanie publicznej
statycznej funkcji skladowej klasy oraz statycznego wskaznika do
obiektu na rzecz, ktorego ma byc wywolana funkcja obslugi przerwania.
Np.

class X
{
  static X *object;
public:
  static void ProcessInterrupt()
  {
    object->InterruptHandler();
  }

  static void SetActiveObject(X &obj)
  {
     object = &obj;
  }

  void InterruptHandler()
  {
     // kod obslugi przerwania
  }
};


void interrupt IRQ (...)
{
   X::ProcessInterrupt();
}

(Mozna tez ustawic adres proc. obslugi przerwania od razu na
X::ProcessInterrupt).

Oczywiscie nalezy pamietac, ze trzeba "zarejestrowac" obiekt, na rzecz
ktorego
ma byc wywolywana funkcja "InterruptHandler":

SetActiveObject(object)

Pozdrowienia,
Andrzej
Technical Details
Message-ID: <916916883.7112.0.nnrp-02.c2d9616c@news.demon.co.uk>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.icm.edu.pl!uw.edu.pl!newsgate.cistron.nl!het.net!newshub.bart.net!colt.net!dispose.news.demon.net!demon!news.demon.co.uk!demon!melisa.lscope.co.uk!not-for-mail
References: <Pine.LNX.4.04.9901211010030.1492-100000@wanda.ae.krakow.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!news.icm.edu.pl!uw.edu.pl!newsgate.cistron.nl!het.net!newshub.bart.net!colt.net!dispose.news.demon.net!demon!news.demon.co.uk!demon!melisa.lscope.co.uk!not-for-mail
From: "A. Hajderek" <andrew@logicscope.net>
Newsgroups: pl.comp.objects
Subject: Re: Interrupt
Date: Thu, 21 Jan 1999 11:05:36 -0000
Message-ID: <916916883.7112.0.nnrp-02.c2d9616c@news.demon.co.uk>
References: <Pine.LNX.4.04.9901211010030.1492-100000@wanda.ae.krakow.pl>
NNTP-Posting-Host: melisa.lscope.co.uk
X-NNTP-Posting-Host: melisa.lscope.co.uk:194.217.97.108
X-Trace: news.demon.co.uk 916916883 nnrp-02:7112 NO-IDENT melisa.lscope.co.uk:194.217.97.108
X-Complaints-To: abuse@demon.net
X-Newsreader: Microsoft Outlook Express 4.72.2106.4
X-MimeOLE: Produced By Microsoft MimeOLE V4.72.2106.4
Lines: 62
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit