示例#1
0
int ServerLiason::ExecuteThread(void* data) {
	while (hasStarted) {
		if (!executeQueue->empty()) {
			CommandPacket* packet = executeQueue->pop();
			packet->Execute();
			delete packet;
			packet = nullptr;
		}
	}

	return 0;
}
示例#2
0
文件: Command.cpp 项目: kjgregory/SAS
int CommandQueue::add_packet(CommandPacket &cp)
{
    if(!cp.valid()) throw cpInvalidException;

    Command cm(0x10ff, 0xffff);
    int count = 0;

    while(cp.remainingBytes() > 0) {
        cp.readNextCommandTo(cm);
        *this << cm;
        count++;
    }

    return count;
}
示例#3
0
int pool_worker_function(void *data)
{
	WorkerData *wd = (WorkerData*)data;
	ThreadPool *pool = wd->pool;
	int index = wd->threadIndex;
	pool->incActiveThreads();
	CommandPacket* item = pool->workQue.pop();
	//std::cout << "thread " << index << " gets work item " << item.workFunc << std::endl;
	while (item)
	{
		item->Execute();
		item = pool->workQue.pop();
		//std::cout << "thread gets work item " << item.workFunc << std::endl;
	}
	std::cout << "worker decrementing thread count\n";
	pool->decActiveThreads(index);
	std::cout << "worker terminating\n";
	return 0;
}
示例#4
0
int main(int argc, char *argv[])
{
	UDPReceiver udpreceiver = UDPReceiver( CTL_CMD_PORT );

	udpreceiver.init_connection();
	while(1){
		uint16_t packet_length = udpreceiver.listen();
		if( packet_length != 0){
			uint8_t *packet = new uint8_t[packet_length];
			udpreceiver.get_packet( packet );
		
			CommandPacket cp = CommandPacket( packet, packet_length);
			if (cp.valid()){
				std::cout << cp << std::endl;
			}
			free(packet);
		}
	}
	exit(0);
}
示例#5
0
int main(int argc, char *argv[])
{
    UDPReceiver udpreceiver = UDPReceiver( CTL_CMD_PORT );

    udpreceiver.init_connection();
    while(1){
        //printf("Started to listen\n");
        uint16_t packet_length = udpreceiver.listen();
        //printf("Finished listening. Packet length was %u\n", packet_length);
        if( packet_length != 0){
            uint8_t *packet = new uint8_t[packet_length];
            udpreceiver.get_packet( packet );
        
            CommandPacket cp = CommandPacket( packet, packet_length);
            if (cp.valid()){
                std::cout << cp << std::endl;
            }
            delete packet;
        }
    }
    exit(0);
}