summaryrefslogtreecommitdiff
path: root/x11/ipc
Unidiff
Diffstat (limited to 'x11/ipc') (more/less context) (ignore whitespace changes)
-rw-r--r--x11/ipc/client/ocopclient.cpp18
-rw-r--r--x11/ipc/client/ocopclient.h2
2 files changed, 10 insertions, 10 deletions
diff --git a/x11/ipc/client/ocopclient.cpp b/x11/ipc/client/ocopclient.cpp
index 1c25271..43e426c 100644
--- a/x11/ipc/client/ocopclient.cpp
+++ b/x11/ipc/client/ocopclient.cpp
@@ -18,13 +18,13 @@ OCOPClient::OCOPClient( const QString& path, QObject* obj )
18{ 18{
19 init(QFile::encodeName(path) ); 19 init(QFile::encodeName(path) );
20} 20}
21OCOPClient::~OCOPClient() { 21OCOPClient::~OCOPClient() {
22 close( m_socket ); 22 close( m_socket );
23} 23}
24void OCOPClient::init( const QCString& str ) { 24void OCOPClient::init( const QCString& ) {
25 struct sockaddr_un unix_adr; 25 struct sockaddr_un unix_adr;
26 if ( (m_socket = socket(PF_UNIX, SOCK_STREAM, 0) ) < 0 ) { 26 if ( (m_socket = socket(PF_UNIX, SOCK_STREAM, 0) ) < 0 ) {
27 qWarning("could not socket"); 27 qWarning("could not socket");
28 QTimer::singleShot(400, this,SLOT(init() ) ); 28 QTimer::singleShot(400, this,SLOT(init() ) );
29 return; 29 return;
30 } 30 }
@@ -59,71 +59,71 @@ void OCOPClient::newData() {
59 case OCOPPacket::Method: 59 case OCOPPacket::Method:
60 case OCOPPacket::RegisterChannel: 60 case OCOPPacket::RegisterChannel:
61 case OCOPPacket::UnregisterChannel: 61 case OCOPPacket::UnregisterChannel:
62 case OCOPPacket::Return: 62 case OCOPPacket::Return:
63 case OCOPPacket::Signal: 63 case OCOPPacket::Signal:
64 /* is Registered should be handled sync */ 64 /* is Registered should be handled sync */
65 case OCOPPacket::isRegistered: 65 case OCOPPacket::IsRegistered:
66 break; 66 break;
67 /* emit the signal */ 67 /* emit the signal */
68 case OCOPPacket::Call: 68 case OCOPPacket::Call:
69 emit called( pack.channel(), pack.header(), pack.content() ); 69 emit called( pack.channel(), pack.header(), pack.content() );
70 break; 70 break;
71 } 71 }
72} 72}
73OCOPPacket OCOPClient::packet() { 73OCOPPacket OCOPClient::packet() const{
74 QCString chan; 74 QCString chan;
75 QCString func; 75 QCString func;
76 QByteArray ar; 76 QByteArray ar;
77 OCOPHead head; 77 OCOPHead head;
78 memset(&head, 0, sizeof(head) ); 78 memset(&head, 0, sizeof(head) );
79 read(m_socket, &head, sizeof(head) ); 79 read(m_socket, &head, sizeof(head) );
80 if ( head.magic == 47 ) { 80 if ( head.magic == 47 ) {
81 read(m_socket, chan.data(), head.chlen ); 81 read(m_socket, chan.data(), head.chlen );
82 read(m_socket, func.data(), head.funclen ); 82 read(m_socket, func.data(), head.funclen );
83 read(m_socket, ar.data(), head.datalen ); 83 read(m_socket, ar.data(), head.datalen );
84 } 84 }
85 OCOPPacket pack(head.type, chan, func, data ); 85 OCOPPacket pack(head.type, chan, func, ar );
86 return pack; 86 return pack;
87} 87}
88/* 88/*
89 * we've blocking IO here on these sockets 89 * we've blocking IO here on these sockets
90 * so we send and go on read 90 * so we send and go on read
91 * this will be blocked 91 * this will be blocked
92 */ 92 */
93bool OCOPClient::isRegistered( const QCString& chan ) { 93bool OCOPClient::isRegistered( const QCString& chan ) const{
94 /* should I disconnect the socket notfier? */ 94 /* should I disconnect the socket notfier? */
95 OCOPPacket packe(OCOPPacket::IsRegistered, chan ); 95 OCOPPacket packe(OCOPPacket::IsRegistered, chan );
96 OCOPHead head = packe.head(); 96 OCOPHead head = packe.head();
97 write(m_socket, &head, sizeof(head) ); 97 write(m_socket, &head, sizeof(head) );
98 98
99 /* block */ 99 /* block */
100 OCOPPacket pack = packet(); 100 OCOPPacket pack = packet();
101 101
102 /* connect here again */ 102 /* connect here again */
103 if ( pack.channel() == chan ) { 103 if ( pack.channel() == chan ) {
104 QCString func = pack.header(); 104 QCString func = pack.header();
105 if (func[0] == 1 ) 105 if (func[0] == 1 )
106 return; 106 return true;
107 } 107 }
108 108
109 return false; 109 return false;
110}; 110};
111void OCOPClient::send( const QCString& chan, const QCString& fu, const QByteArray& arr ) { 111void OCOPClient::send( const QCString& chan, const QCString& fu, const QByteArray& arr ) {
112 OCOPPacket pack(OCOPPacket::Call, chan, fu, arr ); 112 OCOPPacket pack(OCOPPacket::Call, chan, fu, arr );
113 call( pack ); 113 call( pack );
114} 114}
115void OCOPClient::addChannel(const QCString& channet) { 115void OCOPClient::addChannel(const QCString& channel) {
116 OCOPPacket pack(OCOPPacket::RegisterChannel, channel ); 116 OCOPPacket pack(OCOPPacket::RegisterChannel, channel );
117 call( pack ); 117 call( pack );
118} 118}
119void OCOPClient::delChannel(const QCString& chan ) { 119void OCOPClient::delChannel(const QCString& chan ) {
120 OCOPPacket pack(OCOPPacket::UnregisterChannel, channel ); 120 OCOPPacket pack(OCOPPacket::UnregisterChannel, chan );
121 call( pack ); 121 call( pack );
122} 122}
123void OCOPPacket::call( const OCOPPacket& pack ) { 123void OCOPClient::call( const OCOPPacket& pack ) {
124 OCOPHead head = pack.head(); 124 OCOPHead head = pack.head();
125 write(m_socket, &head, sizeof(head) ); 125 write(m_socket, &head, sizeof(head) );
126 write(m_socket, pack.channel().data(), pack.channel().size() ); 126 write(m_socket, pack.channel().data(), pack.channel().size() );
127 write(m_socket, pack.header().data(), pack.header().size() ); 127 write(m_socket, pack.header().data(), pack.header().size() );
128 write(m_socket, pack.content().data(), pack.content().size() ); 128 write(m_socket, pack.content().data(), pack.content().size() );
129} 129}
diff --git a/x11/ipc/client/ocopclient.h b/x11/ipc/client/ocopclient.h
index db04d37..e9544b9 100644
--- a/x11/ipc/client/ocopclient.h
+++ b/x11/ipc/client/ocopclient.h
@@ -44,13 +44,13 @@ public:
44signals: 44signals:
45 void called(const QCString&, const QCString&, const QByteArray& ); 45 void called(const QCString&, const QCString&, const QByteArray& );
46private slots: 46private slots:
47 void init(const QCString& pa); 47 void init(const QCString& pa);
48 void newData(); 48 void newData();
49private: 49private:
50 OCOPPacket packet(); 50 OCOPPacket packet()const;
51 void call( const OCOPPacket& ); 51 void call( const OCOPPacket& );
52 52
53 QSocketNotifier* m_notify; 53 QSocketNotifier* m_notify;
54 int m_socket; 54 int m_socket;
55private slots: 55private slots:
56 56