コード例 #1
9
ファイル: MetaConfig.cpp プロジェクト: zhangchuhu/s2s
int MetaConfig::flushNodeSrvs(TiXmlHandle *meta)
{
	std::vector<NodeService> tmp;
	TiXmlHandle srvs = meta->FirstChildElement("services");
	if(srvs.Element()){
		TiXmlHandle srv = srvs.FirstChildElement("service");
		while(srv.Element()){
			NodeService ns;
			loadInt(&srv, "gid", ns.gid, -1);
			loadString(&srv, "name", ns.service, "");
			loadString(&srv, "ip", ns.ip, "");
			loadInt(&srv, "port", ns.port, -1);

			if(!(ns.gid != -1 && !ns.service.empty() && !ns.ip.empty() && ns.port != -1)){
				std::cerr << "load service error name:" << ns.service << " ip:" << ns.ip << " port:" << ns.port << " node:" << ns.gid<< std::endl;
				return -1;
			}

			tmp.push_back(ns);
			srv = srv.Element()->NextSibling("service");
		}
		std::sort(tmp.begin(), tmp.end());
		std::unique(tmp.begin(), tmp.end());
	}
	boost::mutex::scoped_lock lock(mtx);
	ndSrvs.swap(tmp);
	return 0;
}
コード例 #2
0
ファイル: head.c プロジェクト: NicoJuicy/SnippingToolPlusPlus
void appendHeapSize(char *dst, const int megabytesID, const int percentID,
                    const DWORDLONG availableMemory, const char *option)
{
    const int mb = 1048576;			// 1 MB
    const int mbLimit32 = 1024;  	// Max heap size in MB on 32-bit JREs
    const int megabytes = loadInt(megabytesID);
    const int percent = loadInt(percentID);
    const int availableMb = availableMemory * percent / (100 * mb);	// 100% * 1 MB
    int heapSizeMb = availableMb > megabytes ? availableMb : megabytes;

    if (heapSizeMb > 0)
    {
        if (!(foundJava & KEY_WOW64_64KEY) && heapSizeMb > mbLimit32)
        {
            debug("Heap limit:\tReduced %d MB heap size to 32-bit maximum %d MB\n",
                  heapSizeMb, mbLimit32);
            heapSizeMb = mbLimit32;
        }

        debug("Heap %s:\tRequested %d MB / %d%%, Available: %d MB, Heap size: %d MB\n",
              option, megabytes, percent, (int)(availableMemory / mb), heapSizeMb);
        strcat(dst, option);
        _itoa(heapSizeMb, dst + strlen(dst), 10);				// 10 -- radix
        strcat(dst, "m ");
    }
}
コード例 #3
0
ファイル: serializer.cpp プロジェクト: AliSayed/MoSync
void Serializer::loadEntries(Entry *entry) {
	debug(DBG_SER, "Serializer::loadEntries()");
	for (; entry->type != SET_END; ++entry) {
		if (_saveVer >= entry->minVer && _saveVer <= entry->maxVer) {
			switch (entry->type) {
			case SET_INT:
				loadInt(entry->size, entry->data);
				_bytesCount += entry->size;
				break;
			case SET_ARRAY:
				if (entry->size == Serializer::SES_INT8) {
					_stream->read(entry->data, entry->n);
					_bytesCount += entry->n;
				} else {
					uint8 *p = (uint8 *)entry->data;
					for (int i = 0; i < entry->n; ++i) {
						loadInt(entry->size, p);
						p += entry->size;
						_bytesCount += entry->size;
					}
				}
				break;
			case SET_PTR:
				*(uint8 **)(entry->data) = _ptrBlock + _stream->readUint32BE();
				_bytesCount += 4;
				break;
			case SET_END:
				break;				
			}
		}
	}
}
コード例 #4
0
void SimpleMCModelerWidget::loadModel()
{
	ComputationParameters params;

	params.setInt(SimpleMCModeler::PARAM_NUMDSTEPS, loadInt(SimpleMCModeler::PARAM_NUMDSTEPS));
	numdstepsEdit->setValue(loadInt(SimpleMCModeler::PARAM_NUMDSTEPS));

	params.setInt(SimpleMCModeler::PARAM_NUMSTATES, loadInt(SimpleMCModeler::PARAM_NUMSTATES));
	numstatesEdit->setValue(loadInt(SimpleMCModeler::PARAM_NUMSTATES));

	modeler->setParameters(params);
}
コード例 #5
0
ファイル: head.c プロジェクト: antonjk/daxtop
void appendHeapSize(const HMODULE hLibrary, char *dst,
		const int absID, const int percentID,
		const DWORD freeMemory, const char *option) {

	int abs = loadInt(hLibrary, absID);
	int percent = loadInt(hLibrary, percentID);
	int free = (long long) freeMemory * percent / (100 * 1048576);	// 100% * 1 MB
	int size = free > abs ? free : abs;
	if (size > 0) {
		strcat(dst, option);
		_itoa(size, dst + strlen(dst), 10);							// 10 -- radix
		strcat(dst, "m ");
	}	
}
コード例 #6
0
ファイル: object.cpp プロジェクト: whztt07/Magic3D-2
Magic3D::XMLElement* Magic3D::Object::load(XMLElement* root)
{
    if (root)
    {
        script   = loadString(root, M3D_OBJECT_XML_SCRIPT);
        parentPosition = loadBool(root,   M3D_OBJECT_XML_PARENT_POSITION);
        parentRotation = loadBool(root,   M3D_OBJECT_XML_PARENT_ROTATION);
        parentScale    = loadBool(root,   M3D_OBJECT_XML_PARENT_SCALE);
        flag      = loadInt(root, M3D_OBJECT_XML_FLAG);
        billboard = (BILLBOARD)loadInt(root, M3D_OBJECT_XML_BILLBOARD);
        enabled  = loadBool(root, M3D_OBJECT_XML_ENABLED);
        visible  = loadBool(root, M3D_OBJECT_XML_VISIBLE);
        zOrder   = loadBool(root, M3D_OBJECT_XML_ZORDER);
        pick     = loadBool(root, M3D_OBJECT_XML_PICK);
        position = loadVector3(root, M3D_OBJECT_XML_POSITION);
        setRotation(Quaternion(loadVector4(root, M3D_OBJECT_XML_ROTATION)));
        scale    = loadVector3(root, M3D_OBJECT_XML_SCALE);
        bool sc = loadBool(root, M3D_OBJECT_XML_SCRIPTED);
        if (sc)
        {
            setScripted(true);
        }
        else
        {
            this->scripted = false;
        }

        XMLElement* xml = root->FirstChildElement(M3D_MESH_XML);
        unsigned int meshIndex = 0;
        while (xml)
        {
            Mesh* mesh = NULL;
            if (meshIndex < meshes.size())
            {
                mesh = meshes[meshIndex++];
            }

            if (mesh)
            {
                mesh->load(xml);
            }
            xml = xml->NextSiblingElement(M3D_MESH_XML);
        }

        PhysicsObject::load(root);
    }
    return root;
}
コード例 #7
0
ファイル: head.c プロジェクト: alexchew/antipasto_arduino
void appendHeapSize(char *dst, const int absID, const int percentID,
		const DWORD freeMemory, const char *option) {

	const int mb = 1048576;		// 1 MB
	int abs = loadInt(absID);
	int percent = loadInt(percentID);
	int free = (long long) freeMemory * percent / (100 * mb);	// 100% * 1 MB
	int size = free > abs ? free : abs;
	if (size > 0) {
		debug("Heap %s:\t%d MB / %d%%, Free: %d MB, Heap size: %d MB\n",
				option, abs, percent, freeMemory / mb, size);
		strcat(dst, option);
		_itoa(size, dst + strlen(dst), 10);						// 10 -- radix
		strcat(dst, "m ");
	}
}
コード例 #8
0
ファイル: head.c プロジェクト: BLOODWOLF333/megamek
void appendHeapSize(char *dst, const int absID, const int percentID,
		const DWORD freeMemory, const char *option) {
	
	const int mb = 1048576;			// 1 MB
	const int mbLimit32 = 1500;  	// Max heap size in MB on 32-bit JREs
	int abs = loadInt(absID);
	int percent = loadInt(percentID);
	int free = (long long) freeMemory * percent / (100 * mb);	// 100% * 1 MB
	int size = free > abs ? free : abs;
	if (size > 0) {
		if (!(foundJava & KEY_WOW64_64KEY) && size > mbLimit32) {
			debug("Heap limit:\tReduced %d MB heap size to 32-bit maximum %d MB\n",
					size, mbLimit32);
			size = mbLimit32;
		}

		debug("Heap %s:\t%d MB / %d%%, Free: %d MB, Heap size: %d MB\n",
				option, abs, percent, freeMemory / mb, size);
		strcat(dst, option);
		_itoa(size, dst + strlen(dst), 10);						// 10 -- radix
		strcat(dst, "m ");
	}
}
コード例 #9
0
ファイル: raw_data.c プロジェクト: michaelcmartin/monocle
/* Precondition: f needs to be pointing to the start of the central
 * directory. If you know you haven't reached path yet, you're still
 * OK as long as f is pointing to the start of a central directory
 * record.*/
static int
find_file_in_zip(FILE *f, const char *path, struct zip_entry *ze)
{
    while (1) {
        short fnameLen;
        int magic, suffixLen;
        long offset;
        magic = loadInt(f);
        if (magic == 0x06054b50 || magic == 0x05054b50 || magic == 0x06064b50) {
            /* We've hit the End of Central Directory record, a
             * digital signature block, or a Zip64 end of directory
             * record. We're done, and we didn't find what we were
             * looking for. */
            return 0;
        }
        if (magic != 0x02014b50) {
            /* ZIP directory corrupt */
            return 0;
        }
        loadSkip(f, 6);
        ze->compression = loadShort(f);
        loadSkip(f, 4);
        ze->crc32 = loadInt(f);
        ze->compressedSize = loadInt(f);
        ze->uncompressedSize = loadInt(f);
        fnameLen = loadShort(f);
        suffixLen = loadShort(f);
        suffixLen += loadShort(f);
        loadSkip(f, 8);
        offset = loadInt(f);
        if (!fstrncmp(f, fnameLen, path)) {
            if (ze->compression != 0 && ze->compression != 8) {
                /* Unknown compression type */
                return 0;
            }
            fseek(f, offset, SEEK_SET);
            suffixLen = 0;
            magic = loadInt(f);
            if (magic != 0x04034b50) {
                /* ZIP directory corrupt */
                return 0;
            }
            loadSkip(f, 22);
            suffixLen += loadShort(f);
            suffixLen += loadShort(f);
            loadSkip(f, suffixLen);
            return 1;
        }
        /* That wasn't it. Skip the suffix to get to the next
         * entry */
        loadSkip(f, suffixLen);
    }
    /* This should really qualify as unreachable code */
    return 0;
}
コード例 #10
0
void AutoSMPModelerWidget::loadModel()
{
	ComputationParameters params;
	
	params.setInt(AutoSMPModeler::PARAM_NUMDSTEPS, loadInt(AutoSMPModeler::PARAM_NUMDSTEPS));
	numdstepsEdit->setValue(loadInt(AutoSMPModeler::PARAM_NUMDSTEPS));
	
	params.setInt(AutoSMPModeler::PARAM_NUMSTATES, loadInt(AutoSMPModeler::PARAM_NUMSTATES));
	numstatesEdit->setValue(loadInt(AutoSMPModeler::PARAM_NUMSTATES));
		
	params.setInt(AutoSMPModeler::PARAM_CONFNIVEAU, loadInt(AutoSMPModeler::PARAM_CONFNIVEAU));
	confniveauEdit->setValue(loadInt(AutoSMPModeler::PARAM_CONFNIVEAU));
	
	modeler->setParameters(params);
}
コード例 #11
0
ファイル: head.c プロジェクト: NicoJuicy/SnippingToolPlusPlus
void regSearchWow(const char* keyName, const int searchType)
{
    HKEY hKey;
    if (runtimeBits == INIT_RUNTIME_BITS)
    {
        runtimeBits = loadInt(RUNTIME_BITS);
    }

    if ((runtimeBits & USE_64_BIT_RUNTIME) && wow64)
    {
        debug("64-bit search:\t%s...\n", keyName);
        if (RegOpenKeyEx(HKEY_LOCAL_MACHINE,
                         keyName,
                         0,
                         KEY_READ | KEY_WOW64_64KEY,
                         &hKey) == ERROR_SUCCESS)
        {
            regSearch(hKey, keyName, searchType | KEY_WOW64_64KEY);
            RegCloseKey(hKey);
            if ((foundJava & KEY_WOW64_64KEY) != NO_JAVA_FOUND)
            {
                return;
            }
        }
    }

    if (runtimeBits & USE_32_BIT_RUNTIME)
    {
        debug("32-bit search:\t%s...\n", keyName);
        if (RegOpenKeyEx(HKEY_LOCAL_MACHINE,
                         keyName,
                         0,
                         KEY_READ,
                         &hKey) == ERROR_SUCCESS)
        {
            regSearch(hKey, keyName, searchType);
            RegCloseKey(hKey);
        }
    }
}
コード例 #12
0
ファイル: text.cpp プロジェクト: whztt07/Magic3D-2
Magic3D::XMLElement* Magic3D::TextData::load(XMLElement* root)
{
    if (root)
    {
        text = loadString(root, M3D_TEXT_XML_TEXT);
        if (text.compare(M3D_XML_NULL) == 0)
        {
            text.clear();
        }        
        std::string fontName = loadString(root, M3D_TEXT_XML_FONT);
        if (fontName.compare(M3D_XML_NULL) != 0)
        {
            bool created;
            font = ResourceManager::getFonts()->load(fontName, created);
        }
        textAlignment = (HORIZONTAL_ALIGN)loadInt(root, M3D_TEXT_XML_ALIGNMENT);
        textColor = loadColorRGBA(root, M3D_TEXT_XML_COLOR);
        textSize = loadFloat(root, M3D_TEXT_XML_SIZE);
        changed = true;
    }
    return root;
}
コード例 #13
0
ファイル: head.c プロジェクト: alexchew/antipasto_arduino
int prepare(const char *lpCmdLine) {
	char tmp[MAX_ARGS] = {0};
	hModule = GetModuleHandle(NULL);
	if (hModule == NULL) {
		return FALSE;
	}

	// Get executable path
	char exePath[_MAX_PATH] = {0};
	int pathLen = getExePath(exePath);
	if (pathLen == -1) {
		return FALSE;
	}

	// Initialize logging
    if (strstr(lpCmdLine, "--l4j-debug") != NULL) {
		hLog = openLogFile(exePath, pathLen);
		if (hLog == NULL) {
			return FALSE;
		}
		debug("\n\nCmdLine:\t%s %s\n", exePath, lpCmdLine);
	}

    setWow64Flag();

	// Set default error message, title and optional support web site url.
	loadString(SUPPORT_URL, errUrl);
	loadString(ERR_TITLE, errTitle);
	if (!loadString(STARTUP_ERR, errMsg)) {
		return FALSE;
	}

	// Single instance
	loadString(MUTEX_NAME, mutexName);
	if (*mutexName) {
		SECURITY_ATTRIBUTES security;
		security.nLength = sizeof(SECURITY_ATTRIBUTES);
		security.bInheritHandle = TRUE;
		security.lpSecurityDescriptor = NULL;
		CreateMutexA(&security, FALSE, mutexName);
		if (GetLastError() == ERROR_ALREADY_EXISTS) {
			debug("Instance already exists.");
			return ERROR_ALREADY_EXISTS;
		}
	}

	// Working dir
	char tmp_path[_MAX_PATH] = {0};
	GetCurrentDirectory(_MAX_PATH, oldPwd);
	if (loadString(CHDIR, tmp_path)) {
		strncpy(workingDir, exePath, pathLen);
		appendPath(workingDir, tmp_path);
		_chdir(workingDir);
		debug("Working dir:\t%s\n", workingDir);
	}

	// Use bundled jre or find java
	if (loadString(JRE_PATH, tmp_path)) {
		char jrePath[MAX_ARGS] = {0};
		expandVars(jrePath, tmp_path, exePath, pathLen);
		debug("Bundled JRE:\t%s\n", jrePath);
		if (jrePath[0] == '\\' || jrePath[1] == ':') {
			// Absolute
			strcpy(cmd, jrePath);
		} else {
			// Relative
			strncpy(cmd, exePath, pathLen);
			appendPath(cmd, jrePath);
		}
    }
	if (!isJrePathOk(cmd)) {
		if (!loadString(JAVA_MIN_VER, javaMinVer)) {
			loadString(BUNDLED_JRE_ERR, errMsg);
			return FALSE;
		}
		loadString(JAVA_MAX_VER, javaMaxVer);
		if (!findJavaHome(cmd, loadInt(JDK_PREFERENCE))) {
			loadString(JRE_VERSION_ERR, errMsg);
			strcat(errMsg, " ");
			strcat(errMsg, javaMinVer);
			if (*javaMaxVer) {
				strcat(errMsg, " - ");
				strcat(errMsg, javaMaxVer);
			}
			loadString(DOWNLOAD_URL, errUrl);
			return FALSE;
		}
		if (!isJrePathOk(cmd)) {
			loadString(LAUNCHER_ERR, errMsg);
			return FALSE;
		}
	}

    // Append a path to the Path environment variable
	char jreBinPath[_MAX_PATH];
	strcpy(jreBinPath, cmd);
	strcat(jreBinPath, "\\bin");
	if (!appendToPathVar(jreBinPath)) {
		return FALSE;
	}

	// Set environment variables
	char envVars[MAX_VAR_SIZE] = {0};
	loadString(ENV_VARIABLES, envVars);
	char *var = strtok(envVars, "\t");
	while (var != NULL) {
		char *varValue = strchr(var, '=');
		*varValue++ = 0;
		*tmp = 0;
		expandVars(tmp, varValue, exePath, pathLen);
		debug("Set var:\t%s = %s\n", var, tmp);
		SetEnvironmentVariable(var, tmp);
		var = strtok(NULL, "\t");
	}
	*tmp = 0;

	// Process priority
	priority = loadInt(PRIORITY_CLASS);

	// Custom process name
	const BOOL setProcName = loadBool(SET_PROC_NAME)
			&& strstr(lpCmdLine, "--l4j-default-proc") == NULL;
	const BOOL wrapper = loadBool(WRAPPER);

    char jdk_path[_MAX_PATH] = {0};  // fry
    strcpy(jdk_path, cmd);
    //msgBox(jdk_path);

	appendLauncher(setProcName, exePath, pathLen, cmd);

	// Heap sizes
	appendHeapSizes(args);

    // JVM options
	if (loadString(JVM_OPTIONS, tmp)) {
		strcat(tmp, " ");
	} else {
        *tmp = 0;
    }
	/*
	 * Load additional JVM options from .l4j.ini file
	 * Options are separated by spaces or CRLF
	 * # starts an inline comment
	 */
	strncpy(tmp_path, exePath, strlen(exePath) - 3);
	strcat(tmp_path, "l4j.ini");
	long hFile;
	if ((hFile = _open(tmp_path, _O_RDONLY)) != -1) {
		const int jvmOptLen = strlen(tmp);
		char* src = tmp + jvmOptLen;
		char* dst = src;
		const int len = _read(hFile, src, MAX_ARGS - jvmOptLen - BIG_STR);
		BOOL copy = TRUE;
		int i;
		for (i = 0; i < len; i++, src++) {
			if (*src == '#') {
				copy = FALSE;
			} else if (*src == 13 || *src == 10) {
				copy = TRUE;
				if (dst > tmp && *(dst - 1) != ' ') {
					*dst++ = ' ';
				}
			} else if (copy) {
				*dst++ = *src;
			}
		}
		*dst = 0;
		if (len > 0 && *(dst - 1) != ' ') {
			strcat(tmp, " ");
		}
		_close(hFile);
	}

    // Expand environment %variables%
	expandVars(args, tmp, exePath, pathLen);

	// MainClass + Classpath or Jar
	char mainClass[STR] = {0};
	char jar[_MAX_PATH] = {0};
	loadString(JAR, jar);
	if (loadString(MAIN_CLASS, mainClass)) {
		if (!loadString(CLASSPATH, tmp)) {
			return FALSE;
		}
		char exp[MAX_ARGS] = {0};
		expandVars(exp, tmp, exePath, pathLen);
		strcat(args, "-classpath \"");
		if (wrapper) {
			appendAppClasspath(args, exePath, exp);
		} else if (*jar) {
			appendAppClasspath(args, jar, exp);
		}

	// add tools.jar for JDK  [fry]
	char tools[_MAX_PATH] = { 0 };
	sprintf(tools, "%s\\lib\\tools.jar", jdk_path);
	appendAppClasspath(args, tools, exp);

		// Deal with wildcards or >> strcat(args, exp); <<
		char* cp = strtok(exp, ";");
		while(cp != NULL) {
			debug("Add classpath:\t%s\n", cp);
			if (strpbrk(cp, "*?") != NULL) {
				int len = strrchr(cp, '\\') - cp + 1;
				strncpy(tmp_path, cp, len);
				char* filename = tmp_path + len;
				*filename = 0;
				struct _finddata_t c_file;
				long hFile;
				if ((hFile = _findfirst(cp, &c_file)) != -1L) {
					do {
						strcpy(filename, c_file.name);
						strcat(args, tmp_path);
						strcat(args, ";");
						debug("      \"      :\t%s\n", tmp_path);
					} while (_findnext(hFile, &c_file) == 0);
				}
				_findclose(hFile);
			} else {
				strcat(args, cp);
				strcat(args, ";");
			}
			cp = strtok(NULL, ";");
		}
		*(args + strlen(args) - 1) = 0;

		strcat(args, "\" ");
		strcat(args, mainClass);
	} else if (wrapper) {
       	strcat(args, "-jar \"");
		strcat(args, exePath);
   		strcat(args, "\"");
    } else {
       	strcat(args, "-jar \"");
        strncat(args, exePath, pathLen);
        appendPath(args, jar);
       	strcat(args, "\"");
    }

	// Constant command line args
	if (loadString(CMD_LINE, tmp)) {
		strcat(args, " ");
		strcat(args, tmp);
	}

	// Command line args
	if (*lpCmdLine) {
		strcpy(tmp, lpCmdLine);
		char* dst;
		while ((dst = strstr(tmp, "--l4j-")) != NULL) {
			char* src = strchr(dst, ' ');
			if (src == NULL || *(src + 1) == 0) {
				*dst = 0;
			} else {
				strcpy(dst, src + 1);
			}
		}
		if (*tmp) {
			strcat(args, " ");
			strcat(args, tmp);
		}
	}

	debug("Launcher:\t%s\n", cmd);
	debug("Launcher args:\t%s\n", args);
	debug("Args length:\t%d/32768 chars\n", strlen(args));
	return TRUE;
}
コード例 #14
0
ファイル: MetaConfig.cpp プロジェクト: zhangchuhu/s2s
int MetaConfig::parse()
{
	FILE *fp = fopen(fname.c_str(), "r");
	if(!fp){
		std::cerr << "load file " << fname << " error" << std::endl;
		return -1;
	}

	TiXmlDocument doc;
	doc.LoadFile(fp);

	TiXmlHandle docH( &doc );
	TiXmlHandle meta = docH.FirstChildElement( "conf" ).FirstChildElement( "servers" ).FirstChildElement("meta");
	if(meta.Element()){
		std::string lip;
		loadString(&meta, "ip", lip, "");
		if(lip.empty())
		{
			ip = 0;
		}
		else
		{
			ip = sox::aton_addr(lip.c_str());
			if (ip == INADDR_NONE)
			{
				log(Error, "invalid ip:%s", lip.c_str());
				return -1;
			}
		}
		loadInt(&meta, "session_port", sessionPort, 2001);
		loadInt(&meta, "lostcheck_port", lostCheckPort, 2010);
		loadInt(&meta, "snap_port", snapPort, 2014);
		loadInt(&meta, "sys_port", sysPort, 2018);
		loadInt(&meta, "thread", threadNum, 10);
		loadInt(&meta, "psync_limit", pSyncLogLimit, 10);
		pSyncLogLimit *= 1024;    // kbyte-> byte
		loadBool(&meta, "sync", bsync, false);
		loadBool(&meta, "session_on",isSessionOn, false);
		loadString(&meta, "type", type, "");

		if(type == "daemon")
		{
			// do nothing
		}
		else if(type == "localDaemon")
		{
			// do nothing
		}
		else
		{
			std::cerr << "invalid type" << type << std::endl;
			fclose(fp);
			return -1;
		}
		
		if(!isLocalDaemon()) // daemon
		{
			TiXmlHandle daemon = meta.FirstChildElement("daemon");
			TiXmlHandle node = daemon.FirstChildElement("node");
			if(node.Element())
			{
				loadInt(&node, "gid", gid, -1);
				loadInt(&node, "lid", lid, -1);

				if(gid == -1 || lid == -1){
					std::cerr << "read from config gid:" << gid << " lid:" << lid << " must be set" << std::endl;
					fclose(fp);
					return -1;
				}
			}
			else
			{
				std::cerr << "xml path conf.servers.meta.node not found" << std::endl;
				fclose(fp);
				return -1;
			}
			TiXmlHandle db = daemon.FirstChildElement("db").FirstChildElement("mysql");
			if(db.Element()){
				loadString(&db, "host", config.host, "localhost");
				loadInt(&db, "port", config.port, 3306);
				loadString(&db, "user", config.user, "root");
				loadString(&db, "passwd", config.passwd, "");
				loadString(&db, "database", config.database, "daemon");
				loadString(&db, "charset", config.charset, "utf8");
			}else{
				config.host = "localhost";
				config.port = 3306;
				config.user = "******";
				config.passwd = "";
				config.database = "daemon";
				config.charset = "utf8";
				log(Debug, "use default mysql config setting");
			}
			
			int ret = flushNodeSrvs(&daemon);
			if(ret != 0){
				fclose(fp);
				return ret;
			}
		}
		else // localDaemon
		{
			TiXmlHandle localdaemon = meta.FirstChildElement("localdaemon");
			if(localdaemon.Element()){
				loadString(&localdaemon,"luser", luser,"");
				loadString(&localdaemon,"lpasswd", lpasswd,"");
				loadString(&localdaemon,"chost", chost,"meta.yy.com");
				loadString(&localdaemon,"lname",lname,"");
				loadInt(&localdaemon, "csession_port", cSessionPort, 2001);
				loadInt(&localdaemon, "csnap_port", cSnapPort, 2014);
				loadInt(&localdaemon, "groupid", groupId, -1);
				loadString(&localdaemon,"db_path", dbPath, "");
				if(groupId == -1 || lname.empty() || dbPath.empty())
				{
					std::cerr << "read from config ,lname, dbPath and groupId:" << groupId <<" must be set at localDaemon" << std::endl;
					fclose(fp);
					return -1;
				}
			}
		}
	}
	fclose(fp);
	return 0;
}
コード例 #15
0
ファイル: head.c プロジェクト: NicoJuicy/SnippingToolPlusPlus
int prepare(const char *lpCmdLine)
{
    char tmp[MAX_ARGS] = {0};
    hModule = GetModuleHandle(NULL);
    if (hModule == NULL)
    {
        return FALSE;
    }

    // Get executable path
    char exePath[_MAX_PATH] = {0};
    int pathLen = getExePath(exePath);
    if (pathLen == -1)
    {
        return FALSE;
    }

    if (!initializeLogging(lpCmdLine, exePath, pathLen))
    {
        return FALSE;
    }

    debug("\n\nVersion:\t%s\n", VERSION);
    debug("CmdLine:\t%s %s\n", exePath, lpCmdLine);
    setWow64Flag();

    // Set default error message, title and optional support web site url.
    loadString(SUPPORT_URL, errUrl);
    loadString(ERR_TITLE, errTitle);
    if (!loadString(STARTUP_ERR, errMsg))
    {
        debug(ERROR_FORMAT, "Startup error message not defined.");
        return FALSE;
    }

    // Single instance
    loadString(MUTEX_NAME, mutexName);
    if (*mutexName)
    {
        SECURITY_ATTRIBUTES security;
        security.nLength = sizeof(SECURITY_ATTRIBUTES);
        security.bInheritHandle = TRUE;
        security.lpSecurityDescriptor = NULL;
        CreateMutexA(&security, FALSE, mutexName);
        if (GetLastError() == ERROR_ALREADY_EXISTS)
        {
            debug(ERROR_FORMAT, "Instance already exists.");
            return ERROR_ALREADY_EXISTS;
        }
    }

    // Working dir
    char tmp_path[_MAX_PATH] = {0};
    GetCurrentDirectory(_MAX_PATH, oldPwd);
    if (loadString(CHDIR, tmp_path))
    {
        strncpy(workingDir, exePath, pathLen);
        appendPath(workingDir, tmp_path);
        _chdir(workingDir);
        debug("Working dir:\t%s\n", workingDir);
    }

    // Use bundled jre or find java
    if (loadString(JRE_PATH, tmp_path))
    {
        char jrePath[MAX_ARGS] = {0};
        expandVars(jrePath, tmp_path, exePath, pathLen);
        debug("Bundled JRE:\t%s\n", jrePath);
        if (jrePath[0] == '\\' || jrePath[1] == ':')
        {
            // Absolute
            strcpy(cmd, jrePath);
        }
        else
        {
            // Relative
            strncpy(cmd, exePath, pathLen);
            appendPath(cmd, jrePath);
        }

        if (isLauncherPathValid(cmd))
        {
            foundJava = (wow64 && loadBool(BUNDLED_JRE_64_BIT))
                        ? FOUND_BUNDLED | KEY_WOW64_64KEY
                        : FOUND_BUNDLED;
        }
    }

    if (foundJava == NO_JAVA_FOUND)
    {
        if (!loadString(JAVA_MIN_VER, javaMinVer))
        {
            loadString(BUNDLED_JRE_ERR, errMsg);
            return FALSE;
        }

        loadString(JAVA_MAX_VER, javaMaxVer);
        if (!findJavaHome(cmd, loadInt(JDK_PREFERENCE)))
        {
            loadString(JRE_VERSION_ERR, errMsg);
            strcat(errMsg, " ");
            strcat(errMsg, javaMinVer);

            if (*javaMaxVer)
            {
                strcat(errMsg, " - ");
                strcat(errMsg, javaMaxVer);
            }

            if (runtimeBits == USE_64_BIT_RUNTIME
                    || runtimeBits == USE_32_BIT_RUNTIME)
            {
                strcat(errMsg, " (");
                strcat(errMsg, runtimeBits == USE_64_BIT_RUNTIME ? "64" : "32");
                strcat(errMsg, "-bit)");
            }

            if (corruptedJreFound)
            {
                char launcherErrMsg[BIG_STR] = {0};

                if (loadString(LAUNCHER_ERR, launcherErrMsg))
                {
                    strcat(errMsg, "\n");
                    strcat(errMsg, launcherErrMsg);
                }
            }

            loadString(DOWNLOAD_URL, errUrl);
            return FALSE;
        }
    }

    // Store the JRE Home Dir
    strcpy(jreHomeDir, cmd);

    // Append a path to the Path environment variable
    char jreBinPath[_MAX_PATH] = {0};
    strcpy(jreBinPath, cmd);
    strcat(jreBinPath, "\\bin");
    if (!appendToPathVar(jreBinPath))
    {
        debug(ERROR_FORMAT, "appendToPathVar failed.");
        return FALSE;
    }

    // Set environment variables
    char envVars[MAX_VAR_SIZE] = {0};
    loadString(ENV_VARIABLES, envVars);
    char *var = strtok(envVars, "\t");
    while (var != NULL)
    {
        char *varValue = strchr(var, '=');
        *varValue++ = 0;
        *tmp = 0;
        expandVars(tmp, varValue, exePath, pathLen);
        debug("Set var:\t%s = %s\n", var, tmp);
        SetEnvironmentVariable(var, tmp);
        var = strtok(NULL, "\t");
    }
    *tmp = 0;

    // Process priority
    priority = loadInt(PRIORITY_CLASS);

    // Launcher
    appendJavaw(cmd);

    // Heap sizes
    appendHeapSizes(args);

    // JVM options
    char jvmOptions[MAX_ARGS] = {0};
    setJvmOptions(jvmOptions, exePath);

    // Expand environment %variables%
    expandVars(args, jvmOptions, exePath, pathLen);

    // MainClass + Classpath or Jar
    char mainClass[STR] = {0};
    char jar[_MAX_PATH] = {0};

    const BOOL wrapper = loadBool(WRAPPER);
    loadString(JAR, jar);

    if (loadString(MAIN_CLASS, mainClass))
    {
        if (!loadString(CLASSPATH, tmp))
        {
            debug("Info:\t\tClasspath not defined.\n");
        }
        char exp[MAX_ARGS] = {0};
        expandVars(exp, tmp, exePath, pathLen);
        strcat(args, "-classpath \"");
        if (wrapper)
        {
            appendAppClasspath(args, exePath);
        }
        else if (*jar)
        {
            appendAppClasspath(args, jar);
        }

        // Deal with wildcards or >> strcat(args, exp); <<
        char* cp = strtok(exp, ";");
        while(cp != NULL)
        {
            debug("Add classpath:\t%s\n", cp);
            if (strpbrk(cp, "*?") != NULL)
            {
                int len = strrchr(cp, '\\') - cp + 1;
                strncpy(tmp_path, cp, len);
                char* filename = tmp_path + len;
                *filename = 0;
                struct _finddata_t c_file;
                long hFile;
                if ((hFile = _findfirst(cp, &c_file)) != -1L)
                {
                    do
                    {
                        strcpy(filename, c_file.name);
                        appendAppClasspath(args, tmp_path);
                        debug("      \"      :\t%s\n", tmp_path);
                    } while (_findnext(hFile, &c_file) == 0);
                }
                _findclose(hFile);
            }
            else
            {
                appendAppClasspath(args, cp);
            }
            cp = strtok(NULL, ";");
        }
        *(args + strlen(args) - 1) = 0;

        strcat(args, "\" ");
        strcat(args, mainClass);
    }
    else if (wrapper)
    {
        strcat(args, "-jar \"");
        strcat(args, exePath);
        strcat(args, "\"");
    }
    else
    {
        strcat(args, "-jar \"");
        strncat(args, exePath, pathLen);
        appendPath(args, jar);
        strcat(args, "\"");
    }

    // Constant command line args
    if (loadString(CMD_LINE, tmp))
    {
        strcat(args, " ");
        strcat(args, tmp);
    }

    // Command line args
    if (*lpCmdLine)
    {
        strcpy(tmp, lpCmdLine);
        char* dst;
        while ((dst = strstr(tmp, "--l4j-")) != NULL)
        {
            char* src = strchr(dst, ' ');
            if (src == NULL || *(src + 1) == 0)
            {
                *dst = 0;
            }
            else
            {
                strcpy(dst, src + 1);
            }
        }
        if (*tmp)
        {
            strcat(args, " ");
            strcat(args, tmp);
        }
    }

    debug("Launcher:\t%s\n", cmd);
    debug("Launcher args:\t%s\n", args);
    debug("Args length:\t%d/32768 chars\n", strlen(args));
    return TRUE;
}
コード例 #16
0
ファイル: Interpreter.cpp プロジェクト: nvmd/spbau-mathvm
void Interpreter::executeFun(uint16_t id)
{

	_bc = ((BytecodeFunction*)_code->functionById(id))->bytecode();
    _insPtr = 0;

	Instruction inst;
    while (true) {
    	inst = nextInsn();
    	//cout << "Current instruction " << inst << endl;
    	//cout << "__STACK:" << endl;
        //printStack();
        switch (inst) {

            case BC_INVALID:
                _out << inst << " Invalid instruction" << endl;
                assert(false);
            	break;
        	case BC_DLOAD:

        		loadDouble();
        		break;
        	case BC_ILOAD:
                loadInt();
        		break;
        	case BC_SLOAD:
                loadString();
        		break;
        	case BC_DLOAD0:

        		_out << inst << " Not implemented" << endl;
        		assert(false);
        		break;
        	case BC_ILOAD0:
            	pushInt(0);
        		break;
        	case BC_SLOAD0:

        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_DLOAD1:

        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_ILOAD1:
                pushInt(1);
            	break;
        	case BC_DLOADM1:

        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_ILOADM1:
        		pushInt(-1);
        		break;
        	case BC_DADD:
        		addDoubles();
        		break;
        	case BC_IADD:
                addInts();
            	break;
        	case BC_DSUB:

        		subDoubles();
        		break;
        	case BC_ISUB:
                subInts();
        		break;
        	case BC_DMUL:
                dMul();
        		break;
        	case BC_IMUL:
                iMul();
        		break;
        	case BC_DDIV:
        		divDoubles();
        		break;
        	case BC_IDIV:
        		divInts();
        		break;
        	case BC_IMOD:

        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_DNEG:
        		dNeg();
        		break;
        	case BC_INEG:
        		iNeg();
        		break;
        	case BC_IPRINT:
        		printInt();
        		break;
        	case BC_DPRINT:
                printDouble();
        		break;
        	case BC_SPRINT:
        		printString();
        		break;
        	case BC_I2D:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_D2I:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_S2I:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_SWAP:
                swap();
        		break;
        	case BC_POP:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_LOADDVAR0:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_LOADDVAR1:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_LOADDVAR2:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_LOADDVAR3:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_LOADIVAR0:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_LOADIVAR1:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_LOADIVAR2:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_LOADIVAR3:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_LOADSVAR0:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_LOADSVAR1:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_LOADSVAR2:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_LOADSVAR3:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_STOREDVAR0:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_STOREDVAR1:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_STOREDVAR2:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_STOREDVAR3:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_STOREIVAR0:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_STOREIVAR1:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_STOREIVAR2:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_STOREIVAR3:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_STORESVAR0:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_STORESVAR1:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_STORESVAR2:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_STORESVAR3:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_LOADDVAR:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_LOADIVAR:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_LOADSVAR:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_STOREDVAR:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_STOREIVAR:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_STORESVAR:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_LOADCTXDVAR:
                loadCtxDouble();
        		break;
        	case BC_LOADCTXIVAR:
                loadCtxInt();
        		break;
        	case BC_LOADCTXSVAR:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_STORECTXDVAR:
        		storeCtxDouble();
            	break;
        	case BC_STORECTXIVAR:
                storeCtxInt();
        		break;
        	case BC_STORECTXSVAR:
        		_out << inst << " STORE STRING ? Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_DCMP:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_ICMP:
                compareInts();
        		break;
        	case BC_JA:
                jumpAlways();
        		break;
        	case BC_IFICMPNE:
        		intsNotEqualJMP();
        		break;
        	case BC_IFICMPE:
                intsEqualJMP();
        		break;
        	case BC_IFICMPG:
        		GJump();
        		break;
        	case BC_IFICMPGE:
        		GEJump();
        		break;
        	case BC_IFICMPL:
        		//cout << "IFLESS" << endl;
                assert(false);
        		break;
        	case BC_IFICMPLE:
        	    LEJump();
        	    break;
        	case BC_DUMP:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_STOP:
        		this->popContext();
        		return;
        	case BC_CALL:
        		//cout << "CALLING. STACK SIZE: " << _stack.size() << endl;
        		call();
        		break;
        	case BC_CALLNATIVE:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	case BC_RETURN:
        		doReturn();
        		break;
        	case BC_BREAK:
        		_out << inst << " Not implemented" << endl;
                exit(EXIT_FAILURE);
            	break;
        	default:
                _out << "Bad instruction" << endl;
         		break;
        }




    }

    this->popContext();
}
コード例 #17
0
void GeneticFrameModelerWidget::loadModel()
{
	ComputationParameters params;

	params.setInt(GeneticFrameModeler::PARAM_NUMDSTEPS, loadInt(GeneticFrameModeler::PARAM_NUMDSTEPS));
	numdstepsEdit->setValue(loadInt(GeneticFrameModeler::PARAM_NUMDSTEPS));

	params.setInt(GeneticFrameModeler::PARAM_NUMSTATES, loadInt(GeneticFrameModeler::PARAM_NUMSTATES));
	numstatesEdit->setValue(loadInt(GeneticFrameModeler::PARAM_NUMSTATES));

	params.setInt(GeneticFrameModeler::PARAM_AUTOC, loadInt(GeneticFrameModeler::PARAM_AUTOC));
	numautocEdit->setValue(loadInt(GeneticFrameModeler::PARAM_AUTOC));

	params.setInt(GeneticFrameModeler::PARAM_NUMITERATIONS, loadInt(GeneticFrameModeler::PARAM_NUMITERATIONS));
	numiterationsEdit->setValue(loadInt(GeneticFrameModeler::PARAM_NUMITERATIONS));

	params.setInt(GeneticFrameModeler::PARAM_NUMPOOLSIZE, loadInt(GeneticFrameModeler::PARAM_NUMPOOLSIZE));
	numpoolEdit->setValue(loadInt(GeneticFrameModeler::PARAM_NUMPOOLSIZE));

	params.setReal(GeneticFrameModeler::PARAM_MUTBLOCK, loadReal(GeneticFrameModeler::PARAM_MUTBLOCK));
	mutBlock->setValue(_double ( loadReal(GeneticFrameModeler::PARAM_MUTBLOCK) ));

	params.setReal(GeneticFrameModeler::PARAM_MUTINVERSE, loadReal(GeneticFrameModeler::PARAM_MUTINVERSE));
	mutInverse->setValue(_double ( loadReal(GeneticFrameModeler::PARAM_MUTINVERSE) ));

	params.setReal(GeneticFrameModeler::PARAM_MUTSHUFFLE, loadReal(GeneticFrameModeler::PARAM_MUTSHUFFLE));
	mutShuffle->setValue(_double ( loadReal(GeneticFrameModeler::PARAM_MUTSHUFFLE) ));

	params.setReal(GeneticFrameModeler::PARAM_MUTSWAP, loadReal(GeneticFrameModeler::PARAM_MUTSWAP));
	mutSwap->setValue(_double ( loadReal(GeneticFrameModeler::PARAM_MUTSWAP) ));

	params.setReal(GeneticFrameModeler::PARAM_MUTCROSSOVER, loadReal(GeneticFrameModeler::PARAM_MUTCROSSOVER));
	mutCrossover->setValue(_double ( loadReal(GeneticFrameModeler::PARAM_MUTCROSSOVER) ));

	params.setInt( GeneticFrameModeler::PARAM_FRAMELEVEL, loadInt(GeneticFrameModeler::PARAM_FRAMELEVEL));
	framelevel->setValue( loadInt( GeneticFrameModeler::PARAM_FRAMELEVEL ) );

	modeler->setParameters(params);
}