Moin,

On Monday 06 February 2006 21:15, M. Dietrich wrote:
> On Mon, Feb 06, 2006 at 05:53:45PM +0100, Christian Stimming wrote:
[...]
> nein ich mein das log, das auf stderr geschrieben wird. die callbacks
> sind ja tatsaechlich benutzeraktionen. die habe ich natuerlich schon
> aufgefangen.
[...]
AqBanking verwendet den Logging-Mechanismus von Gwenhywfar. Die Arbeitsweise 
ist in etwa so: Fuer jede Bibliothek/jeden Teil kann man eine eigene 
Logdomain anlegen. Das ist sozusagen ein bestimmter Kontext, in dem gelogged 
werden soll (enthaelt Logziel [wie Datei, Konsole] und Loglevel).

Gwenhywfar und AqBanking verwenden zum Beispiel diese Loglevel:
GWEN_LOGDOMAIN (Ausgaben von Gwen)
AQBANKING_LOGDOMAIN (Ausgaben von AqBanking)
AQHBCI_LOGDOMAIN (Ausgaben von AqHBCI)

und so weiter. Ausserdem gibt es noch die Logdomain 0 (wird eigentlich nur in 
Anwendungen verwendet, z.B. in QBankManager).

Man kann nun zu Beginn seiner Anwendung GWEN_Logger_Open() fuer die 
verschiedenen LogDomains aufrufen (AqBanking macht sowas) und dabei 
festlegen, wie und wohin gelogged werden soll.

Man kann aber auch mit GWEN_Logger_SetLogFunction() eine eigene Log-Funktion 
festlegen, die dann z.B. die Logzeilen im Speicher haelt (oder was man auch 
immer damit machen will). Dies ist aber noch nicht gut getestet.

[...]
> > >   das zweite problem ist, dass ich nicht gefunden habe, wie ein
> > >   'job' abgebrochen werden kann. gibt es dazu eine moeglichkeit?
> >
> > Es gibt einen "progress"-callback, der bei gewünschtem Abbruch dann was
> > anderes zurückgibt als sonst. Auch hier haben die python-bindings IMHO
> > schon längst ihren eigenen callback mitgebracht, den du gleich benutzen
> > können müsstest.
[...]

Was meinst Du denn mit "abbrechen"? Waehrend der Job ausgefuehrt wird? Das ist 
nur indirekt moeglich, denn durch Aufruf der Funktion 
AB_Banking_ExecuteQueue() hast Du ja erst mal bis zur Rueckkehr aus der 
Funktion keine Kontrolle (es ist halt eine Funktion).

Der Benutzer kann in Q/KBanking allerdings eine Aktion abbrechen, indem er auf 
den entsprechenden Button im Fortschritts-Fenster klickt. Dies bewirkt, dass 
der naechste Aufruf von AB_Banking_ProgressAdvance() oder einer der anderen 
Progress-Funktionen den Fehlercode AB_ERROR_USER_ABORT zurueckliefert, auf 
den alle Aufrufer mit Abbruch reagieren muessen.

Die Funktion AB_Banking_ProgressAdvance() wird aus der Funktion 
AB_Banking_ExecuteQueue() haeufig aufgerufen (immer dann, wenn auf etwas 
gewartet werden muss, wie zum Beispiel die Antwort des Bankservers etc), so 
dass der Benutzer jeweils zeitnah einen Abbruch erzeugen kann.

Das muss in der API-Doc noch besser dargestellt werden. Grundsaetzlich sollte 
man aber ueberall dort, wo ein Fehlercode zurueckgegeben wird von AqBanking, 
auf diesen speziellen Code getestet werden, da der Wille des Benutzers immer 
Vorrang vor anderen Fehlercodes haben soll.


Gruss
Martin

-- 
"Things are only impossible until they're not"

AqBanking - http://www.aquamaniac.de/aqbanking/
LibChipcard - http://www.libchipcard.de/


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid3432&bid#0486&dat1642
_______________________________________________
Aqbanking-devel mailing list
Aqbanking-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/aqbanking-devel

Reply via email to