qpidctrl  0.7.1
Public Slots | Public Member Functions | Public Attributes | Properties | Private Attributes | List of all members
QPidServer Class Reference

#include <qpidserver.h>

Inheritance diagram for QPidServer:
Inheritance graph

Public Slots

void runModeChanged ()
 
void serverPortChanged ()
 
void openNewConnection ()
 
void shutdown ()
 
void deleteSession (QPidServerSessionWPtr sess)
 
void deleteSessionLater (QPidServerSessionWPtr sess)
 
void printMessage (QString msg, QDateTime ts=QDateTime::currentDateTime())
 
void criticalMessage (QString msg)
 

Public Member Functions

 QPidServer (QcepSettingsSaverWPtr saver, QPidControllerWPtr ctrl)
 
virtual ~QPidServer ()
 
void startServer (QHostAddress addr, int port)
 
void stopServer ()
 
virtual void readSettings (QSettings *settings, QString section)
 
virtual void writeSettings (QSettings *settings, QString section)
 

Public Attributes

QPidObjectNamer m_ObjectNamer
 

Properties

int runPidServer
 
int pidServerPort
 

Private Attributes

QPidControllerWPtr m_Controller
 
QList< QPidServerSessionPtrm_Sessions
 

Detailed Description

Definition at line 12 of file qpidserver.h.

Constructor & Destructor Documentation

QPidServer::QPidServer ( QcepSettingsSaverWPtr  saver,
QPidControllerWPtr  ctrl 
)
explicit

Definition at line 8 of file qpidserver.cpp.

References openNewConnection(), runModeChanged(), and serverPortChanged().

8  :
9  QTcpServer(NULL),
10  m_ObjectNamer(this, "socketServer"),
11  m_RunPidServer(saver, this,"runPidServer", 1, "Run Simple Socket Server?"),
12  m_PidServerPort(saver, this,"pidServerPort", 1234, "Port for Simple Socket Server"),
13  m_Controller(ctrl)
14 {
15  if (qcepDebug(DEBUG_CONSTRUCTORS)) {
16  printf("QPidServer::QPidServer(%p)\n", this);
17  }
18 
19  qRegisterMetaType<QPidServerSessionWPtr>("QPidServerSessionWPtr");
20 
21  connect(prop_RunPidServer(), SIGNAL(valueChanged(int,int)), this, SLOT(runModeChanged()));
22  connect(prop_PidServerPort(), SIGNAL(valueChanged(int,int)), this, SLOT(serverPortChanged()));
23 
24  connect(this, SIGNAL(newConnection()), this, SLOT(openNewConnection()));
25 }
void openNewConnection()
Definition: qpidserver.cpp:117
void runModeChanged()
Definition: qpidserver.cpp:48
QPidObjectNamer m_ObjectNamer
Definition: qpidserver.h:19
QPidControllerWPtr m_Controller
Definition: qpidserver.h:47
void serverPortChanged()
Definition: qpidserver.cpp:61
QPidServer::~QPidServer ( )
virtual

Definition at line 27 of file qpidserver.cpp.

References stopServer().

28 {
29  if (qcepDebug(DEBUG_CONSTRUCTORS)) {
30  printf("QPidServer::~QPidServer(%p)\n", this);
31  }
32 
33  stopServer();
34 }
void stopServer()
Definition: qpidserver.cpp:110

Member Function Documentation

void QPidServer::criticalMessage ( QString  msg)
slot

Definition at line 83 of file qpidserver.cpp.

References m_Controller.

Referenced by startServer().

84 {
86 
87  if (ctl) {
88  ctl->criticalMessage(msg);
89  }
90 }
QSharedPointer< QPidController > QPidControllerPtr
QPidControllerWPtr m_Controller
Definition: qpidserver.h:47
void QPidServer::deleteSession ( QPidServerSessionWPtr  sess)
slot

Definition at line 126 of file qpidserver.cpp.

127 {
128  INVOKE_CHECK(
129  QMetaObject::invokeMethod(this, "deleteSessionLater", Qt::QueuedConnection, Q_ARG(QPidServerSessionWPtr, sess)));
130 }
QWeakPointer< QPidServerSession > QPidServerSessionWPtr
void QPidServer::deleteSessionLater ( QPidServerSessionWPtr  sess)
slot

Definition at line 132 of file qpidserver.cpp.

References m_Sessions.

133 {
134  QPidServerSessionPtr p(sess);
135 
136  int i = m_Sessions.indexOf(p);
137 
138  if (i>=0) {
139  m_Sessions.removeAt(i);
140  }
141 }
QSharedPointer< QPidServerSession > QPidServerSessionPtr
QList< QPidServerSessionPtr > m_Sessions
Definition: qpidserver.h:48
void QPidServer::openNewConnection ( )
slot

Definition at line 117 of file qpidserver.cpp.

References m_Controller, and m_Sessions.

Referenced by QPidServer().

118 {
120 
121  if (session) {
122  m_Sessions.append(session);
123  }
124 }
QSharedPointer< QPidServerSession > QPidServerSessionPtr
QList< QPidServerSessionPtr > m_Sessions
Definition: qpidserver.h:48
QSharedPointer< QTcpSocket > QTcpSocketPtr
QPidControllerWPtr m_Controller
Definition: qpidserver.h:47
QSharedPointer< QPidServer > QPidServerPtr
Definition: qpidserver-ptr.h:6
void QPidServer::printMessage ( QString  msg,
QDateTime  ts = QDateTime::currentDateTime() 
)
slot

Definition at line 74 of file qpidserver.cpp.

References m_Controller.

Referenced by startServer().

75 {
77 
78  if (ctl) {
79  ctl->printMessage(msg, ts);
80  }
81 }
QSharedPointer< QPidController > QPidControllerPtr
QPidControllerWPtr m_Controller
Definition: qpidserver.h:47
void QPidServer::readSettings ( QSettings *  settings,
QString  section 
)
virtual

Definition at line 36 of file qpidserver.cpp.

References runModeChanged().

37 {
38  QcepProperty::readSettings(this, &staticMetaObject, section, settings);
39 
41 }
void runModeChanged()
Definition: qpidserver.cpp:48
void QPidServer::runModeChanged ( )
slot

Definition at line 48 of file qpidserver.cpp.

References startServer(), and stopServer().

Referenced by QPidServer(), and readSettings().

49 {
50  if (QThread::currentThread() != thread()) {
51  QMetaObject::invokeMethod(this, "runModeChanged");
52  } else {
53  if (get_RunPidServer()) {
54  startServer(QHostAddress::Any, get_PidServerPort());
55  } else {
56  stopServer();
57  }
58  }
59 }
void startServer(QHostAddress addr, int port)
Definition: qpidserver.cpp:92
void stopServer()
Definition: qpidserver.cpp:110
void QPidServer::serverPortChanged ( )
slot

Definition at line 61 of file qpidserver.cpp.

References startServer(), and stopServer().

Referenced by QPidServer().

62 {
63  if (QThread::currentThread() != thread()) {
64  QMetaObject::invokeMethod(this, "serverPortChanged");
65  } else {
66  stopServer();
67 
68  if (get_RunPidServer()) {
69  startServer(QHostAddress::Any, get_PidServerPort());
70  }
71  }
72 }
void startServer(QHostAddress addr, int port)
Definition: qpidserver.cpp:92
void stopServer()
Definition: qpidserver.cpp:110
void QPidServer::shutdown ( )
slot

Definition at line 143 of file qpidserver.cpp.

144 {
145  close();
146 
147  thread()->exit();
148 }
void QPidServer::startServer ( QHostAddress  addr,
int  port 
)

Definition at line 92 of file qpidserver.cpp.

References criticalMessage(), and printMessage().

Referenced by runModeChanged(), and serverPortChanged().

93 {
94  if (qcepDebug(DEBUG_SERVER)) {
95  printMessage(tr("Starting simple server on address %1, port %2")
96  .arg(addr.toString()).arg(port));
97  }
98 
99  setMaxPendingConnections(10);
100 
101  if (isListening()) {
102  close();
103  }
104 
105  if (!listen(addr, port)) {
106  criticalMessage(tr("Failed to bind to address %1 port %2\nIs there another copy running already?").arg(addr.toString()).arg(port));
107  }
108 }
void criticalMessage(QString msg)
Definition: qpidserver.cpp:83
void printMessage(QString msg, QDateTime ts=QDateTime::currentDateTime())
Definition: qpidserver.cpp:74
void QPidServer::stopServer ( )

Definition at line 110 of file qpidserver.cpp.

Referenced by runModeChanged(), serverPortChanged(), and ~QPidServer().

111 {
112  if (isListening()) {
113  close();
114  }
115 }
void QPidServer::writeSettings ( QSettings *  settings,
QString  section 
)
virtual

Definition at line 43 of file qpidserver.cpp.

44 {
45  QcepProperty::writeSettings(this, &staticMetaObject, section, settings);
46 }

Member Data Documentation

QPidControllerWPtr QPidServer::m_Controller
private

Definition at line 47 of file qpidserver.h.

Referenced by criticalMessage(), openNewConnection(), and printMessage().

QPidObjectNamer QPidServer::m_ObjectNamer

Definition at line 19 of file qpidserver.h.

QList<QPidServerSessionPtr> QPidServer::m_Sessions
private

Definition at line 48 of file qpidserver.h.

Referenced by deleteSessionLater(), and openNewConnection().

Property Documentation

int QPidServer::pidServerPort
readwrite

Definition at line 24 of file qpidserver.h.

int QPidServer::runPidServer
readwrite

Definition at line 21 of file qpidserver.h.


The documentation for this class was generated from the following files: