Example #1
0
//solve thread proc
int FindSolution()
{
	int num_symbols;
	char key[4096];
	SYMBOL symbol;

	if(!bMsgLoaded) return 0;



	if(iSolveType==SOLVE_HOMO)
	{
		num_symbols=message.cur_map.GetNumSymbols();

		//if best key is blank, set it to empty symbols + extra letters
		if(!strlen(siSolveInfo.best_key))
			message.cur_map.ToKey(siSolveInfo.best_key,szExtraLtr);

		//key=program map + additional chars of best key
		message.cur_map.ToKey(key,siSolveInfo.best_key+num_symbols);

		for(int cur_symbol=0; cur_symbol<num_symbols; cur_symbol++)
		{
			message.cur_map.GetSymbol(cur_symbol,&symbol);
		}

		hillclimb(message,message.GetCipher(),message.GetLength(),key,false);
	}

	StopSolve(); //reset window state


	StopNotify();
	return 0;
}
CNsmlNetworkStatusEngine::~CNsmlNetworkStatusEngine( )
{
	DBG_FILE(_S8("~CNsmlNetworkStatusEngine Destructor starts  "));
	StopNotify();
	iConnectionMonitor.Close();
	if ( iTimedExecuteStopSession ) 
    {
     iTimedExecuteStopSession->Cancel();
     delete iTimedExecuteStopSession;
     iTimedExecuteStopSession = NULL;
     }
    DBG_FILE(_S8("~CNsmlNetworkStatusEngine Destructor ENDs  "));     
            
}