homescreenapp/hsdomainmodel/inc/hsipcchannel.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 19 Mar 2010 09:27:44 +0200
changeset 35 f9ce957a272c
permissions -rw-r--r--
Revision: 201007 Kit: 201011

#ifndef HSIPCHANNEL_H
#define HSIPCHANNEL_H

#include <QLocalSocket>
#include <QVariantMap>

#include "hsdomainmodel_global.h"

class QDataStream;

class HSDOMAINMODEL_EXPORT HsIpcChannel : public QObject
{
    Q_OBJECT
public:
    
    virtual ~HsIpcChannel();

    bool isConnected() const;
    bool sendMessage(const QVariantMap &message);
    bool waitForSendMessage(const QVariantMap &message);
    bool waitForReadMessage(QVariantMap &message);
    virtual void closeConnection()=0;

signals:
    void connectionEstablished();
    void connectionError();
    void messageReceived(const QVariantMap &message);
    void disconnected();
private slots:
    void onReadyRead();
    void onError(QLocalSocket::LocalSocketError socketError);

protected:
     HsIpcChannel(QObject *parent = 0);
     
protected:
    quint32 mBlockSize;
    QLocalSocket *mSocket;
};

#endif // HsIpcChannel_H