int main(int argc, char* argv[]) { new LoggerSystem(); new ComponentFactory(); entityx::EntityX ex; GameObject drone(ex.entities.create()); drone.addComponent(ComponentType::MOVEMENT, ComponentFactory::getInstance()->assignComponent(drone.getEntity(), ComponentType::MOVEMENT)); drone.move(vec2(1, 0)); const std::string serialStr = network::marshal(drone, 0); GameObject drone2(ex.entities.create()); network::unmarshal(drone2, serialStr, 0); #if defined(CLIENT_SIDE) && defined(SERVER_SIDE) if (strcmp(argv[1], CLIENT_START_CODE) == 0) { return clientMain(argc, argv); } else if (strcmp(argv[1], CLIENT_THICK_START_CODE) == 0) { return clientMain(argc, argv, true); } else if (strcmp(argv[1], SERVER_START_CODE) == 0) { return serverMain(argc, argv); } std::cout << "Bad argument. Possible ones are: " << CLIENT_START_CODE << " " << CLIENT_THICK_START_CODE << " " << SERVER_START_CODE; #elif defined(CLIENT_SIDE) return clientMain(argc, argv); #elif defined(SERVER_SIDE) return serverMain(argc, argv); #endif }
int main( int argc, char **argv ) { bool isClient = argc > 1 && 0==strcmp(argv[1], "client" ) ; bool isServer = argc > 1 && 0==strcmp( argv[1], "server" ) ; if( isClient ) return clientMain( argc, argv ) ; else if( isServer ) return serverMain( argc, argv ) ; else { printf( "Usage: chat client name [host [port]]\n" ) ; printf( " chat server [host [port]] \n" ) ; exit(1) ; } }
int main(int argc, char *argv[]) { if (argc != 5 && argc != 4) handleError(getProperUse(argv[0])); if (atoi(argv[1]) == 0) clientMain(argc, argv); else if (atoi(argv[1]) == 1) serverMain(argc, argv); else handleError((char*)"Invalid Flag - proper flag values are\n0 - meaning client\n" "1 - meaning server"); }
int main(int argc, char **argv) { serverOptions(argc, argv); switch (server_quit) { case 1: /* Slow quit -q */ exit(pidKill(pid_file, SIGQUIT) != 0); case 2: /* Quit now -q -q */ exit(pidKill(pid_file, SIGTERM) != 0); default: /* Restart -q -q -q * Restart-If -q -q -q -q */ if (pidKill(pid_file, SIGTERM) && 3 < server_quit) { fprintf(stderr, "no previous instance running: %s (%d)\n", strerror(errno), errno); return EXIT_FAILURE; } sleep(2); } if (daemon_mode) { if (daemon(1, 1)) { fprintf(stderr, "%s(%d): %s\n", __FILE__, __LINE__, strerror(errno)); return EX_SOFTWARE; } if (atexit(atExitCleanUp)) { fprintf(stderr, "%s(%d): %s\n", __FILE__, __LINE__, strerror(errno)); return EX_SOFTWARE; } openlog("dnsd", LOG_PID|LOG_NDELAY, LOG_DAEMON); } else { LogOpen("(standard error)"); } return serverMain(); }
int main(int argc, char **argv) { /* Get this now so we can use the event log. */ ReportInit(); serverOptions(argc, argv); if (0 < server_quit) { pid_t pid; int length; HANDLE signal_quit; char event_name[128]; pid = pidLoad(pid_file); length = snprintf(event_name, sizeof (event_name), "Global\\%ld-%s", (long) pid, server_quit == 1 ? "QUIT" : "TERM"); if (sizeof (event_name) <= length) { ReportLog(EVENTLOG_ERROR_TYPE, "service %s pid file name too long", _NAME); return EX_SOFTWARE; } signal_quit = OpenEvent(EVENT_MODIFY_STATE , 0, event_name); if (signal_quit == NULL) { ReportLog(EVENTLOG_ERROR_TYPE, "service %s quit error: %s (%d)", _NAME, strerror(errno), errno); return EX_OSERR; } SetEvent(signal_quit); CloseHandle(signal_quit); return EXIT_SUCCESS; } if (windows_service != NULL) { if (winServiceInstall(*windows_service == 'a', _NAME, NULL) < 0) { ReportLog(EVENTLOG_ERROR_TYPE, "service %s %s error: %s (%d)", _NAME, windows_service, strerror(errno), errno); return EX_OSERR; } return EXIT_SUCCESS; } openlog(_NAME, LOG_PID|LOG_NDELAY, log_facility); if (daemon_mode) { if (pidSave(pid_file)) { syslog(LOG_ERR, log_init, SERVER_FILE_LINENO, strerror(errno), errno); return EX_SOFTWARE; } if (pidLock(pid_file) < 0) { syslog(LOG_ERR, log_init, SERVER_FILE_LINENO, strerror(errno), errno); return EX_SOFTWARE; } winServiceSetSignals(&signals); if (winServiceStart(_NAME, argc, argv) < 0) { ReportLog(EVENTLOG_ERROR_TYPE, "service %s start error: %s (%d)", _NAME, strerror(errno), errno); return EX_OSERR; } return EXIT_SUCCESS; } #ifdef NOT_USED { long length; char *cwd, *backslash, *server_root, default_root[256]; /* Get the absolute path of this executable and set the working * directory to correspond to it so that we can find the options * configuration file along side the executable, when running as * a service. (I hate using the registry.) */ if ((length = GetModuleFileName(NULL, default_root, sizeof default_root)) == 0 || length == sizeof default_root) { ReportLog(EVENTLOG_ERROR_TYPE, "failed to find default server root"); return EXIT_FAILURE; } /* Strip off the executable filename, leaving its parent directory. */ for (backslash = default_root+length; default_root < backslash && *backslash != '\\'; backslash--) ; server_root = default_root; *backslash = '\0'; /* Remember where we are in case we are running in application mode. */ cwd = getcwd(NULL, 0); /* Change to the executable's directory for default configuration file. */ if (chdir(server_root)) { ReportLog(EVENTLOG_ERROR_TYPE, "failed to change directory to '%s': %s (%d)\n", server_root, strerror(errno), errno); exit(EX_OSERR); } if (cwd != NULL) { (void) chdir(cwd); free(cwd); } } #endif return serverMain(); }