示例#1
0
Flash* FlashManager::load(string name, string path) {
    // find if already loaded
    map<string, Flash*>::iterator findItor = configs.find(name);
    if(findItor != configs.end()) {
        Flash* previous = findItor->second;
        // if config has already loaded
        if(previous->getPath() == path) {
            return previous;
        } else {
            configs.erase(findItor);
            delete previous;
        }
    }

	Flash* flash = loader->load(path);
    if(flash == 0) {
        return 0;
    }

    // save the newly loaded config
    flash->setPath(path);
    configs.insert(map<string, Flash*>::value_type(name, flash));
    return flash;
}