Seite 6 von 9

Re: Verzeichnissuche

Verfasst: Mi Aug 11, 2010 6:39 pm
von Xin
fat-lobyte hat geschrieben:
Bebu hat geschrieben:@fatlobyte: Ich habe mal alle Header zur Sourceliste hinzugefügt, damit sie von Cmake im CodeBlocks Generator mit einbezogen werden.

Bin ja eigentlich dagegen Header als "Quellen" zu bezeichnen, da sie ja eigentlich nicht kompiliert werden müssen, aber jetzt weiß ich schon mal warum die immer hinzugefügt werden ^^
Frage an die Runde: welche IDE's unter welchen Plattformen sind denn im Einsatz? Wie (mit welchen Generators) baut ihr das Projekt?
CodeLite, Kate, vi mit gcc

Gebaut wird meist mit make.
fat-lobyte hat geschrieben:Für die Zukunft: bitte solche Fehler im Build-System Thread beschreiben, auch wenns nur zwei Zeilen sind. Kann durchaus sein, dass ich mal diesen Thread überlese. (mit nem Bugtracker wäre das natürlich nicht passiert ;-) ).
Bin gerade nach Hause gekommen. Hatte heute frei, da habe ich mehr Streß als sonst ;-)

Re: Verzeichnissuche

Verfasst: Mi Aug 11, 2010 8:09 pm
von Bebu
Also ich kann jetzt vom Hauptverzeichnis aus fehlerfrei bauen. Hast du gut gemacht :!:

Achja System: Ubuntu 10.04 mit Code::Blocks

Geplant ist noch Win XP mit CodeBlocks in der Virtuellen Maschine und Visual Studio Express, sowie das ganze nochmal unter Vista.

Re: Verzeichnissuche

Verfasst: Do Aug 19, 2010 8:47 am
von Bebu
@Xin: Ist eigentlich zusätzlich zur Möglichkeit die Rekursion abzuschalten, auch eine Möglichkeit gewünscht, den Thread abzuschalten? Wenn ja, wäre es fast eine Überlegung wert, eine abstrakte Basisklasse zu erstellen und daraus, dann die spezialisierten Klassen abzuleiten.

Re: Verzeichnissuche

Verfasst: Do Aug 19, 2010 9:31 am
von Xin
Bebu hat geschrieben:@Xin: Ist eigentlich zusätzlich zur Möglichkeit die Rekursion abzuschalten, auch eine Möglichkeit gewünscht, den Thread abzuschalten? Wenn ja, wäre es fast eine Überlegung wert, eine abstrakte Basisklasse zu erstellen und daraus, dann die spezialisierten Klassen abzuleiten.
Was meinst Du mit 'Thread abzuschalten'?

Sagen wir mal so - es wäre wünschenswert, die Indizierung pausieren zu lassen, um das Gerödel auf der HDD zu verringern, wenn man die Platte gerade selbst benötigt. ^^

Re: Verzeichnissuche

Verfasst: Do Aug 19, 2010 10:03 am
von Bebu
Xin hat geschrieben:Was meinst Du mit 'Thread abzuschalten'?
Ich meine damit, ob du eine Variante der Datensuche willst, die eben keinen eigenen Thread startet, stattdessen wie eine Funktion arbeitet und in dieser Zeit alles andere blockiert, weil sie gerade in einer Schleife ist und sucht. Halt ohne eigenen Thread für die Suchschleife. Du solltest dich wirklich auskurieren ;)

Re: Verzeichnissuche

Verfasst: Do Aug 19, 2010 10:26 am
von Xin
Bebu hat geschrieben:
Xin hat geschrieben:Was meinst Du mit 'Thread abzuschalten'?
Ich meine damit, ob du eine Variante der Datensuche willst, die eben keinen eigenen Thread startet, stattdessen wie eine Funktion arbeitet und in dieser Zeit alles andere blockiert, weil sie gerade in einer Schleife ist und sucht. Halt ohne eigenen Thread für die Suchschleife. Du solltest dich wirklich auskurieren ;)
Gibt ja verschiedene Möglichkeiten den Thread abzuschalten.

Von mir aus, kann die erste Runde ruhig als Funktion laufen. Wenn das Ding schon in einem Thread ist, wie ich das soweit ja auch gesehen habe, dann sehe ich natürlich keinen Grund, das aus dem Thread wieder rauszuholen. Die Möglichkeit den Thread zu pausieren - und dann später fortzuführen - finde ich allerdings auch gut.

Re: Verzeichnissuche

Verfasst: Do Aug 19, 2010 11:23 am
von Bebu
Ich glaube wir reden aneinander vorbei. Ich meine eher, ob du Verwendung für eine Klasse FileSearcher hast, die überhaupt keinen Thread benutzt. Dann würde ich eine Möglichkeit im Konstruktor einbauen, das der Thread überhaupt nie gestartet wird. Start(), Stop(), Reset() und GetSearchState() wären dann allerdings überflüssig.

Re: Verzeichnissuche

Verfasst: Do Aug 19, 2010 3:51 pm
von Xin
Bebu hat geschrieben:Ich glaube wir reden aneinander vorbei. Ich meine eher, ob du Verwendung für eine Klasse FileSearcher hast, die überhaupt keinen Thread benutzt. Dann würde ich eine Möglichkeit im Konstruktor einbauen, das der Thread überhaupt nie gestartet wird. Start(), Stop(), Reset() und GetSearchState() wären dann allerdings überflüssig.
Ja, ich habe Verwendung: Im NCurses GUI kann ich ja nicht die Liste der Dateien darstellen, wenn der Thread noch läuft.

Re: Verzeichnissuche

Verfasst: Do Aug 19, 2010 7:55 pm
von Bebu
Ok, dann steht das auch noch auf der Liste. Wird aber wohl erst nächste Woche was werden, ich bin das Wochenende über nicht zuhause und ohne PC.

Re: Verzeichnissuche

Verfasst: Do Aug 19, 2010 8:54 pm
von fat-lobyte

Code: Alles auswählen

[ 42%] Building CXX object filesearch/CMakeFiles/dedupe-filesearch.dir/fileinfo.cpp.o
In file included from /home/alexander/programming/c_cpp/dedupe/dedupe-git/filesearch/fileinfo.cpp:8:
/home/alexander/programming/c_cpp/dedupe/dedupe-git/filesearch/fileinfo.h:63: error: ‘Codes’ in namespace ‘Dedupe::State’ does not name a type
/home/alexander/programming/c_cpp/dedupe/dedupe-git/filesearch/fileinfo.h:76: error: ‘Codes’ in namespace ‘Dedupe::State’ does not name a type
/home/alexander/programming/c_cpp/dedupe/dedupe-git/filesearch/fileinfo.h:81: error: ‘Codes’ in namespace ‘Dedupe::State’ does not name a type
/home/alexander/programming/c_cpp/dedupe/dedupe-git/filesearch/fileinfo.h:89: error: ‘Codes’ in namespace ‘Dedupe::State’ does not name a type
/home/alexander/programming/c_cpp/dedupe/dedupe-git/filesearch/fileinfo.h:94: error: ‘Codes’ in namespace ‘Dedupe::State’ does not name a type
...
*grml* :x
Dude, don't break the build ^^

Hm, dachte das wäre ein Trivialer fix. Aber kuck mal:

Code: Alles auswählen

State::Codes FileSearch::File::Start()
{
  if( File::SearchState==Dedupe::State::run )
  {
    return Dedupe::State::is_running;
  }

  File::SearchState = Dedupe::State::run;

  return Dedupe::State::ok;
}
IsRunning ist jetzt im enum Dedupe::State::SearchControl, aber Ok ist im enum Dedupe::State::GeneralCodes.
Was gibt das teil jetzt zurück? Ein Dedupe::State::SearchControl oder ein Dedupe::State::GeneralCode? Gut dass du das in der state.h geändert hast, denn sonst wäre der Fehler nicht aufgefallen. Die Typen sind eigentlich grundverschieden, und deine Funktion sollte auch nicht versuchen so zu tun als ob sies nicht wären.
Bitte ausbessern, nochmal durchkucken was es noch gibt.

Und nochmal: Don't break the Build!

Ich wollt mich gerade voller Tatendrang wiedermal ans Debian-Paket setzen und dann sowas. Tz.

(Na gut, ein bisschen gespielt war die Entrüstung schon... Trotzdem bitte ausbessern ;-) )