+ } else if ( protocol == "generic" ) {
+ size_t configToken;
+ if (tokens[1] == "socket") {
+ configToken = 7;
+ } else if (tokens[1] == "file") {
+ configToken = 5;
+ } else {
+ configToken = 6;
+ }
+
+ if (configToken >= tokens.size()) {
+ SG_LOG( SG_IO, SG_ALERT, "Not enough tokens passed for the generic protocol.");
+ return NULL;
+ }
+
+ FGGeneric *generic = new FGGeneric( tokens );
+ io = generic;
+ } else if ( protocol == "multiplay" ) {
+ if ( tokens.size() != 5 ) {
+ SG_LOG( SG_IO, SG_ALERT, "Ignoring invalid --multiplay option "
+ "(4 arguments expected: --multiplay=dir,hz,hostname,port)" );
+ return NULL;
+ }
+ string dir = tokens[1];
+ string rate = tokens[2];
+ string host = tokens[3];
+ string port = tokens[4];
+ return new FGMultiplay(dir, atoi(rate.c_str()), host, atoi(port.c_str()));