📄 ypclient.cpp
字号:
nBufLen = 0;
nRes = m_pSocket->NBRead(pBuffer, sizeof(char) + sizeof(int), &nBytes,
YP::nTimeout);
if ((nRes != -1) && (nBytes == (sizeof(char) + sizeof(int))) &&
(pBuffer[0] == YP::StatusSuccess))
{
memcpy(&nBufLen, &pBuffer[sizeof(char)], sizeof(int));
if (nBufLen != 0)
{
delete [] pBuffer;
pBuffer = new char[nBufLen+1];
pBuffer[nBufLen] = '\0';
nOffset = 0;
while ((nOffset < nBufLen) && (nRes != -1))
{
nRes = m_pSocket->Read(&pBuffer[nOffset], nBufLen - nOffset,
&nBytes);
nOffset += nBytes;
}
nBytes = nOffset;
nOffset = 0;
strGUID = &pBuffer[nOffset];
nOffset += strGUID.size() + sizeof(char);
nRes = 0;
}
}
else
{
nRes = -1;
}
if (pBuffer != NULL)
delete [] pBuffer;
this->Disconnect();
return nRes;
}
int YPClient::GetStreams(StreamList& ResultList, string& strUID, string&
strCollectionID)
{
AutoMutex AM(m_pMutex);
int nConRes = this->Connect(m_strIP, m_nPort);
if (nConRes != 0)
return -1;
int nBufLen, nOffset, nBytes, nTemp, nRes;
nBufLen = sizeof(char) + sizeof(int);
nOffset = nBufLen;
nBufLen += strUID.size() + sizeof(char);
nBufLen += strCollectionID.size() + sizeof(char);
char* pBuffer = new char[nBufLen];
memset(pBuffer, 0x00, nBufLen);
pBuffer[0] = YP::GetStreams;
nBufLen -= nOffset;
memcpy(&pBuffer[1], &nBufLen, sizeof(int));
nBufLen += nOffset;
nTemp = strUID.size();
memcpy(&pBuffer[nOffset], strUID.c_str(), nTemp);
nOffset += nTemp;
pBuffer[nOffset] = '\0';
nOffset += sizeof(char);
nTemp = strCollectionID.size();
memcpy(&pBuffer[nOffset], strCollectionID.c_str(), nTemp);
nOffset += nTemp;
pBuffer[nOffset] = '\0';
nOffset += sizeof(char);
nBytes = 0;
nRes = m_pSocket->Write(pBuffer, nBufLen, &nBytes);
nBufLen = 0;
nRes = m_pSocket->NBRead(pBuffer, sizeof(char) + sizeof(int), &nBytes,
YP::nTimeout);
if ((nRes != -1) && (nBytes == (sizeof(char) + sizeof(int))) &&
(pBuffer[0] == YP::StatusSuccess))
{
memcpy(&nBufLen, &pBuffer[sizeof(char)], sizeof(int));
if (nBufLen != 0)
{
delete [] pBuffer;
pBuffer = new char[nBufLen+1];
pBuffer[nBufLen] = '\0';
nOffset = 0;
while ((nOffset < nBufLen) && (nRes != -1))
{
nRes = m_pSocket->Read(&pBuffer[nOffset], nBufLen - nOffset,
&nBytes);
nOffset += nBytes;
}
nBytes = nOffset;
nOffset = 0;
FromBuffer(ResultList, &pBuffer[nOffset], nTemp);
nOffset += nTemp;
nRes = 0;
}
}
else
{
nRes = -1;
}
if (pBuffer != NULL)
delete [] pBuffer;
this->Disconnect();
return nRes;
}
int YPClient::DeleteProfile(string& strUID)
{
AutoMutex AM(m_pMutex);
int nConRes = this->Connect(m_strIP, m_nPort);
if (nConRes != 0)
return -1;
int nBufLen, nOffset, nBytes, nTemp, nRes;
nBufLen = sizeof(char) + sizeof(int);
nOffset = nBufLen;
nBufLen += strUID.size() + sizeof(char);
char* pBuffer = new char[nBufLen];
memset(pBuffer, 0x00, nBufLen);
pBuffer[0] = YP::DeleteProfile;
nBufLen -= nOffset;
memcpy(&pBuffer[1], &nBufLen, sizeof(int));
nBufLen += nOffset;
nTemp = strUID.size();
memcpy(&pBuffer[nOffset], strUID.c_str(), nTemp);
nOffset += nTemp;
pBuffer[nOffset] = '\0';
nOffset += sizeof(char);
nBytes = 0;
nRes = m_pSocket->Write(pBuffer, nBufLen, &nBytes);
delete [] pBuffer;
pBuffer = NULL;
char cRetVal = '\0';
nRes = m_pSocket->NBRead(&cRetVal, sizeof(char), &nBytes, YP::nTimeout);
if ((nRes != -1) && (cRetVal == YP::StatusSuccess))
nRes = 0;
else
nRes = -1;
this->Disconnect();
return nRes;
}
int YPClient::SyncLog(EventLog& TheLog, string& strUID)
{
AutoMutex AM(m_pMutex);
int nConRes = this->Connect(m_strIP, m_nPort);
if (nConRes != 0)
return -1;
int nBufLen, nOffset, nBytes, nTemp, nRes;
nBufLen = sizeof(char) + sizeof(int);
nOffset = nBufLen;
nBufLen += BufSize(TheLog);
nBufLen += strUID.size() + sizeof(char);
char* pBuffer = new char[nBufLen];
memset(pBuffer, 0x00, nBufLen);
pBuffer[0] = YP::SyncLog;
nBufLen -= nOffset;
memcpy(&pBuffer[1], &nBufLen, sizeof(int));
nBufLen += nOffset;
ToBuffer(TheLog, &pBuffer[nOffset], nTemp);
nOffset += nTemp;
nTemp = strUID.size();
memcpy(&pBuffer[nOffset], strUID.c_str(), nTemp);
nOffset += nTemp;
pBuffer[nOffset] = '\0';
nOffset += sizeof(char);
nBytes = 0;
nRes = m_pSocket->Write(pBuffer, nBufLen, &nBytes);
delete [] pBuffer;
pBuffer = NULL;
char cRetVal = '\0';
nRes = m_pSocket->NBRead(&cRetVal, sizeof(char), &nBytes, YP::nTimeout);
if ((nRes != -1) && (cRetVal == YP::StatusSuccess))
nRes = 0;
else
nRes = -1;
this->Disconnect();
return nRes;
}
int YPClient::SoundsLike(APSPlaylist& ResultList, APSPlaylist& SeedList,
string& strCollectionID)
{
AutoMutex AM(m_pMutex);
int nConRes = this->Connect(m_strIP, m_nPort);
if (nConRes != 0) return -1;
int nBufLen, nOffset, nBytes, nTemp, nRes;
nBufLen = sizeof(char) + sizeof(int);
nOffset = nBufLen;
nBufLen += BufSize(SeedList);
nBufLen += strCollectionID.size() + sizeof(char);
char* pBuffer = new char[nBufLen];
memset(pBuffer, 0x00, nBufLen);
pBuffer[0] = YP::SoundsLike;
nBufLen -= nOffset;
memcpy(&pBuffer[1], &nBufLen, sizeof(int));
nBufLen += nOffset;
ToBuffer(SeedList, &pBuffer[nOffset], nTemp);
nOffset += nTemp;
nTemp = strCollectionID.size();
memcpy(&pBuffer[nOffset], strCollectionID.c_str(), nTemp);
nOffset += nTemp;
pBuffer[nOffset] = '\0';
nOffset += sizeof(char);
nBytes = 0;
nRes = m_pSocket->Write(pBuffer, nBufLen, &nBytes);
nBufLen = 0;
nRes = m_pSocket->NBRead(pBuffer, sizeof(char) + sizeof(int), &nBytes, YP::nTimeout);
if ((nRes != -1) && (nBytes == (sizeof(char) + sizeof(int))) && (pBuffer[0] == YP::StatusSuccess))
{
memcpy(&nBufLen, &pBuffer[sizeof(char)], sizeof(int));
if (nBufLen != 0)
{
delete [] pBuffer;
pBuffer = new char[nBufLen+1];
pBuffer[nBufLen] = '\0';
nOffset = 0;
while ((nOffset < nBufLen) && (nRes != -1))
{
nRes = m_pSocket->Read(&pBuffer[nOffset], nBufLen - nOffset, &nBytes);
nOffset += nBytes;
}
nBytes = nOffset;
nOffset = 0;
FromBuffer(ResultList, &pBuffer[nOffset], nTemp);
nOffset += nTemp;
nRes = 0;
}
}
else
{
nRes = -1;
}
if (pBuffer != NULL) delete [] pBuffer;
this->Disconnect();
return nRes;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -