summaryrefslogtreecommitdiffstats
path: root/src/__TODO/UiGuiIndentServer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/__TODO/UiGuiIndentServer.cpp')
-rw-r--r--src/__TODO/UiGuiIndentServer.cpp175
1 files changed, 0 insertions, 175 deletions
diff --git a/src/__TODO/UiGuiIndentServer.cpp b/src/__TODO/UiGuiIndentServer.cpp
deleted file mode 100644
index 5a39951..0000000
--- a/src/__TODO/UiGuiIndentServer.cpp
+++ /dev/null
@@ -1,175 +0,0 @@
-/***************************************************************************
- * Copyright (C) 2006-2012 by Thomas Schweitzer *
- * thomas-schweitzer(at)arcor.de *
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License version 2.0 as *
- * published by the Free Software Foundation. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program in the file LICENSE.GPL; if not, write to the *
- * Free Software Foundation, Inc., *
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
- ***************************************************************************/
-
-#include "UiGuiIndentServer.h"
-
-#include <tqtcpserver.h>
-#include <tqtcpsocket.h>
-#include <tqmessagebox.h>
-#include <tqtdebug.h>
-
-// \defgroup grp_Server All concerning the server component.
-
-/*
- \class UiGuiIndentServer
- \ingroup grp_Server
- \brief UiGuiIndentServer is in such an early state, that even the communication
- protocol isn't completely planned. So this class lacks documentation until
- I really know where all this will lead to.
-
- The plan however is to have a server that receives commands for selecting an
- indenter and perhaps load some by the user predefined indenter config file. Then
- the client can send a text to it and will receive it formatted.
- The idea behind that is to make UiGUIs use as plugin or whatever more flexible.
- So the plugin is developed for Eclipse for example and it takes the client role,
- making it possible to use UiGUI from within Eclipse. Choosing a network protocol
- makes everything platform and programming language independent, so it doesn't
- matter for which application the plugin/client is developed.
-*/
-
-UiGuiIndentServer::UiGuiIndentServer(void) :
- TQObject()
-{
- _tcpServer = NULL;
- _currentClientConnection = NULL;
- _readyForHandleRequest = false;
-}
-
-UiGuiIndentServer::~UiGuiIndentServer(void)
-{
-}
-
-void UiGuiIndentServer::startServer()
-{
- if (_tcpServer == NULL)
- {
- _tcpServer = new TQTcpServer(this);
- }
-
- if (!_tcpServer->isListening())
- {
- if (!_tcpServer->listen(TQHostAddress::Any, tquint16(84484)))
- {
- TQMessageBox::critical(NULL, tr("UiGUI Server"),
- tr("Unable to start the server: %1.").arg(_tcpServer->errorString()));
- return;
- }
- }
-
- connect(_tcpServer, TQ_SIGNAL(newConnection()), this, TQ_SLOT(handleNewConnection()));
- _readyForHandleRequest = true;
- _blockSize = 0;
-}
-
-void UiGuiIndentServer::stopServer()
-{
- if (_tcpServer != NULL)
- {
- _tcpServer->close();
- delete _tcpServer;
- _tcpServer = NULL;
- }
- _currentClientConnection = NULL;
- _readyForHandleRequest = false;
-}
-
-void UiGuiIndentServer::handleNewConnection()
-{
- TQTcpSocket *clientConnection = _tcpServer->nextPendingConnection();
- connect(clientConnection, TQ_SIGNAL(disconnected()), clientConnection, TQ_SLOT(deleteLater()));
-
- connect(clientConnection, TQ_SIGNAL(readyRead()), this, TQ_SLOT(handleReceivedData()));
-}
-
-void UiGuiIndentServer::handleReceivedData()
-{
- if (!_readyForHandleRequest)
- {
- return;
- }
-
- _currentClientConnection = qobject_cast<TQTcpSocket*>(sender());
- TQString receivedData = "";
-
- if (_currentClientConnection != NULL)
- {
- TQDataStream in(_currentClientConnection);
- in.setVersion(TQDataStream::TQt_4_0);
-
- if (_blockSize == 0)
- {
- if (_currentClientConnection->bytesAvailable() < (int)sizeof(tquint32))
- {
- return;
- }
-
- in >> _blockSize;
- }
-
- if (_currentClientConnection->bytesAvailable() < _blockSize)
- {
- return;
- }
-
- TQString receivedMessage;
- in >> receivedMessage;
-
- _blockSize = 0;
-
- tqDebug() << "receivedMessage: " << receivedMessage;
-
- if (receivedMessage == "ts")
- {
- sendMessage("Toll");
- }
- else
- {
- sendMessage("irgendwas");
- }
- }
-}
-
-void UiGuiIndentServer::sendMessage(const TQString &message)
-{
- _readyForHandleRequest = false;
-
- _dataToSend = "";
- TQDataStream out(&_dataToSend, TQIODevice::WriteOnly);
- out.setVersion(TQDataStream::TQt_4_0);
- out << (tquint32)0;
- out << message;
- out.device()->seek(0);
- out << (tquint32)(_dataToSend.size() - sizeof(tquint32));
-
- connect(_currentClientConnection, TQ_SIGNAL(bytesWritten(qint64)), this,
- TQ_SLOT(checkIfReadyForHandleRequest()));
- _currentClientConnection->write(_dataToSend);
-}
-
-void UiGuiIndentServer::checkIfReadyForHandleRequest()
-{
- if (_currentClientConnection->bytesToWrite() == 0)
- {
- TQString dataToSendStr = _dataToSend.right(_dataToSend.size() - sizeof(tquint32));
- tqDebug() << "checkIfReadyForHandleRequest _dataToSend was: " << dataToSendStr;
- disconnect(_currentClientConnection, TQ_SIGNAL(bytesWritten(qint64)), this,
- TQ_SLOT(checkIfReadyForHandleRequest()));
- _readyForHandleRequest = true;
- }
-}