Hauptseite | Klassenhierarchie | Alphabetische Liste | Übersicht | Auflistung der Dateien | Datenstruktur-Elemente | Datei-Elemente

RatingVerlauf Klassenreferenz

#include <zeitverlauf.h>

Aufstellung aller Elemente

Öffentliche Methoden

 RatingVerlauf ()
 ~RatingVerlauf ()
void testRatingVerlauf ()
void RatingLoeschen (const MinSec &Endmoment)
void RatingAnhaengen (const MinSec &Endmoment, const RatingSkala Einschaetzung)
MinSec BisherLetzterMoment ()
IntervallErgebnis RatingAuslesen (const MinSec &Endmoment)
IntervallErgebnis RatingAuslesen (MinSec2Rating::iterator it)
QString printRating (const MinSec &Endmoment)
QString printGesamtenRatingVerlauf (const MinSec &von, const MinSec &bis)
bool liesGesamtenRatingVerlauf (QTextStream &s)
bool speichereGesamtenRatingVerlauf (QTextStream &s, QString &derKlient, QString &derRater)
int verkuerzeUmAufeinanderfolgendGleiche ()

Öffentliche Attribute

MinSec2Rating Sinneinheiten


Beschreibung der Konstruktoren und Destruktoren

RatingVerlauf::RatingVerlauf  ) 
 

Definiert in Zeile 197 der Datei zeitverlauf.cpp.

Benutzt MinSec(), null und Sinneinheiten.

00197                               {
00198         // Konstruktor mit 00:00.000 und null Rating
00199         Sinneinheiten.insert(MinSec2Rating::value_type(MinSec(0,0,0),null));
00200 };

RatingVerlauf::~RatingVerlauf  ) 
 

Definiert in Zeile 202 der Datei zeitverlauf.cpp.

Benutzt Sinneinheiten.

00202                                {
00203         Sinneinheiten.clear();
00204 };


Dokumentation der Elementfunktionen

MinSec RatingVerlauf::BisherLetzterMoment  ) 
 

Definiert in Zeile 215 der Datei zeitverlauf.cpp.

Benutzt Sinneinheiten.

Wird benutzt von VerlaufsAuswertung::GesamtDauer(), LFTVideoDialog::openKonfigDialog(), testRatingVerlauf() und LFTVideoDialog::~LFTVideoDialog().

00215                                          {
00216         MinSec2Rating::iterator it=Sinneinheiten.end();
00217         it--;
00218         return it->first;
00219 }

bool RatingVerlauf::liesGesamtenRatingVerlauf QTextStream &  s  ) 
 

Definiert in Zeile 304 der Datei zeitverlauf.cpp.

Benutzt MinSec::liesVonTextStream(), RatingAnhaengen(), RatingSkala und Sinneinheiten.

Wird benutzt von VerlaufSpeichern::DatenLeseStream().

00304                                                             {
00305 
00306         Sinneinheiten.clear();
00307         
00308         int Einschaetzung;
00309         MinSec Zeitpunkt;
00310         bool OK;
00311         QString Wort; 
00312         QChar c;
00313 
00314 leseSchleife:
00315         while (! s.atEnd()){
00316 
00317                 OK=Zeitpunkt.liesVonTextStream(s);
00318                 if (!OK) {
00319                                         qDebug("Fehler beim Einlesen des Zeitpunktes");
00320                                         return false;
00321                                 }
00322                 s >> c;
00323                 switch (c) {
00324                         case '\t':
00325                                 s >> Wort;
00326                                 Einschaetzung=Wort.toInt(&OK);
00327                                 if (!OK) {
00328                                         qDebug("Fehler beim Umwandeln der Einschaetzung");
00329                                         return false;
00330                                 }
00331                                 RatingAnhaengen(Zeitpunkt, (RatingSkala) Einschaetzung);
00332 
00333                                 s >> c >> Wort     >> c >> Wort >> c >> Wort >> c >> Wort >> c;
00334                                 //  tab  EinschDavor tab   dauer  tab   Klient  tab  Rater  tab
00335                                 
00336                                 if (c!='\n'){  // falls uralte Version, dann ist die Zeile hier zuende
00337                                         s >> Wort >> c  >> Wort >> c >>     Wort    >> c;
00338                                 //      minuten TAB  Sekunden TAB  Millisekunden   BR
00339                                 }
00340 
00341                                 if (c!='\n') {
00342                                         qDebug("Rest der Zeile war nicht OK"); 
00343                                         return false;
00344                                 }
00345                         break;
00346                         case '\n':
00347                                 goto leseSchleife; // nächste Zeile, weil nur 00:00, 
00348                                                    // mittlerweile obsolet
00349                          break;
00350                         default:
00351                                 qDebug("Quatsch beim Einlesen");
00352                                 return false;
00353                          break;
00354                 }
00355         }
00356         return true;
00357 }

QString RatingVerlauf::printGesamtenRatingVerlauf const MinSec von,
const MinSec bis
 

Definiert in Zeile 281 der Datei zeitverlauf.cpp.

Benutzt printRating() und Sinneinheiten.

Wird benutzt von testRatingVerlauf().

00282                                                                                                                      {
00283         qDebug("printGesamtenRatingVerlauf sollte NICHT verwendet werden, "
00284                    "da a) suboptimal und b) riesiger QString als Resultat");
00285         MinSec2Rating::iterator it;
00286         MinSec Zeitpunkt;
00287         QString temp="";
00288         if ( bis < von ) 
00289                 return temp;
00290         
00291         for (it=Sinneinheiten.lower_bound(von); it != Sinneinheiten.end(); ++it){
00292                 Zeitpunkt=(*it).first;
00293                 if (bis < Zeitpunkt) 
00294                         break;
00295 
00296                       // suboptimal, weil darin noch ein map::find()
00297                 temp+=printRating(Zeitpunkt); 
00298                 temp+="\n";
00299         }
00300                 
00301         return temp;
00302 }

QString RatingVerlauf::printRating const MinSec Endmoment  ) 
 

Definiert in Zeile 268 der Datei zeitverlauf.cpp.

Benutzt IntervallErgebnis::Dauer, RatingAuslesen(), IntervallErgebnis::toQString() und MinSec::toQString().

Wird benutzt von printGesamtenRatingVerlauf() und testRatingVerlauf().

00268                                                           {
00269 
00270         IntervallErgebnis gesamt;
00271         gesamt=RatingAuslesen(Endmoment);
00272         
00273         QString temp;
00274         temp=Endmoment.toQString();
00275         if ( gesamt.Dauer>=0 ) {
00276                 temp+="\t"+gesamt.toQString();
00277         }
00278         return temp;
00279 }

void RatingVerlauf::RatingAnhaengen const MinSec Endmoment,
const RatingSkala  Einschaetzung
 

Definiert in Zeile 210 der Datei zeitverlauf.cpp.

Benutzt Sinneinheiten.

Wird benutzt von liesGesamtenRatingVerlauf(), testRatingVerlauf() und verkuerzeUmAufeinanderfolgendGleiche().

00211                                                                                                         {
00212         Sinneinheiten.insert(MinSec2Rating::value_type(Endmoment,Einschaetzung));
00213 }

IntervallErgebnis RatingVerlauf::RatingAuslesen MinSec2Rating::iterator  it  ) 
 

Definiert in Zeile 241 der Datei zeitverlauf.cpp.

Benutzt IntervallErgebnis::Dauer, IntervallErgebnis::Einschaetzung, IntervallErgebnis::EinschaetzungDavor, error und Sinneinheiten.

00241                                                                               {
00242         // TODO: Diese Routine tut eigentlich dasselbe wie
00243         // IntervallErgebnis RatingAuslesen (const MinSec &Endmoment)
00244         // nur noch ELEMENTARER, nämlich mit gegebenem Iterator
00245         // innerhalb der Map (statt einem Zeitpunkt, der erst gesucht werden muss)
00246         // TODO: dies sollte in obiges eingesetzt werden, 
00247         // um Redundanz zu vermeiden
00248 
00249         IntervallErgebnis temp(error, error,-1);
00250 
00251         MinSec2Rating::iterator it2, it1;
00252         it2=it;
00253 
00254         if (it2 != Sinneinheiten.end()) // IntervallENDE existiert 
00255                 temp.Einschaetzung=it2->second;
00256                 
00257         if (it2 != Sinneinheiten.begin()) // IntervallANFANG existiert 
00258         {
00259                 it1=it2;  it1--;                        // it1 = gehe einen Schritt zurück
00260                 temp.EinschaetzungDavor=it1->second;
00261         }
00262         if (temp.Einschaetzung != error && temp.EinschaetzungDavor != error)
00263                 temp.Dauer=(it1->first).secsTo(it2->first);
00264 
00265         return temp;
00266 }

IntervallErgebnis RatingVerlauf::RatingAuslesen const MinSec Endmoment  ) 
 

Definiert in Zeile 221 der Datei zeitverlauf.cpp.

Benutzt IntervallErgebnis::Dauer, IntervallErgebnis::Einschaetzung, IntervallErgebnis::EinschaetzungDavor, error und Sinneinheiten.

Wird benutzt von VerlaufsAuswertung::DatenAnalysieren(), VerlaufsAuswertung::DatenAnzeigen(), printRating(), testRatingVerlauf() und verkuerzeUmAufeinanderfolgendGleiche().

00221                                                                        {
00222         IntervallErgebnis temp(error, error,-1);
00223 
00224         MinSec2Rating::iterator it2, it1;
00225         it2=Sinneinheiten.find(Endmoment);
00226 
00227         if (it2 != Sinneinheiten.end()) // IntervallENDE existiert 
00228                 temp.Einschaetzung=it2->second;
00229                 
00230         if (it2 != Sinneinheiten.begin()) // IntervallANFANG existiert 
00231         {
00232                 it1=it2;  it1--;                        // it1 = gehe einen Schritt zurück
00233                 temp.EinschaetzungDavor=it1->second;
00234         }
00235         if (temp.Einschaetzung != error && temp.EinschaetzungDavor != error)
00236                 temp.Dauer=(it1->first).secsTo(it2->first);
00237 
00238         return temp;
00239 }

void RatingVerlauf::RatingLoeschen const MinSec Endmoment  ) 
 

Definiert in Zeile 206 der Datei zeitverlauf.cpp.

Benutzt Sinneinheiten.

Wird benutzt von verkuerzeUmAufeinanderfolgendGleiche().

00206                                                          {
00207         Sinneinheiten.erase(Endmoment);
00208 }

bool RatingVerlauf::speichereGesamtenRatingVerlauf QTextStream &  s,
QString &  derKlient,
QString &  derRater
 

Definiert in Zeile 360 der Datei zeitverlauf.cpp.

Benutzt MinSec(), null, RatingSkala, Sinneinheiten und MinSec::toSecs().

Wird benutzt von VerlaufSpeichern::DatenSpeicherStream().

00361                                                                                                        {
00362 
00363         MinSec Zeitpunkt=MinSec(0,0), ZeitpunktDavor=MinSec(0,0);
00364         RatingSkala Einsch=null, EinschDavor=null;
00365         double Dauer=0;
00366         MinSec2Rating::iterator it;
00367         it = Sinneinheiten.begin();
00368 
00369     for ( ; it!= Sinneinheiten.end(); ++it){
00370                 ZeitpunktDavor=Zeitpunkt;
00371                 Zeitpunkt=it->first;
00372                 Dauer=(Zeitpunkt - ZeitpunktDavor).toSecs(); 
00373 
00374                 EinschDavor=Einsch;
00375                 Einsch=it->second;
00376 
00377                 s << Zeitpunkt.toQString() << '\t';
00378                 s << Einsch << '\t';
00379                 s << EinschDavor << '\t';
00380                 s << Dauer << '\t';
00381                 s << derKlient << '\t';
00382                 s << derRater << '\t';
00383                 s << Zeitpunkt.mins() << '\t';
00384                 s << (int) Zeitpunkt.secs() << '\t';
00385                 s << Zeitpunkt.millisecs() << '\n';
00386         }       
00387         return true; // TODO: Was passiert, wenn innerhalb zB Platte voll?
00388 }

void RatingVerlauf::testRatingVerlauf  ) 
 

Definiert in Zeile 424 der Datei zeitverlauf.cpp.

Benutzt BisherLetzterMoment(), KL, KNL, MinSec(), printGesamtenRatingVerlauf(), printRating(), RatingAnhaengen(), RatingAuslesen(), TL, TNL und IntervallErgebnis::toQString().

00424                                       {
00425 
00426         qDebug("\nRatingVerlauf::testRatingVerlauf");
00427         RatingAnhaengen (MinSec(0,13,100), TL);
00428         RatingAnhaengen (MinSec(0,23.9), TNL);
00429         RatingAnhaengen (MinSec(0,37.6), KNL);
00430         RatingAnhaengen (MinSec(1,10,0), KL);
00431 
00432         qDebug("letzter Moment " + BisherLetzterMoment().toQString() );
00433 
00434     MinSec EndMoment;
00435         EndMoment=MinSec(1,10);
00436         IntervallErgebnis ges;
00437         ges=RatingAuslesen(EndMoment);
00438         qDebug(ges.toQString());
00439 
00440         qDebug(printRating (MinSec(0,0))); 
00441         qDebug(printRating (MinSec(0,13.1)));
00442         qDebug(printRating (MinSec(0,23.9)));
00443         qDebug(printRating (MinSec(0,37.6)));
00444         qDebug(printRating (MinSec(1,10)));
00445         qDebug(printRating (MinSec(1,11)));
00446 
00447         qDebug("\n\nUnd nun alles in einer Routine:");
00448         qDebug(printGesamtenRatingVerlauf (MinSec(0,0), BisherLetzterMoment()));
00449 
00450         qDebug("\n\nUnd nun nur die mittleren 3:");
00451         qDebug(printGesamtenRatingVerlauf (MinSec(0,12), MinSec(0,38)));
00452 };

int RatingVerlauf::verkuerzeUmAufeinanderfolgendGleiche  ) 
 

Definiert in Zeile 392 der Datei zeitverlauf.cpp.

Benutzt IntervallErgebnis::Einschaetzung, error, MinSec(), RatingAnhaengen(), RatingAuslesen(), RatingLoeschen(), RatingSkala und Sinneinheiten.

Wird benutzt von LFTVideoAnalyseDialog::DatensatzVerkuerzen().

00392                                                        {
00393 
00394         RatingVerlauf kuerzer;
00395         long anzahlGekuerzter=0;
00396 
00397         IntervallErgebnis interv;
00398         RatingSkala letzteEinschaetzung = error;
00399         MinSec letzterZeitpunkt = MinSec(0,0);
00400 
00401         MinSec2Rating::iterator it;
00402         it = Sinneinheiten.begin();
00403         for ( ; it != Sinneinheiten.end() ; it++){
00404                 interv=RatingAuslesen(it);
00405                 if (interv.Einschaetzung != letzteEinschaetzung) {
00406                         // falls DIESE Einschätzung anders, dann speichere die LETZTE
00407                         kuerzer.RatingAnhaengen(letzterZeitpunkt, letzteEinschaetzung );
00408                 } else{
00409                         // sonst ignorier DIESE und incrementiere nur Zähler
00410                         anzahlGekuerzter++;
00411                 }
00412                 letzteEinschaetzung=interv.Einschaetzung;
00413                 letzterZeitpunkt=it->first;
00414         }
00415         // TODO: Stimmt das? Der letzte wird NIE eingefügt, oder?
00416         kuerzer.RatingAnhaengen(letzterZeitpunkt, letzteEinschaetzung );
00417 
00418 
00419         this->RatingLoeschen(MinSec(0,0)); // leere sicherheitshalber aktuelle Map
00420         this->Sinneinheiten = kuerzer.Sinneinheiten; // TODO: ist das ein COPY ?
00421         return anzahlGekuerzter;
00422 }


Dokumentation der Datenelemente

MinSec2Rating RatingVerlauf::Sinneinheiten
 

Definiert in Zeile 116 der Datei zeitverlauf.h.

Wird benutzt von BisherLetzterMoment(), VerlaufsAuswertung::DatenAnalysieren(), VerlaufsAuswertung::DatenAnzeigen(), VerlaufsAuswertung::GesamtAnzahl(), liesGesamtenRatingVerlauf(), LFTVideoDialog::openKonfigDialog(), printGesamtenRatingVerlauf(), RatingAnhaengen(), RatingAuslesen(), RatingLoeschen(), RatingVerlauf(), speichereGesamtenRatingVerlauf(), verkuerzeUmAufeinanderfolgendGleiche(), LFTVideoDialog::~LFTVideoDialog() und ~RatingVerlauf().


Die Dokumentation für diese Klasse wurde erzeugt aufgrund der Dateien:
Erzeugt am Mon Jun 16 18:08:41 2003 für LFTVideo von doxygen 1.3.2