BEAST - Free Software Audio Synthesizer and Tracker  0.10.0
sfifilecrawler.hh
Go to the documentation of this file.
1  // Licensed GNU LGPL v2.1 or later: http://www.gnu.org/licenses/lgpl.html
2 #ifndef __SFI_FILE_CRAWLER_H__
3 #define __SFI_FILE_CRAWLER_H__
4 
5 #include <sfi/sfitypes.hh>
6 #include <sfi/sfiring.hh>
7 
8 G_BEGIN_DECLS
9 
10 typedef struct {
11  SfiRing *results; /* end user results */
12  /*< private >*/
13  gchar *cwd;
14  SfiRing *dpatterns; /* gchar*, directory patterns */
15  GFileTest ptest;
16  /* path crawler */
17  SfiRing *pdqueue; /* dir segments of current search dir */
18  GFileTest stest; /* final segment file test */
19  SfiRing *dlist; /* dir list */
20  /* dir crawler */
21  gpointer dhandle;
22  GPatternSpec *pspec; /* file pattern */
23  gchar *base_dir;
24  GFileTest ftest;
25  SfiRing *accu; /* readdir result */
27 
31  const gchar *cwd);
33  const gchar *pattern_paths,
34  const gchar *file_pattern);
36  GFileTest tests);
40 
41 SfiRing* sfi_file_crawler_list_files (const gchar *search_path,
42  const gchar *file_pattern,
43  GFileTest file_test);
44 
45 gchar* sfi_path_get_filename (const gchar *filename,
46  const gchar *parentdir);
47 void sfi_make_dirpath (const gchar *dir);
48 void sfi_make_dirname_path (const gchar *filename);
49 
50 /* --- file tests --- */
51 gboolean g_file_test_all (const gchar *filename,
52  GFileTest test);
53 
54 
55 /* --- implementations --- */
56 void _sfi_init_file_crawler (void);
57 
58 G_END_DECLS
59 
60 #endif /* __SFI_FILE_CRAWLER_H__ */
61 
62 /* vim:set ts=8 sts=2 sw=2: */
void sfi_file_crawler_destroy(SfiFileCrawler *self)
Definition: sfifilecrawler.cc:421
Definition: sfifilecrawler.hh:10
gboolean g_file_test_all(const gchar *filename, GFileTest test)
Definition: sfifilecrawler.cc:570
void sfi_file_crawler_crawl(SfiFileCrawler *self)
Definition: sfifilecrawler.cc:396
void sfi_file_crawler_add_search_path(SfiFileCrawler *self, const gchar *pattern_paths, const gchar *file_pattern)
Definition: sfifilecrawler.cc:116
void sfi_file_crawler_set_cwd(SfiFileCrawler *self, const gchar *cwd)
Definition: sfifilecrawler.cc:74
gboolean sfi_file_crawler_needs_crawl(SfiFileCrawler *self)
Definition: sfifilecrawler.cc:377
gchar * sfi_file_crawler_pop(SfiFileCrawler *self)
Definition: sfifilecrawler.cc:61
gchar * sfi_path_get_filename(const gchar *filename, const gchar *parentdir)
Definition: sfifilecrawler.cc:532
Definition: sfiring.hh:23
void sfi_file_crawler_add_tests(SfiFileCrawler *self, GFileTest tests)
Definition: sfifilecrawler.cc:93
SfiRing * sfi_file_crawler_list_files(const gchar *search_path, const gchar *file_pattern, GFileTest file_test)
Definition: sfifilecrawler.cc:449
SfiFileCrawler * sfi_file_crawler_new(void)
Create a new file crawler.
Definition: sfifilecrawler.cc:46