Пример #1
0
int main(){
	int _l[LC_LEN]; char c[2];

	initLock(_l);

	printf(	"\nSecurity Lock v1.0\n"
			"-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n"
			"Make all the lock values %i\n\n"
			"Key: 1-8 turns locks\n"
			"     r Resets the locks\n"
			"     q exits the program\n\n",
			LC_TARG);

	while(!checkLock(_l)) {
		printLock(_l);
		
		do {
			printf("Move < 1-8, r, q >: "); fflush(NULL);
			read(STDIN_FILENO, c, 2);
		} while (!validateInput(c[0]));

		if(c[0] == 'r' || c[0] == 'R') {
			initLock(_l);
			continue;
		}

		moveLock(_l, c[0]-0x30);
	}

	printLock(_l);
	printf("All locks are open!\n");
	printf("Your password is d%kj1//..");


	return EXIT_SUCCESS;
}
void WordFinder::HandleEvent(const uint32_t eventNo, const EventDataBase* dataPtr)
{
	if(WORD_FINDER_JOB_FINISHED == eventNo)
	{
		const WordFinderJobFinishedEventData* eventDataPtr = static_cast<const WordFinderJobFinishedEventData*>(dataPtr);

		if(eventDataPtr->instanceId == instanceNo)
		{
			JobDispatcher::GetApi()->UnsubscribeToEvent(WORD_FINDER_JOB_FINISHED, this);
			JobDispatcher::GetApi()->Log("String: %s, Word: %s, No of occurrences: %d",
					                      jobData.wordString.c_str(),
										  jobData.wordToFind.c_str(),
										  jobData.noOfOccurances);

			std::lock_guard<std::mutex> printLock(instanceMutex);
			std::cout<<"String: "<<jobData.wordString<<". Word: "<<jobData.wordToFind<<". No of occurrences: "<<jobData.noOfOccurances<<std::endl;
		}
	}
}