コード例 #1
0
ファイル: NetworkTests.cpp プロジェクト: findepi/synergy
void 
NetworkTests::sendToServer_mockFile_fileRecieveCompleted(const CEvent& event, void*)
{
	CServer* server = reinterpret_cast<CServer*>(event.getTarget());
	EXPECT_TRUE(server->isReceivedFileSizeValid());

	m_events.raiseQuitEvent();
}
コード例 #2
0
ファイル: NetworkTests.cpp プロジェクト: findepi/synergy
void 
NetworkTests::sendToClient_mockFile_fileRecieveCompleted(const CEvent& event, void*)
{
	CClient* client = reinterpret_cast<CClient*>(event.getTarget());
	EXPECT_TRUE(client->isReceivedFileSizeValid());

	m_events.raiseQuitEvent();
}
コード例 #3
0
ファイル: CIpcTests.cpp プロジェクト: h00kwurm/synergy
void
CIpcTests::sendMessageToClient_clientHandleMessageReceived(const CEvent& e, void*)
{
	CIpcMessage* m = static_cast<CIpcMessage*>(e.getDataObject());
	if (m->m_type == kIpcLogLine) {
		CIpcLogLineMessage* llm = static_cast<CIpcLogLineMessage*>(m);
		LOG((CLOG_DEBUG "got ipc log message, %d", llm->logLine().c_str()));
		m_sendMessageToClient_receivedString = llm->logLine();
		m_events.raiseQuitEvent();
	}
}
コード例 #4
0
ファイル: CIpcTests.cpp プロジェクト: h00kwurm/synergy
void
CIpcTests::connectToServer_handleMessageReceived(const CEvent& e, void*)
{
	CIpcMessage* m = static_cast<CIpcMessage*>(e.getDataObject());
	if (m->m_type == kIpcHello) {
		m_connectToServer_hasClientNode =
			m_connectToServer_server->hasClients(kIpcClientNode);
		m_connectToServer_helloMessageReceived = true;
		m_events.raiseQuitEvent();
	}
}
コード例 #5
0
ファイル: CIpcTests.cpp プロジェクト: h00kwurm/synergy
void
CIpcTests::sendMessageToServer_serverHandleMessageReceived(const CEvent& e, void*)
{
	CIpcMessage* m = static_cast<CIpcMessage*>(e.getDataObject());
	if (m->m_type == kIpcHello) {
		LOG((CLOG_DEBUG "client said hello, sending test to server"));
		CIpcCommandMessage m("test", true);
		m_sendMessageToServer_client->send(m);
	}
	else if (m->m_type == kIpcCommand) {
		CIpcCommandMessage* cm = static_cast<CIpcCommandMessage*>(m);
		LOG((CLOG_DEBUG "got ipc command message, %d", cm->command().c_str()));
		m_sendMessageToServer_receivedString = cm->command();
		m_events.raiseQuitEvent();
	}
}
コード例 #6
0
ファイル: NetworkTests.cpp プロジェクト: findepi/synergy
void 
NetworkTests::sendMockData(void* eventTarget)
{
	// send first message (file size)
	CString size = intToString(kMockDataSize);
	size_t sizeLength = size.size();
	CFileChunker::CFileChunk* sizeMessage = new CFileChunker::CFileChunk(sizeLength + 2);
	char* chunkData = sizeMessage->m_chunk;

	chunkData[0] = kFileStart;
	memcpy(&chunkData[1], size.c_str(), sizeLength);
	chunkData[sizeLength + 1] = '\0';
	m_events.addEvent(CEvent(m_events.forIScreen().fileChunkSending(), eventTarget, sizeMessage));

	// send chunk messages with incrementing chunk size
	size_t lastSize = 0;
	size_t sentLength = 0;
	while (true) {
		size_t chunkSize = lastSize + kMockDataChunkIncrement;

		// make sure we don't read too much from the mock data.
		if (sentLength + chunkSize > kMockDataSize) {
			chunkSize = kMockDataSize - sentLength;
		}

		// first byte is the chunk mark, last is \0
		CFileChunker::CFileChunk* fileChunk = new CFileChunker::CFileChunk(chunkSize + 2);
		char* chunkData = fileChunk->m_chunk;

		chunkData[0] = kFileChunk;
		memcpy(&chunkData[1], &m_mockData[sentLength], chunkSize);
		chunkData[chunkSize + 1] = '\0';
		m_events.addEvent(CEvent(m_events.forIScreen().fileChunkSending(), eventTarget, fileChunk));

		sentLength += chunkSize;
		lastSize = chunkSize;

		if (sentLength == kMockDataSize) {
			break;
		}

	}
	
	// send last message
	CFileChunker::CFileChunk* transferFinished = new CFileChunker::CFileChunk(2);
	chunkData = transferFinished->m_chunk;

	chunkData[0] = kFileEnd;
	chunkData[1] = '\0';
	m_events.addEvent(CEvent(m_events.forIScreen().fileChunkSending(), eventTarget, transferFinished));
}