QDesignerServer Class Reference

#include <qdesigner_server.h>

Inheritance diagram for QDesignerServer:

Inheritance graph
[legend]
Collaboration diagram for QDesignerServer:

Collaboration graph
[legend]
List of all members.

Detailed Description

Definition at line 32 of file qdesigner_server.h.

Public Member Functions

 QDesignerServer (QObject *parent=0)
virtual ~QDesignerServer ()
quint16 serverPort () const

Static Public Member Functions

static void sendOpenRequest (int port, const QStringList &files)

Private Slots

void handleNewConnection ()
void readFromClient ()
void socketClosed ()

Private Attributes

QTcpServerm_server
QTcpSocketm_socket


Constructor & Destructor Documentation

QDesignerServer::QDesignerServer ( QObject parent = 0  ) 

Definition at line 38 of file qdesigner_server.cpp.

References QObject::connect(), handleNewConnection(), QTcpServer::isListening(), QTcpServer::listen(), QHostAddress::LocalHost, m_server, m_socket, SIGNAL, and SLOT.

00039     : QObject(parent)
00040 {
00041     m_socket = 0;
00042     m_server = new QTcpServer(this);
00043     m_server->listen(QHostAddress::LocalHost, 0);
00044     if (m_server->isListening())
00045     {
00046         connect(m_server, SIGNAL(newConnection()),
00047                 this, SLOT(handleNewConnection()));
00048     }
00049 }

Here is the call graph for this function:

QDesignerServer::~QDesignerServer (  )  [virtual]

Definition at line 51 of file qdesigner_server.cpp.

00052 {
00053 }


Member Function Documentation

quint16 QDesignerServer::serverPort (  )  const

Definition at line 55 of file qdesigner_server.cpp.

References m_server, and QTcpServer::serverPort().

Referenced by QDesigner::initialize().

00056 {
00057     return m_server ? m_server->serverPort() : 0;
00058 }

Here is the call graph for this function:

void QDesignerServer::sendOpenRequest ( int  port,
const QStringList files 
) [static]

Definition at line 60 of file qdesigner_server.cpp.

References QFileInfo::absoluteFilePath(), QAbstractSocket::close(), QAbstractSocket::connectToHost(), QHostAddress::LocalHost, QString::toUtf8(), QAbstractSocket::waitForBytesWritten(), QAbstractSocket::waitForConnected(), and QIODevice::write().

00061 {
00062     QTcpSocket *sSocket = new QTcpSocket();
00063     sSocket->connectToHost(QHostAddress::LocalHost, port);
00064     if(sSocket->waitForConnected(3000))
00065     {
00066         foreach(QString file, files)
00067         {
00068             QFileInfo fi(file);
00069             sSocket->write(fi.absoluteFilePath().toUtf8() + '\n');
00070         }
00071         sSocket->waitForBytesWritten(3000);
00072         sSocket->close();
00073     }
00074     delete sSocket;
00075 }

Here is the call graph for this function:

void QDesignerServer::handleNewConnection (  )  [private, slot]

Definition at line 95 of file qdesigner_server.cpp.

References QObject::connect(), m_server, m_socket, QTcpServer::nextPendingConnection(), readFromClient(), SIGNAL, SLOT, and socketClosed().

Referenced by QDesignerServer().

00096 {
00097     // no need for more than one connection
00098     if (m_socket == 0) {
00099         m_socket = m_server->nextPendingConnection();
00100         connect(m_socket, SIGNAL(readyRead()),
00101                 this, SLOT(readFromClient()));
00102         connect(m_socket, SIGNAL(disconnected()),
00103                 this, SLOT(socketClosed()));
00104     }
00105 }

void QDesignerServer::readFromClient (  )  [private, slot]

Definition at line 77 of file qdesigner_server.cpp.

References QAbstractSocket::canReadLine(), QString::fromUtf8(), QString::isNull(), m_socket, qDesigner, QIODevice::readLine(), and QString::replace().

Referenced by handleNewConnection().

00078 {
00079     QString file = QString();
00080     while (m_socket->canReadLine()) {
00081         file = QString::fromUtf8(m_socket->readLine());
00082         if (!file.isNull()) {
00083             file = file.replace(QLatin1String("\n"), QLatin1String(""));
00084             file = file.replace(QLatin1String("\r"), QLatin1String(""));
00085             qDesigner->postEvent(qDesigner, new QFileOpenEvent(file));
00086         }
00087     }
00088 }

void QDesignerServer::socketClosed (  )  [private, slot]

Definition at line 90 of file qdesigner_server.cpp.

References m_socket.

Referenced by handleNewConnection().

00091 {
00092     m_socket = 0;
00093 }


Member Data Documentation

QTcpServer* QDesignerServer::m_server [private]

Definition at line 49 of file qdesigner_server.h.

Referenced by handleNewConnection(), QDesignerServer(), and serverPort().

QTcpSocket* QDesignerServer::m_socket [private]

Definition at line 50 of file qdesigner_server.h.

Referenced by handleNewConnection(), QDesignerServer(), readFromClient(), and socketClosed().


The documentation for this class was generated from the following files:
Generated on Thu Mar 15 17:19:12 2007 for Qt 4.2 User's Guide by  doxygen 1.5.1