File: recursivecoro.1

package info (click to toggle)
c%2B%2B-annotations 12.2.0-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 13,044 kB
  • sloc: cpp: 24,337; makefile: 1,517; ansic: 165; sh: 121; perl: 90
file content (21 lines) | stat: -rw-r--r-- 874 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Recursive recursiveCoro(string const &directory)
{
    chdir(directory.c_str());                       // change to the directory

    while ((entry = nextEntry()))                   // visit all its entries
    {
        string const &name = entry.name();
        co_yield name;                              // yield the entry's name

        if (entry.type() == DIRECTORY)              // a directory?
        {
            string path = pathName(directory, name);  // get the full path
            co_yield path;                            // yield the full path

            auto rec = recursiveCoro(path);         // visit the entries of 
            string next;                            // the subdir (and of its
            while (rec.next(&next))                 // subdirs)
                co_yield next;                      // and yield them
        }
    }
}