wiesel / src / common / wiesel / modules.cpp

/**
 * Copyright (C) 2012
 * Christian Fischer
 *
 * https://bitbucket.org/baldur/wiesel/
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 3 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General
 * Public License along with this library; if not, write to the
 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 * Boston, MA 02110-1301 USA
 */
#include "modules.h"

using namespace wiesel;



ModuleRegistry *ModuleRegistry::getInstance() {
	static ModuleRegistry instance = ModuleRegistry();
	return &instance;
}



bool wiesel::SortModuleLoadersPredicate(IModuleLoader *a, IModuleLoader *b) {
	// priority is the most important value
	if (a->getPriority() != b->getPriority()) {
		return a->getPriority() > b->getPriority();
	}

	// when the API on both modules are the same, order by API version
	if (
			a->getApi() == b->getApi()
		&&	a->getApiVersion() != b->getApiVersion()
	) {
		return a->getApiVersion() > b->getApiVersion();
	}

	// default order is API name
	return a->getApi() > b->getApi();
}
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.