~linaro-pm-wg/linaro-powertop/master

« back to all changes in this revision

Viewing changes to measurement/measurement.cpp

  • Committer: Arjan van de Ven
  • Author(s): Sergey Senozhatsky
  • Date: 2011-05-11 04:04:24 UTC
  • Revision ID: git-v1:4c4b72a9fb55681261cfb5a307d9a8e45ecc4943
Use callback in detect_power_meters() to read /proc/* directory

detect_power_meters() has the same /proc/* directory traverse code as network
and ethernet_tunable did before we switched to callback. Move read_all_nics()
code to process_directory(), which now accepts 2 parameters -- directory to
read and callback; introduce power_meters_callback() to fill power_meters.

Signed-off-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>

Show diffs side-by-side

added added

removed removed

Lines of Context:
103
103
        return total;
104
104
}
105
105
 
 
106
void power_meters_callback(const char *d_name)
 
107
{
 
108
        class acpi_power_meter *meter;
 
109
        meter = new(std::nothrow) class acpi_power_meter(d_name);
 
110
        if (meter)
 
111
                power_meters.push_back(meter);
 
112
}
106
113
 
107
114
void detect_power_meters(void)
108
115
{
109
 
        DIR *dir;
110
 
        struct dirent *entry;
111
 
 
112
 
        dir = opendir("/proc/acpi/battery");
113
 
        if (!dir)
114
 
                return;
115
 
        while (1) {
116
 
                class acpi_power_meter *meter;
117
 
                entry = readdir(dir);
118
 
                if (!entry)
119
 
                        break;
120
 
                if (entry->d_name[0] == '.')
121
 
                        continue;
122
 
 
123
 
                meter = new class acpi_power_meter(entry->d_name);
124
 
 
125
 
                power_meters.push_back(meter);
126
 
                
127
 
        }
128
 
        closedir(dir);
129
 
 
 
116
        process_directory("/proc/acpi/battery", power_meters_callback);
130
117
}
131
118
 
132
119
void extech_power_meter(const char *devnode)