コード例 #1
0
int main(int argc, char **argv)
{
	// if (argc < 3)
 //    {
	// 	USAGE(argv[0]);
 //        return EXIT_FAILURE;
 //    }

	// // check if we should set broker ip file(s)
	// if (argc > 3)
	// 	setFile(BROKERTXT, argv[3]);
	// if (argc > 4)
	// 	setFile(BROKER2TXT, argv[4]);

    // char *phpScript = argv[1];

    int numProcesses = atoi(argv[1]);
    if (numProcesses > MAX || numProcesses <= 0)
    {
        USAGE(argv[0]);
        return EXIT_FAILURE;
    }

    executeScripts(RECEIVER_GET, numProcesses);
    executeScripts(RECEIVER_MODIFY, numProcesses);
    executeScripts(RECEIVER_RENAME, numProcesses);
    executeScripts(RECEIVER_SEARCH, numProcesses);

    return EXIT_SUCCESS;
}
コード例 #2
0
void EventUpdateManager::run() {
	while(!d->stopEvent->isSignaled()) {
		if (!d->eventHandler.waitForAny()) {
			continue;
		}

		if(d->clientConnectEvent->isSignaled()) {
			// new client added
			TelldusCore::EventDataRef eventData = d->clientConnectEvent->takeSignal();
			ConnectionListenerEventData *data = dynamic_cast<ConnectionListenerEventData*>(eventData.get());
			if(data) {
				d->clients.push_back(data->socket);
			}
		} else if(d->updateEvent->isSignaled()) {
			// device event, signal all clients
			TelldusCore::EventDataRef eventData = d->updateEvent->takeSignal();
			EventUpdateData *data = reinterpret_cast<EventUpdateData*>(eventData.get());
			if(data) {
				sendMessageToClients(data);
				executeScripts(data);
			}
		}
	}
}