Rather than adding:
class mir::DisplayServerInstance and mir::DisplayServerInstance::run(int argc, char **argv, std::function<void(mir::DisplayServer *)> server_ready)
I'd suggest the configuration object deals with the command line. Vis:
mir::DefaultServerConfiguration::DefaultServerConfiguration(int argc, char const**argv);
If a callback is needed, then why not add that to DisplayServer::start()?
Rather than adding:
class mir::DisplaySer verInstance and verInstance: :run(int argc, char **argv, std::function< void(mir: :DisplayServer *)> server_ready)
mir::DisplaySer
I'd suggest the configuration object deals with the command line. Vis:
mir::DefaultSer verConfiguratio n::DefaultServe rConfiguration( int argc, char const**argv);
If a callback is needed, then why not add that to DisplayServer: :start( )?