summaryrefslogtreecommitdiff
path: root/x11/libqpe-x11/qt/qcopchannel_qws.cpp
Unidiff
Diffstat (limited to 'x11/libqpe-x11/qt/qcopchannel_qws.cpp') (more/less context) (show whitespace changes)
-rw-r--r--x11/libqpe-x11/qt/qcopchannel_qws.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/x11/libqpe-x11/qt/qcopchannel_qws.cpp b/x11/libqpe-x11/qt/qcopchannel_qws.cpp
index 1cea80c..706756e 100644
--- a/x11/libqpe-x11/qt/qcopchannel_qws.cpp
+++ b/x11/libqpe-x11/qt/qcopchannel_qws.cpp
@@ -8,53 +8,60 @@ QMap<QCString, int> QCopChannel::m_refCount;
8 8
9QCopChannel::QCopChannel( const QCString& channel, QObject* parent, 9QCopChannel::QCopChannel( const QCString& channel, QObject* parent,
10 const char* name ) 10 const char* name )
11 : QObject( parent, name ),m_chan(channel) { 11 : QObject( parent, name ),m_chan(channel) {
12 if (!m_list ) { 12 if (!m_list ) {
13 m_list = new QList<QCopChannel>; 13 m_list = new QList<QCopChannel>;
14 /* only connect once */ 14 /* only connect once */
15 connect(OCOPClient::self(), SIGNAL(called(const QCString&, const QCString&, const QByteArray& ) ), 15 connect(OCOPClient::self(), SIGNAL(called(const QCString&, const QCString&, const QByteArray& ) ),
16 this, SLOT(rev(const QCString&, const QCString&, const QByteArray&) ) ); 16 this, SLOT(rev(const QCString&, const QCString&, const QByteArray&) ) );
17 } 17 }
18 /* first registration or ref count is 0 for m_chan*/ 18 /* first registration or ref count is 0 for m_chan*/
19 if (!m_refCount.contains( m_chan ) || !m_refCount[m_chan] ) { 19 if (!m_refCount.contains( m_chan ) || !m_refCount[m_chan] ) {
20 qWarning("adding channel %s", m_chan.data() );
20 m_refCount[m_chan] = 1; 21 m_refCount[m_chan] = 1;
21 OCOPClient::self()->addChannel( m_chan ); 22 OCOPClient::self()->addChannel( m_chan );
22 }else 23 }else{
24 qWarning("reffing up for %s %d", m_chan.data(), m_refCount[m_chan] );
23 m_refCount[m_chan]++; 25 m_refCount[m_chan]++;
26 }
24 27
25 m_list->append(this); 28 m_list->append(this);
26} 29}
27void QCopChannel::receive( const QCString& msg, const QByteArray& ar ) { 30void QCopChannel::receive( const QCString& msg, const QByteArray& ar ) {
28 emit received( msg, ar ); 31 emit received( msg, ar );
29} 32}
30QCopChannel::~QCopChannel() { 33QCopChannel::~QCopChannel() {
31 if (m_refCount[m_chan] == 1 ) { 34 if (m_refCount[m_chan] == 1 ) {
32 OCOPClient::self()->delChannel( m_chan ); 35 OCOPClient::self()->delChannel( m_chan );
33 m_refCount[m_chan] = 0; 36 m_refCount[m_chan] = 0;
34 }else 37 }else
35 m_refCount[m_chan]--; 38 m_refCount[m_chan]--;
36 39
37 40
38 m_list->remove(this); 41 m_list->remove(this);
39 if (m_list->count() == 0 ) { 42 if (m_list->count() == 0 ) {
40 delete m_list; 43 delete m_list;
41 m_list = 0; 44 m_list = 0;
42 } 45 }
43 46
44} 47}
45QCString QCopChannel::channel()const { 48QCString QCopChannel::channel()const {
46 return m_chan; 49 return m_chan;
47} 50}
48bool QCopChannel::isRegistered( const QCString& chan) {; 51bool QCopChannel::isRegistered( const QCString& chan) {
52 if (m_refCount.contains(chan) ) {
53 qDebug("Client:locally contains");
54 return true;
55 }
49 return OCOPClient::self()->isRegistered( chan ); 56 return OCOPClient::self()->isRegistered( chan );
50} 57}
51bool QCopChannel::send( const QCString& chan, const QCString& msg ) { 58bool QCopChannel::send( const QCString& chan, const QCString& msg ) {
52 QByteArray ar; 59 QByteArray ar;
53 return send(chan, msg, ar ); 60 return send(chan, msg, ar );
54} 61}
55bool QCopChannel::send( const QCString& chan, const QCString& msg, 62bool QCopChannel::send( const QCString& chan, const QCString& msg,
56 const QByteArray& ar ) { 63 const QByteArray& ar ) {
57 OCOPClient::self()->send( chan, msg, ar ); 64 OCOPClient::self()->send( chan, msg, ar );
58 return true; 65 return true;
59} 66}
60bool QCopChannel::sendLocally( const QCString& chann, const QCString& msg, 67bool QCopChannel::sendLocally( const QCString& chann, const QCString& msg,