Merge branch 'master' of ssh://drop.maemo.org/git/vicar
[vicar] / src / vicar-telepathy / cpp / connection.cpp
index 58bbe92..a197955 100644 (file)
@@ -42,6 +42,8 @@ Based on Telepathy-SNOM with copyright notice below.
 #include <QDBusMessage>
 #include <QDBusReply>
 
+#define SELF_HANDLE 1  //Any non-zero
+
 
 namespace
 {
@@ -64,7 +66,11 @@ public:
         connection_status(Connection::Disconnected),
         adaptor(new ConnectionAdaptor(p)),
         connIfaceReqsAdaptor(new ConnectionInterfaceRequestsAdaptor(p)),
+<<<<<<< HEAD
+        logUtility(new LogUtility(p)),
+=======
         logUtility(new LogUtility("/var/log/vicar/vicar.log",p)),
+>>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
         parent(p)
     {
         Q_ASSERT(0 != adaptor);
@@ -94,7 +100,10 @@ Connection::Connection(const QString & account,
 
     QString strMessage;
     strMessage = "DEBUG: In Connection Constructor";
+<<<<<<< HEAD
+=======
     qDebug() << strMessage;
+>>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
     d->logUtility->logMessage(strMessage);
 
     Q_ASSERT(0 != d);
@@ -117,7 +126,19 @@ Connection::Connection(const QString & account,
     this->setProperty("HasImmortalHandles",true);
 
     this->setProperty("Status",org::freedesktop::Telepathy::CONNECTION_STATUS_CONNECTED);
+<<<<<<< HEAD
+
+
+    //this->setProperty("SelfHandle",org::freedesktop::Telepathy::HANDLE_TYPE_CONTACT);
+    uint selfHandle(SELF_HANDLE);
+    this->setProperty("SelfHandle",selfHandle);
+
+    strMessage = "VICaR Connection: Emitting SelfHandleChanged.";
+    d->logUtility->logMessage(strMessage);
+    emit SelfHandleChanged(selfHandle);
+=======
     this->setProperty("SelfHandle",org::freedesktop::Telepathy::HANDLE_TYPE_CONTACT);
+>>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
 
     //Set the property RequestableChannelClasses
     org::freedesktop::Telepathy::RequestableChannelClassList requestableChannelClasses;
@@ -149,14 +170,25 @@ Connection::Connection(const QString & account,
     //Set the property Channels
     org::freedesktop::Telepathy::ChannelDetailsList channelDetails;
     this->setProperty("Channels",QVariant::fromValue(channelDetails));
+<<<<<<< HEAD
+=======
 
     //Set the connection status to Connected (default for Vicar)
     d->connection_status = Connection::Connected;
+>>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
 
+    //Set the connection status to Connected (default for Vicar)
+    d->connection_status = Connection::Connected;
+
+
+    strMessage = "VICaR Connection: Connection set up.";
 
+<<<<<<< HEAD
+=======
     strMessage = "VICaR Connection: Connection set up.";
 
     qDebug() << strMessage;
+>>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
     d->logUtility->logMessage(strMessage);
 }
 
@@ -174,7 +206,10 @@ bool Connection::registerObject()
         if (!QDBusConnection::sessionBus().registerService(serviceName()))
         {
             strMessage = "VICaR Connection: Problem registering connection service:" + serviceName();
+<<<<<<< HEAD
+=======
             qDebug() << strMessage;
+>>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
             d->logUtility->logMessage(strMessage);
             return false;
         }
@@ -183,14 +218,20 @@ bool Connection::registerObject()
                                                           this))
         {
             strMessage = "VICaR Connection: Problem registering object path:" + objectPath().path();
+<<<<<<< HEAD
+=======
             qDebug() << strMessage;
+>>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
             d->logUtility->logMessage(strMessage);
             return false;
         }
     }
     else{
         strMessage = "VICaR Connection: " + serviceName()+" is already registered on DBus";
+<<<<<<< HEAD
+=======
         qDebug() << strMessage;
+>>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
         d->logUtility->logMessage(strMessage);
     }
     return true;
@@ -199,7 +240,10 @@ bool Connection::registerObject()
 void Connection::unregisterObject()
 {
     QString strMessage = "VICaR Connection: Unregistering Connection object from DBus";
+<<<<<<< HEAD
+=======
     qDebug() << strMessage;
+>>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
     d->logUtility->logMessage(strMessage);
     QDBusConnection::sessionBus().unregisterObject(objectPath().path());
     QDBusConnection::sessionBus().unregisterService(serviceName());
@@ -226,13 +270,19 @@ void Connection::Connect()
        I am not connecting to anything.
      */
     QString strMessage = "VICaR Connection: Changing status to Connected...";
+<<<<<<< HEAD
+=======
     qDebug() << strMessage;
+>>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
     d->logUtility->logMessage(strMessage);
     d->connection_status = Connection::Connected;
 
     //Let all the Telepathy clients know that connection status has changed
     strMessage = "VICaR Connection: Emitting StatusChanged.";
+<<<<<<< HEAD
+=======
     qDebug() << strMessage;
+>>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
     d->logUtility->logMessage(strMessage);
     emit StatusChanged(d->connection_status, ReasonRequested);
 }
@@ -240,13 +290,19 @@ void Connection::Connect()
 void Connection::Disconnect()
 {
     QString strMessage = "VICaR Connection: Changing status to Disconnected...";
+<<<<<<< HEAD
+=======
     qDebug() << strMessage;
+>>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
     d->logUtility->logMessage(strMessage);
     //We don't have any Handles to release here. So just change the status to Disconnected
     d->connection_status = Connection::Disconnected;
 
     strMessage = "VICaR Connection: Emitting StatusChanged";
+<<<<<<< HEAD
+=======
     qDebug() << strMessage;
+>>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
     d->logUtility->logMessage(strMessage);
     emit StatusChanged(d->connection_status, ReasonRequested);
 
@@ -258,6 +314,10 @@ void Connection::Disconnect()
 QStringList Connection::GetInterfaces()
 {
     QStringList result;
+
+    QString strMessage = "VICaR Connection: GetInterfaces.";
+    d->logUtility->logMessage(strMessage);
+
     if (d->connection_status != Connected)
     {
         sendErrorReply("org.freedesktop.Telepathy.Error.Disconnected",
@@ -269,30 +329,49 @@ QStringList Connection::GetInterfaces()
 }
 
 QString Connection::GetProtocol()
-{ return protocol_vicar; }
+{
+    QString strMessage = "VICaR Connection: GetProtocol.";
+    d->logUtility->logMessage(strMessage);
+    return protocol_vicar;
+}
 
 uint Connection::GetStatus()
-{ return static_cast<uint>(d->connection_status); }
+{
+    QString strMessage = "VICaR Connection: GetStatus.";
+    d->logUtility->logMessage(strMessage);
+    return static_cast<uint>(d->connection_status);
+}
 
 uint Connection::GetSelfHandle()
 {
     QString strMessage = "VICaR Connection: GetSelfHandle";
+<<<<<<< HEAD
+=======
     qDebug() << strMessage;
+>>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
     d->logUtility->logMessage(strMessage);
     if (d->connection_status != Connected)
     {
         sendErrorReply("org.freedesktop.Telepathy.Error.Disconnected",
                        "VICaR - Unable to get Self Handle. The connection is no longer available.");
         strMessage = "VICaR Connection: NOT CONNECTED when requesting selfhandle!";
+<<<<<<< HEAD
+=======
         qDebug() << strMessage;
+>>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
         d->logUtility->logMessage(strMessage);
         return 0;
     }
 
     //WARNING: Incomplete implemenation
+<<<<<<< HEAD
+    uint handle(SELF_HANDLE);
+    strMessage = "VICaR Connection: Returning Handle " + QString::number(handle) + "as self handle.";
+=======
     uint handle = 0;
     strMessage = "VICaR Connection: Returning Handle " + QString(handle) + "as self handle.";
     qDebug() << strMessage;
+>>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
     d->logUtility->logMessage(strMessage);
     return handle;
 }
@@ -300,6 +379,9 @@ uint Connection::GetSelfHandle()
 QList<uint> Connection::RequestHandles(uint handle_type,
                                        const QStringList & names)
 {
+    QString strMessage = "VICaR Connection: RequestHandles.";
+    d->logUtility->logMessage(strMessage);
+
     Q_UNUSED(names);
     QList<uint> result;
 
@@ -318,6 +400,7 @@ QList<uint> Connection::RequestHandles(uint handle_type,
     }
 
     //WARNING: Incomplete implementation. Create a handle and return the value here.
+    result.append(this->GetSelfHandle());
     return result;
 }
 
@@ -325,13 +408,19 @@ void Connection::HoldHandles(const uint handle_type, const QList<uint> &handles)
 {
     Q_UNUSED(handles);
     QString strMessage = "VICaR Connection: HoldHandles.";
+<<<<<<< HEAD
+=======
     qDebug() << strMessage;
+>>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
     d->logUtility->logMessage(strMessage);
     if (d->connection_status != Connected)
     {
 
         strMessage = "VICaR Connection: HoldHandles - Not Connected.";
+<<<<<<< HEAD
+=======
         qDebug() << strMessage;
+>>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
         d->logUtility->logMessage(strMessage);
 
         sendErrorReply("org.freedesktop.Telepathy.Error.Disconnected",
@@ -342,7 +431,10 @@ void Connection::HoldHandles(const uint handle_type, const QList<uint> &handles)
     {
 
         strMessage = "VICaR Connection: HoldHandles - Invalid Handle Type.";
+<<<<<<< HEAD
+=======
         qDebug() << strMessage;
+>>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
         d->logUtility->logMessage(strMessage);
 
         sendErrorReply("org.freedesktop.Telepathy.Error.InvalidArgument",
@@ -358,12 +450,18 @@ QStringList Connection::InspectHandles(const uint handle_type,
 {
     Q_UNUSED(handles);
     QStringList handlesList;
+<<<<<<< HEAD
+=======
 
     QString strMessage = "VICaR Connection: InspectHandles.";
     qDebug() << strMessage;
     d->logUtility->logMessage(strMessage);
+>>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
+
+    QString strMessage = "VICaR Connection: InspectHandles.";
+    //d->logUtility->logMessage(strMessage);
 
-        // check input:
+     // check input:
     if (d->connection_status != Connected)
     {
         sendErrorReply("org.freedesktop.Telepathy.Error.Disconnected",
@@ -375,6 +473,8 @@ QStringList Connection::InspectHandles(const uint handle_type,
         sendErrorReply("org.freedesktop.Telepathy.Error.InvalidArgument",
                        "VICaR - Supports handles of type Contact only.");
         return handlesList;
+<<<<<<< HEAD
+=======
     }
 
     uint handle = 0;
@@ -384,8 +484,22 @@ QStringList Connection::InspectHandles(const uint handle_type,
         qDebug() << strMessage;
         d->logUtility->logMessage(strMessage);
         handlesList.append(QString(handle));
+>>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
+    }
+
+    uint handle;
+
+    qDebug() << "VICaR Connction: " << handles.length()<< " handles passed to us";
+    for (int i = 0 ; i < handles.length(); i++) {
+        handle = handles.at(i);
+        strMessage = "VICaR Connection: Inspecting handle "+QString::number(handle);
+        d->logUtility->logMessage(strMessage);
+        handlesList.append(QString::number(handle));
     }
 
+    strMessage = "VICaR Connection: Handle inspection completed";
+    d->logUtility->logMessage(strMessage);
+
     //WARNING: Incomplete implementation
     return handlesList;
 }
@@ -393,13 +507,22 @@ QStringList Connection::InspectHandles(const uint handle_type,
 void Connection::ReleaseHandles(const uint handle_type, const QList<uint> &handles)
 {
     Q_UNUSED(handles);
+<<<<<<< HEAD
+    QString strMessage = "VICaR Connection: ReleaseHandles.";
+    d->logUtility->logMessage(strMessage);
+
+=======
     QString strMessage;
+>>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
     if (d->connection_status != Connected)
     {
         sendErrorReply("org.freedesktop.Telepathy.Error.Disconnected",
                        "VICaR - Unable to release handle. The connection is no longer available.");
         strMessage = "VICaR Connection: Releasing Handle while connection is no longer connected.";
+<<<<<<< HEAD
+=======
         qDebug() << strMessage;
+>>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
         d->logUtility->logMessage(strMessage);
         return;
     }
@@ -408,7 +531,10 @@ void Connection::ReleaseHandles(const uint handle_type, const QList<uint> &handl
         sendErrorReply("org.freedesktop.Telepathy.Error.InvalidArgument",
                        "VICaR - Supports handles of type Contact only.");
         strMessage =  "VICaR Connection: Trying to release a Handle that is not a contact.";
+<<<<<<< HEAD
+=======
         qDebug() << strMessage;
+>>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
         d->logUtility->logMessage(strMessage);
         return;
     }
@@ -418,6 +544,10 @@ void Connection::ReleaseHandles(const uint handle_type, const QList<uint> &handl
 
 org::freedesktop::Telepathy::ChannelInfoList Connection::ListChannels()
 {
+
+    QString strMessage = "VICaR Connection: ListChannels.";
+    d->logUtility->logMessage(strMessage);
+
     org::freedesktop::Telepathy::ChannelInfoList result;
     if (d->connection_status != Connected)
     {
@@ -440,6 +570,11 @@ QDBusObjectPath Connection::RequestChannel(const QString &type,
     Q_UNUSED(suppress_handler);
     //This method is deprecated and no longer used as per latest Telepathy spec
 
+
+    QString strMessage = "VICaR Connection: RequestChannel.";
+    d->logUtility->logMessage(strMessage);
+
+
     if (type != QString("org.freedesktop.Telepathy.Channel.Type.StreamedMedia"))
     {
         sendErrorReply("org.freedesktop.Telepathy.Error.NotImplemented",
@@ -463,6 +598,7 @@ QDBusObjectPath Connection::RequestChannel(const QString &type,
 
     //WARNING: Incomplete implementation, we are not creating any channels here at all.
     QDBusObjectPath channel_path;
+    qDebug() << "VICaR Connection: Returning null channel object path";
     return channel_path;
 }
 
@@ -474,7 +610,10 @@ QDBusObjectPath Connection::CreateChannel(const QVariantMap &request,
     Q_ASSERT(!request.isEmpty());
     QString strMessage;
     strMessage = "VICaR Connection: CreateChannel";
+<<<<<<< HEAD
+=======
     qDebug() << strMessage;
+>>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
     d->logUtility->logMessage(strMessage);
     qDebug() << " Request details are: "<< request;
 
@@ -493,7 +632,10 @@ bool Connection::EnsureChannel(const QVariantMap &request,
     Q_UNUSED(channel_properties);
     Q_ASSERT(!request.isEmpty());
     QString strMessage = "VICaR Connection: EnsureChannel";
+<<<<<<< HEAD
+=======
     qDebug() << strMessage;
+>>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
     d->logUtility->logMessage(strMessage);
     qDebug() << " Request details are: "<< request;
 
@@ -506,7 +648,10 @@ bool Connection::EnsureChannel(const QVariantMap &request,
 QDBusObjectPath Connection::processChannel(const QVariantMap &request){
 
     QString strMessage = "VICaR Connection: ProcessChannel";
+<<<<<<< HEAD
+=======
     qDebug() << strMessage;
+>>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
     d->logUtility->logMessage(strMessage);
 
     QDBusObjectPath channel_path;
@@ -570,7 +715,10 @@ QDBusObjectPath Connection::processChannel(const QVariantMap &request){
 
     strMessage = "VICaR Connection: Call is processed.";
 
+<<<<<<< HEAD
+=======
     qDebug() << strMessage;
+>>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
     d->logUtility->logMessage(strMessage);
 
     return channel_path;
@@ -583,7 +731,10 @@ void Connection::AddClientInterest(const QStringList &tokens){
     QString strMessage;
 
     strMessage = "VICaR Connection: AddClientInterest";
+<<<<<<< HEAD
+=======
     qDebug() << strMessage;
+>>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
     d->logUtility->logMessage(strMessage);
 }
 
@@ -593,7 +744,10 @@ void Connection::RemoveClientInterest(const QStringList &tokens){
     QString strMessage;
 
     strMessage = "VICaR Connection: RemoveClientInterest";
+<<<<<<< HEAD
+=======
     qDebug() << strMessage;
+>>>>>>> 74800375ecf7f41e290cf7cc7fa9ee8b230be68e
     d->logUtility->logMessage(strMessage);
 }