summaryrefslogtreecommitdiff
path: root/LocalListener.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'LocalListener.cpp')
-rw-r--r--LocalListener.cpp147
1 files changed, 97 insertions, 50 deletions
diff --git a/LocalListener.cpp b/LocalListener.cpp
index 21dc09b..4a418aa 100644
--- a/LocalListener.cpp
+++ b/LocalListener.cpp
@@ -24,21 +24,32 @@ LocalListener::~LocalListener()
if(localServer.isListening())
{
localServer.close();
- if(!QLocalServer::removeServer(ExtraSocket::pathSocket(ULTRACOPIER_SOCKETNAME)))
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QString("Unable to remove the listening server"));
+ if(!QLocalServer::removeServer(QString::fromStdString(ExtraSocket::pathSocket(ULTRACOPIER_SOCKETNAME))))
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"Unable to remove the listening server");
}
}
bool LocalListener::tryConnect()
{
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start"));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start");
QStringList ultracopierArguments=QCoreApplication::arguments();
//remove excutable path because is useless (unsafe to use)
ultracopierArguments.removeFirst();
//add the current path to file full path resolution if needed
ultracopierArguments.insert(0,QDir::currentPath());
+
+ std::vector<std::string> ultracopierArgumentsStd;
+ {
+ int index=0;
+ while(index<ultracopierArguments.size())
+ {
+ ultracopierArgumentsStd.push_back(ultracopierArguments.at(index).toStdString());
+ index++;
+ }
+ }
+
QLocalSocket localSocket;
- localSocket.connectToServer(ExtraSocket::pathSocket(ULTRACOPIER_SOCKETNAME),QIODevice::WriteOnly);
+ localSocket.connectToServer(QString::fromStdString(ExtraSocket::pathSocket(ULTRACOPIER_SOCKETNAME)),QIODevice::WriteOnly);
if(localSocket.waitForConnected(1000))
{
if(!localSocket.isValid())
@@ -46,11 +57,11 @@ bool LocalListener::tryConnect()
ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"localSocket is not valid!");
return false;
}
- emit cli(ultracopierArguments,false,true);
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Information,"connection succes, number arguments given: "+QString::number(ultracopierArguments.size()));
+ emit cli(ultracopierArgumentsStd,false,true);
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Information,"connection succes, number arguments given: "+std::to_string(ultracopierArgumentsStd.size()));
#ifdef ULTRACOPIER_DEBUG
for (int i = 0; i < ultracopierArguments.size(); ++i) {
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Information,"argument["+QString::number(i)+"]: "+ultracopierArguments.at(i));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Information,"argument["+std::to_string(i)+"]: "+ultracopierArgumentsStd.at(i));
}
#endif // ULTRACOPIER_DEBUG
//cut string list and send it as block of 32KB
@@ -66,17 +77,20 @@ bool LocalListener::tryConnect()
do
{
QByteArray blockToSend;
- int byteWriten;
blockToSend=block.left(32*1024);//32KB
block.remove(0,blockToSend.size());
- byteWriten = localSocket.write(blockToSend);
+ #ifdef ULTRACOPIER_DEBUG
+ int byteWriten =
+ #endif
+ localSocket.write(blockToSend);
#ifdef ULTRACOPIER_DEBUG
if(!localSocket.isValid())
ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"localSocket is not valid!");
if(localSocket.errorString()!="Unknown error" && localSocket.errorString()!="")
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"localSocket->errorString(): "+localSocket.errorString());
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"localSocket->errorString(): "+localSocket.errorString().toStdString());
if(blockToSend.size()!=byteWriten)
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"blockToSend("+QString::number(blockToSend.size())+")!=byteWriten("+QString::number(byteWriten)+")");
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"blockToSend("+std::to_string(blockToSend.size())+
+ ")!=byteWriten("+std::to_string(byteWriten)+")");
#endif // ULTRACOPIER_DEBUG
if(localSocket.waitForBytesWritten(200))
{
@@ -87,8 +101,9 @@ bool LocalListener::tryConnect()
QMessageBox::critical(NULL,"Alert","No arguments send because timeout detected!");
ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Critical,"Block not send correctly");
}
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"blockToSend: "+QString(blockToSend.toHex()));
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"byteWriten: "+QString::number(byteWriten)+", size sending: "+QString::number(blockToSend.size()));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"blockToSend: "+blockToSend.toHex().toStdString());
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"byteWriten: "+std::to_string(byteWriten)+
+ ", size sending: "+std::to_string(blockToSend.size()));
}
while(block.size());
ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"disconnect the socket");
@@ -97,8 +112,8 @@ bool LocalListener::tryConnect()
}
else
{
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("connection failed, continu..."));
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("ultracopierArguments: ")+ultracopierArguments.join(";"));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"connection failed, continue...");
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"ultracopierArguments: "+ultracopierArguments.join(";").toStdString());
return false;
}
}
@@ -106,17 +121,18 @@ bool LocalListener::tryConnect()
/// the listen server
void LocalListener::listenServer()
{
- if(!QLocalServer::removeServer(ExtraSocket::pathSocket(ULTRACOPIER_SOCKETNAME)))
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("Unable to remove the listening server"));
+ if(!QLocalServer::removeServer(QString::fromStdString(ExtraSocket::pathSocket(ULTRACOPIER_SOCKETNAME))))
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"Unable to remove the listening server");
#ifndef Q_OS_MAC
localServer.setSocketOptions(QLocalServer::UserAccessOption);
#endif
- if(!localServer.listen(ExtraSocket::pathSocket(ULTRACOPIER_SOCKETNAME)))
+ if(!localServer.listen(QString::fromStdString(ExtraSocket::pathSocket(ULTRACOPIER_SOCKETNAME))))
{
#ifndef Q_OS_MAC
//QMessageBox::critical(NULL,"Alert",QStringLiteral("Ultracopier have not able to lock unique instance: %1").arg(localServer.errorString()));
#endif
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QString("Ultracopier have not able to lock unique instance: %1, error code: %2").arg(localServer.errorString()).arg((qint32)localServer.serverError()));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"Ultracopier have not able to lock unique instance: "+localServer.errorString().toStdString()+
+ ", error code: "+std::to_string((int32_t)localServer.serverError()));
}
else
connect(&localServer, &QLocalServer::newConnection, this, &LocalListener::newConnexion);
@@ -125,19 +141,19 @@ void LocalListener::listenServer()
//the time is done
void LocalListener::timeoutDectected()
{
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("start"));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"start");
if(clientList.size()>0)
{
- int index=0;
+ unsigned int index=0;
bool haveData=false;
while(index<clientList.size())
{
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"clientList.first().size: "+QString::number(clientList.first().size));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"clientList.first().size: "+std::to_string(clientList.front().size));
if(!clientList.at(index).data.isEmpty() || clientList.at(index).haveData)
{
haveData=true;
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("Timeout while recomposing data from connected clients: %1").arg(QString(clientList.at(index).data.toHex())));
- clientList.removeFirst();
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"Timeout while recomposing data from connected clients: "+clientList.at(index).data.toHex().toStdString());
+ clientList.erase(clientList.cbegin());
}
else
index++;
@@ -150,23 +166,23 @@ void LocalListener::timeoutDectected()
/// \brief Data is incomming
void LocalListener::dataIncomming()
{
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Information,QStringLiteral("start"));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Information,"start");
// 1 : we get packets from client
//Which client send the message (Search of the QLocalSocket of client)
QLocalSocket *socket = qobject_cast<QLocalSocket *>(sender());
if (socket == 0) // If not found
{
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("bad socket"));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"bad socket");
return;
}
int index=-1;
- for (int i=0;i<clientList.size(); ++i) {
+ for (unsigned int i=0;i<clientList.size(); ++i) {
if(clientList.at(i).socket==socket)
index=i;
}
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("socket->bytesAvailable() ")+QString::number(socket->bytesAvailable()));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"socket->bytesAvailable() "+std::to_string(socket->bytesAvailable()));
if(index!=-1)
{
if(!clientList.at(index).haveData)
@@ -191,36 +207,56 @@ void LocalListener::dataIncomming()
clientList[index].haveData=true;
clientList[index].data.append(socket->readAll());
TimeOutQLocalSocket.start();
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"Need wait to recomposite: "+QString::number(clientList.at(index).data.size())+", targeted: "+QString::number(clientList.at(index).size));
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"tempComposed.data: "+QString(clientList.at(index).data.toHex()));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"Need wait to recomposite: "+std::to_string(clientList.at(index).data.size())+
+ ", targeted: "+std::to_string(clientList.at(index).size));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"tempComposed.data: "+clientList.at(index).data.toHex().toStdString());
}
else if(socket->bytesAvailable() == clientList.at(index).size) //if the size match
{
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"socket->bytesAvailable(): "+QString::number(socket->bytesAvailable())+", for total of: "+QString::number(socket->bytesAvailable()+sizeof(quint32)));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"socket->bytesAvailable(): "+std::to_string(socket->bytesAvailable())+
+ ", for total of: "+std::to_string(socket->bytesAvailable()+sizeof(uint32_t)));
QStringList ultracopierArguments;
in >> ultracopierArguments;
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"ultracopierArguments: "+ultracopierArguments.join(";"));
- emit cli(ultracopierArguments,true,false);
+ std::vector<std::string> ultracopierArgumentsStd;
+ {
+ int index=0;
+ while(index<ultracopierArguments.size())
+ {
+ ultracopierArgumentsStd.push_back(ultracopierArguments.at(index).toStdString());
+ index++;
+ }
+ }
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"ultracopierArguments: "+ultracopierArguments.join(";").toStdString());
+ emit cli(ultracopierArgumentsStd,true,false);
clientList[index].data.clear();
clientList[index].haveData=false;
TimeOutQLocalSocket.stop();
}
else
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("socket->bytesAvailable(): ")+QString::number(socket->bytesAvailable())+QStringLiteral(" > clientList.at(index).size!: ")+QString::number(clientList.at(index).size));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"socket->bytesAvailable(): "+std::to_string(socket->bytesAvailable())+" > clientList.at(index).size!: "+std::to_string(clientList.at(index).size));
}
else
{
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("Query recomposed with this size: ")+QString::number(clientList.at(index).data.size()));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"Query recomposed with this size: "+std::to_string(clientList.at(index).data.size()));
clientList[index].data.append(socket->readAll());
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("Query recomposed with this size: ")+QString::number(clientList.at(index).data.size()));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"Query recomposed with this size: "+std::to_string(clientList.at(index).data.size()));
if(clientList.at(index).data.size()==clientList.at(index).size)
{
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Information,QStringLiteral("QByteArray reconstruction finished"));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Information,"QByteArray reconstruction finished");
QDataStream in(clientList.at(index).data);
QStringList ultracopierArguments;
in >> ultracopierArguments;
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("ultracopierArguments: ")+ultracopierArguments.join(";"));
- emit cli(ultracopierArguments,true,false);
+ std::vector<std::string> ultracopierArgumentsStd;
+ {
+ int index=0;
+ while(index<ultracopierArguments.size())
+ {
+ ultracopierArgumentsStd.push_back(ultracopierArguments.at(index).toStdString());
+ index++;
+ }
+ }
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"ultracopierArguments: "+ultracopierArguments.join(";").toStdString());
+ emit cli(ultracopierArgumentsStd,true,false);
clientList[index].data.clear();
clientList[index].haveData=false;
TimeOutQLocalSocket.stop();
@@ -228,28 +264,28 @@ void LocalListener::dataIncomming()
else
{
TimeOutQLocalSocket.start();
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("Need wait to recomposite: ")+QString::number(clientList.at(index).data.size())+QStringLiteral(", targeted: ")+QString::number(clientList.at(index).size));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"Need wait to recomposite: "+std::to_string(clientList.at(index).data.size())+", targeted: "+std::to_string(clientList.at(index).size));
return;
}
}
}
else
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,QStringLiteral("Socket not found???"));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"Socket not found???");
}
/// \brief Deconnexion client
/// \todo Remove the data in wait linker with this socket
void LocalListener::deconnectClient()
{
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start"));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start");
// Wich client leave
QLocalSocket *socket = qobject_cast<QLocalSocket *>(sender());
if (socket == 0) // If not found
return;
- for (int i = 0; i < clientList.size(); ++i) {
+ for (unsigned int i = 0; i < clientList.size(); ++i) {
if(clientList.at(i).socket==socket)
- clientList.removeAt(i);
+ clientList.erase(clientList.cbegin()+i);
}
socket->deleteLater();
}
@@ -257,7 +293,7 @@ void LocalListener::deconnectClient()
/// LocalListener New connexion
void LocalListener::newConnexion()
{
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Information,QStringLiteral("start"));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Information,"start");
ComposedData newClient;
newClient.socket = localServer.nextPendingConnection();
#ifdef ULTRACOPIER_DEBUG
@@ -269,7 +305,7 @@ void LocalListener::newConnexion()
connect(newClient.socket, &QLocalSocket::disconnected, this, &LocalListener::deconnectClient);
newClient.size=-1;
newClient.haveData=false;
- clientList << newClient;
+ clientList.push_back(newClient);
}
#ifdef ULTRACOPIER_DEBUG
@@ -281,9 +317,9 @@ void LocalListener::error(const QLocalSocket::LocalSocketError &theErrorDefine)
{
QLocalSocket *client=qobject_cast<QLocalSocket *>(QObject::sender());
if(client!=NULL)
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"Value:"+QString::number(theErrorDefine)+", Error message: "+client->errorString());
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"Value:"+std::to_string(theErrorDefine)+", Error message: "+client->errorString().toStdString());
else
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"Value:"+QString::number(theErrorDefine));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Warning,"Value:"+std::to_string(theErrorDefine));
}
}
#endif
@@ -291,11 +327,22 @@ void LocalListener::error(const QLocalSocket::LocalSocketError &theErrorDefine)
/// \can now parse the cli
void LocalListener::allPluginIsloaded()
{
- ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,QStringLiteral("start"));
+ ULTRACOPIER_DEBUGCONSOLE(Ultracopier::DebugLevel_Notice,"start");
QStringList ultracopierArguments=QCoreApplication::arguments();
//remove excutable path because is useless (unsafe to use)
ultracopierArguments.removeFirst();
//add the current path to file full path resolution if needed
ultracopierArguments.insert(0,QDir::currentPath());
- emit cli(ultracopierArguments,false,false);
+
+ std::vector<std::string> ultracopierArgumentsStd;
+ {
+ int index=0;
+ while(index<ultracopierArguments.size())
+ {
+ ultracopierArgumentsStd.push_back(ultracopierArguments.at(index).toStdString());
+ index++;
+ }
+ }
+
+ emit cli(ultracopierArgumentsStd,false,false);
}