Verzeichnissuche

Proggen.org - Lernprojekt: Duplikatefinder
Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8485
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Verzeichnissuche

Beitrag von Xin » Mi Aug 11, 2010 6:39 pm

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 ;-)
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Verzeichnissuche

Beitrag von Bebu » Mi Aug 11, 2010 8:09 pm

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.
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Verzeichnissuche

Beitrag von Bebu » Do Aug 19, 2010 8:47 am

@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.
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8485
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Verzeichnissuche

Beitrag von Xin » Do Aug 19, 2010 9:31 am

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. ^^
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Verzeichnissuche

Beitrag von Bebu » Do Aug 19, 2010 10:03 am

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 ;)
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8485
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Verzeichnissuche

Beitrag von Xin » Do Aug 19, 2010 10:26 am

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.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Verzeichnissuche

Beitrag von Bebu » Do Aug 19, 2010 11:23 am

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.
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8485
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Verzeichnissuche

Beitrag von Xin » Do Aug 19, 2010 3:51 pm

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.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
Bebu
Beiträge: 562
Registriert: Mi Okt 21, 2009 6:19 pm
Wohnort: In der Nähe von Salzburg - Bin aber kein Österreicher!

Re: Verzeichnissuche

Beitrag von Bebu » Do Aug 19, 2010 7:55 pm

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.
Wer immer nach dem Unerreichbaren jagt, der wird irgendwann auf die Schnauze fallen!

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Verzeichnissuche

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

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 ;-) )
Haters gonna hate, potatoes gonna potate.

Antworten