A search engine factory with different data sources.
func makeOnlineManager() -> ISearchManager?
Create a search engine that works online.
ISearchManager?
func makeOfflineManager() -> ISearchManager?
Create a search engine that works with preloaded data.
func makeSmartManager() -> ISearchManager?
Create a search engine running online or with preloaded data, depending on the availability of an internet connection.