You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by Gjergj <gi...@git.apache.org> on 2016/04/06 09:19:18 UTC

[GitHub] thrift pull request: THRIFT-3779 Qt Client Android and Windows QTc...

GitHub user Gjergj opened a pull request:

    https://github.com/apache/thrift/pull/979

    THRIFT-3779 Qt Client Android and Windows QTcpSocket

    libthriftQt.pro creates .dll and .lib for Windows but also .so and .a libraries for Android.
    To generate .lib or .a library uncomment CONFIG += staticlib inside the .pro file.
    The port is based on TQtcpSocket class. Currently it only supports TBinaryProtocol and TCompactProtocol.
    The TQtcpSocket is not tested for server or SSL usage.
    libthriftQt/thrift/config.h is just a hack to have config.h in our include path and #define STRERROR_R_CHAR_P 0

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/Gjergj/thrift THRIFT-3779

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/thrift/pull/979.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #979
    
----
commit c07cf39775e0b39f5251b72c14419a583a87cc70
Author: Gjergji <gj...@yahoo.com>
Date:   2016-04-06T07:11:09Z

    THRIFT-3779 Qt Client Android and Windows QTcpSocket

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] thrift pull request: THRIFT-3779 Qt Client Android and Windows QTc...

Posted by nsuke <gi...@git.apache.org>.
Github user nsuke commented on the pull request:

    https://github.com/apache/thrift/pull/979#issuecomment-207311366
  
    FWIW I use Thrift C++ lib on Windows and Android.
    We're building it for android only on Linux but I'm sure it's possible on Windows too.
    I guess it's a general cross compiling problem, not something specific to Thrift.
    You need to use CMake with a toolchain file (or maybe Autotools on msys2/cygwin) to setup proper cross compiling for Android NDK.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] thrift pull request: THRIFT-3779 Qt Client Android and Windows QTc...

Posted by Gjergj <gi...@git.apache.org>.
Github user Gjergj commented on the pull request:

    https://github.com/apache/thrift/pull/979#issuecomment-207300398
  
    Since I use Qt for Android development an I use Windows as environment I had a difficult time compiling TSocket for Android on Windows. And i figured that QTcpSocket might do the same and compile for all platforms that Qt runs and an all development environments that Qt runs.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] thrift pull request: THRIFT-3779 Qt Client Android and Windows QTc...

Posted by nsuke <gi...@git.apache.org>.
Github user nsuke commented on the pull request:

    https://github.com/apache/thrift/pull/979#issuecomment-207398558
  
    The toolchain file is rudimentary and full of hard coded values.
    You can manually edit the file to match your environemnt or instead pick more full fledged one from the web, for example https://github.com/Itseez/opencv/blob/master/platforms/android/android.toolchain.cmake .



---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] thrift pull request #979: THRIFT-3779 Qt Client Android and Windows QTcpSock...

Posted by Gjergj <gi...@git.apache.org>.
Github user Gjergj closed the pull request at:

    https://github.com/apache/thrift/pull/979


---

[GitHub] thrift pull request: THRIFT-3779 Qt Client Android and Windows QTc...

Posted by bufferoverflow <gi...@git.apache.org>.
Github user bufferoverflow commented on a diff in the pull request:

    https://github.com/apache/thrift/pull/979#discussion_r58678766
  
    --- Diff: lib/cpp/libthriftQt.pro ---
    @@ -0,0 +1,161 @@
    +QT       += core network
    +
    +CONFIG += c++11
    +
    +greaterThan(QT_MAJOR_VERSION, 4): QT -= widgets
    +
    +TARGET = libthrift
    +TEMPLATE = lib
    +#CONFIG += staticlib
    +
    +SOURCES += \
    +    src/thrift/TApplicationException.cpp \
    +    src/thrift/TOutput.cpp \
    +    src/thrift/transport/TBufferTransports.cpp \
    +    src/thrift/transport/TFDTransport.cpp \
    +    src/thrift/transport/TQtcpSocket.cpp \
    +    src/thrift/transport/TTransportException.cpp \
    +    src/thrift/transport/TTransportUtils.cpp \
    +    src/thrift/server/TConnectedClient.cpp \
    +    src/thrift/protocol/TBase64Utils.cpp \
    +    src/thrift/protocol/TBinaryProtocol.tcc \
    +    src/thrift/protocol/TDebugProtocol.cpp \
    +    src/thrift/protocol/TJSONProtocol.cpp \
    +    src/thrift/protocol/TMultiplexedProtocol.cpp \
    +    src/thrift/processor/PeekProcessor.cpp \
    +    src/thrift/concurrency/StdThreadFactory.cpp \
    +    src/thrift/concurrency/Util.cpp \
    +    src/thrift/async/TAsyncChannel.cpp \
    +    src/thrift/protocol/TProtocol.cpp \
    +    src/thrift/async/TConcurrentClientSyncInfo.cpp \
    +    src/thrift/protocol/TCompactProtocol.tcc \
    +
    +
    +
    +HEADERS  += \
    +    src/thrift/TApplicationException.h \
    +    src/thrift/Thrift.h \
    +    src/thrift/TOutput.h \
    +    src/thrift/TProcessor.h \
    +    src/thrift/protocol/TProtocol.h \
    +    src/thrift/transport/TBufferTransports.h \
    +    src/thrift/transport/TFDTransport.h \
    +    src/thrift/transport/TQtcpSocket.h \
    +    src/thrift/transport/TServerTransport.h \
    +    src/thrift/transport/TTransport.h \
    +    src/thrift/transport/TTransportException.h \
    +    src/thrift/transport/TTransportUtils.h \
    +    src/thrift/transport/TVirtualTransport.h \
    +    src/thrift/server/TConnectedClient.h \
    +    src/thrift/server/TServer.h \
    +    src/thrift/protocol/TBase64Utils.h \
    +    src/thrift/protocol/TBinaryProtocol.h \
    +    src/thrift/protocol/TDebugProtocol.h \
    +    src/thrift/protocol/TJSONProtocol.h \
    +    src/thrift/protocol/TMultiplexedProtocol.h \
    +    src/thrift/protocol/TVirtualProtocol.h \
    +    src/thrift/processor/PeekProcessor.h \
    +    src/thrift/processor/TMultiplexedProcessor.h \
    +    src/thrift/concurrency/Exception.h \
    +    src/thrift/concurrency/PlatformThreadFactory.h \
    +    src/thrift/concurrency/StdThreadFactory.h \
    +    src/thrift/concurrency/Util.h \
    +    src/thrift/async/TAsyncChannel.h \
    +    src/thrift/async/TConcurrentClientSyncInfo.h \
    +    src/thrift/protocol/TCompactProtocol.h
    +
    +
    +win32 {
    +    SOURCES += \
    +    src/thrift/async/TAsyncChannel.cpp \
    +    src/thrift/concurrency/BoostMonitor.cpp \
    +    src/thrift/concurrency/BoostMutex.cpp \
    +    src/thrift/concurrency/BoostThreadFactory.cpp \
    +    src/thrift/concurrency/ThreadManager.cpp \
    +    src/thrift/concurrency/TimerManager.cpp \
    +    src/thrift/server/TServerFramework.cpp \
    +    src/thrift/server/TSimpleServer.cpp \
    +    src/thrift/server/TThreadedServer.cpp \
    +    src/thrift/server/TThreadPoolServer.cpp \
    +    src/thrift/windows/GetTimeOfDay.cpp \
    +    src/thrift/windows/OverlappedSubmissionThread.cpp \
    +    src/thrift/windows/SocketPair.cpp \
    +    src/thrift/windows/TWinsockSingleton.cpp \
    +    src/thrift/windows/WinFcntl.cpp \
    +    src/thrift/transport/TFileTransport.cpp \
    +    src/thrift/transport/THttpClient.cpp \
    +    src/thrift/transport/THttpServer.cpp \
    +    src/thrift/transport/THttpTransport.cpp \
    +    src/thrift/transport/TPipe.cpp \
    +    src/thrift/transport/TPipeServer.cpp \
    +    src/thrift/transport/TServerSocket.cpp \
    +    src/thrift/transport/TSimpleFileTransport.cpp \
    +    src/thrift/transport/TSocket.cpp \
    +    src/thrift/transport/TSSLSocket.cpp
    +
    +    HEADERS  += \
    +    src/thrift/async/TAsyncChannel.h \
    +    src/thrift/concurrency/BoostThreadFactory.h \
    +    src/thrift/server/TServerFramework.h \
    +    src/thrift/server/TSimpleServer.h \
    +    src/thrift/server/TThreadedServer.h \
    +    src/thrift/server/TThreadPoolServer.h \
    +    src/thrift/windows/config.h \
    +    src/thrift/windows/GetTimeOfDay.h \
    +    src/thrift/windows/Operators.h \
    +    src/thrift/windows/OverlappedSubmissionThread.h \
    +    src/thrift/windows/SocketPair.h \
    +    src/thrift/windows/TWinsockSingleton.h \
    +    src/thrift/windows/WinFcntl.h \
    +    src/thrift/transport/TFileTransport.h \
    +    src/thrift/transport/THttpClient.h \
    +    src/thrift/transport/THttpServer.h \
    +    src/thrift/transport/THttpTransport.h \
    +    src/thrift/transport/TPipe.h \
    +    src/thrift/transport/TPipeServer.h \
    +    src/thrift/transport/TServerSocket.h \
    +    src/thrift/transport/TServerTransport.h \
    +    src/thrift/transport/TSimpleFileTransport.h \
    +    src/thrift/transport/TSocket.h \
    +    src/thrift/transport/TSSLSocket.h
    +
    +    INCLUDEPATH += "D:\libs\OpenSSL-Win64_1.0.1i\include"
    +
    +    LIBS += -LD:\libs\boost_1_58_0_X64_VS2013\lib64-msvc-12.0 -llibboost_thread-vc120-mt-gd-1_58 -llibboost_chrono-vc120-mt-gd-1_58
    +    LIBS += -LD:\libs\OpenSSL-Win64_1.0.1i\lib\VC -llibeay32MDd -lssleay32MTd
    +
    +    CONFIG(debug, debug|release) {
    +        DESTDIR = ../cpp/DebugQtWin
    +        OBJECTS_DIR = ../cpp/DebugQtWin/.obj
    +    } else {
    +        DESTDIR = ../cpp/releaseQtWin
    +        OBJECTS_DIR = ../cpp/releaseQtWin/.obj
    +    }
    +}
    +android {
    +    #SOURCES +=
    +    HEADERS += libthriftQt/thrift/config.h \
    --- End diff --
    
    please use `#include <thrift/thrift-config.h>`
    `config.h` is generated and should not be part of the source tree


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] thrift pull request: THRIFT-3779 Qt Client Android and Windows QTc...

Posted by nsuke <gi...@git.apache.org>.
Github user nsuke commented on the pull request:

    https://github.com/apache/thrift/pull/979#issuecomment-207267343
  
    @Gjergj to me, as Qt sockets are inherently async, synchronous-only support seems a bit strange.
    I think the whole point of existing TQTcpServer is to provide async support using Qt event loop, as an alternative to libevent based one.
    What is your motivation for this ?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] thrift pull request: THRIFT-3779 Qt Client Android and Windows QTc...

Posted by Gjergj <gi...@git.apache.org>.
Github user Gjergj commented on the pull request:

    https://github.com/apache/thrift/pull/979#issuecomment-207394496
  
    I tried to build for Android under Linux but failed.
    cmake -DCMAKE_TOOLCHAIN_FILE=../build/cmake/android-toolchain.cmake ..
    Failed on serveral errors.
    Do you mind sharing how you did it?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] thrift pull request: THRIFT-3779 Qt Client Android and Windows QTc...

Posted by Gjergj <gi...@git.apache.org>.
Github user Gjergj commented on the pull request:

    https://github.com/apache/thrift/pull/979#issuecomment-206486758
  
    I'll have a look at TQIODeviceTransport and see how it works as a client.
    As per config.h the idea is the same as in Windows port I guess.
    My cmake exprience is limited and I do not know how cmake can generate the config.h on Windows.
    Also I do not know how the cmake can help to build/generate using Qt for Android without QtCreator.
    The idea is that it should support Windows as well as Linux development using Qt.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] thrift pull request: THRIFT-3779 Qt Client Android and Windows QTc...

Posted by nsuke <gi...@git.apache.org>.
Github user nsuke commented on the pull request:

    https://github.com/apache/thrift/pull/979#issuecomment-206477110
  
    Why not enhance lib/cpp/src/thrift/qt/TQIODeviceTransport.cpp instead ?
    
    As to the qmake file, I don't think we want to introduce yet another build system.
    As autotools and cmake handles config.h generation for android, the pre-generated config.h won't be needed either.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] thrift pull request: THRIFT-3779 Qt Client Android and Windows QTc...

Posted by Gjergj <gi...@git.apache.org>.
Github user Gjergj commented on the pull request:

    https://github.com/apache/thrift/pull/979#issuecomment-207782458
  
    I finally succeeded to build for Android under Windows and Linux.
    I took me one day and a half though.
    Using Qt it would be much easier if one used Qt as client.
    Is there anything I can change for the Qt Client based on QTcpSocket patch to be accepted?
    Thanks for the help.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] thrift issue #979: THRIFT-3779 Qt Client Android and Windows QTcpSocket

Posted by jeking3 <gi...@git.apache.org>.
Github user jeking3 commented on the issue:

    https://github.com/apache/thrift/pull/979
  
    Folks who originally commented on this, please follow up.


---

[GitHub] thrift issue #979: THRIFT-3779 Qt Client Android and Windows QTcpSocket

Posted by nsuke <gi...@git.apache.org>.
Github user nsuke commented on the issue:

    https://github.com/apache/thrift/pull/979
  
    This PR does the following
    * use `qmake` in addition to autotools and cmake to build C++ lib
    * introduce blocking variant of Qt based transport
    
    The motivation was to use blocking transport on android. The existing solution for this is to build TSocket for Android using CMake. While I agree that qmake is much more easier to build for android, it's only because CMake is not that easy to use for android cross compilation.


---

[GitHub] thrift pull request: THRIFT-3779 Qt Client Android and Windows QTc...

Posted by Gjergj <gi...@git.apache.org>.
Github user Gjergj commented on a diff in the pull request:

    https://github.com/apache/thrift/pull/979#discussion_r58687272
  
    --- Diff: lib/cpp/libthriftQt.pro ---
    @@ -0,0 +1,161 @@
    +QT       += core network
    +
    +CONFIG += c++11
    +
    +greaterThan(QT_MAJOR_VERSION, 4): QT -= widgets
    +
    +TARGET = libthrift
    +TEMPLATE = lib
    +#CONFIG += staticlib
    +
    +SOURCES += \
    +    src/thrift/TApplicationException.cpp \
    +    src/thrift/TOutput.cpp \
    +    src/thrift/transport/TBufferTransports.cpp \
    +    src/thrift/transport/TFDTransport.cpp \
    +    src/thrift/transport/TQtcpSocket.cpp \
    +    src/thrift/transport/TTransportException.cpp \
    +    src/thrift/transport/TTransportUtils.cpp \
    +    src/thrift/server/TConnectedClient.cpp \
    +    src/thrift/protocol/TBase64Utils.cpp \
    +    src/thrift/protocol/TBinaryProtocol.tcc \
    +    src/thrift/protocol/TDebugProtocol.cpp \
    +    src/thrift/protocol/TJSONProtocol.cpp \
    +    src/thrift/protocol/TMultiplexedProtocol.cpp \
    +    src/thrift/processor/PeekProcessor.cpp \
    +    src/thrift/concurrency/StdThreadFactory.cpp \
    +    src/thrift/concurrency/Util.cpp \
    +    src/thrift/async/TAsyncChannel.cpp \
    +    src/thrift/protocol/TProtocol.cpp \
    +    src/thrift/async/TConcurrentClientSyncInfo.cpp \
    +    src/thrift/protocol/TCompactProtocol.tcc \
    +
    +
    +
    +HEADERS  += \
    +    src/thrift/TApplicationException.h \
    +    src/thrift/Thrift.h \
    +    src/thrift/TOutput.h \
    +    src/thrift/TProcessor.h \
    +    src/thrift/protocol/TProtocol.h \
    +    src/thrift/transport/TBufferTransports.h \
    +    src/thrift/transport/TFDTransport.h \
    +    src/thrift/transport/TQtcpSocket.h \
    +    src/thrift/transport/TServerTransport.h \
    +    src/thrift/transport/TTransport.h \
    +    src/thrift/transport/TTransportException.h \
    +    src/thrift/transport/TTransportUtils.h \
    +    src/thrift/transport/TVirtualTransport.h \
    +    src/thrift/server/TConnectedClient.h \
    +    src/thrift/server/TServer.h \
    +    src/thrift/protocol/TBase64Utils.h \
    +    src/thrift/protocol/TBinaryProtocol.h \
    +    src/thrift/protocol/TDebugProtocol.h \
    +    src/thrift/protocol/TJSONProtocol.h \
    +    src/thrift/protocol/TMultiplexedProtocol.h \
    +    src/thrift/protocol/TVirtualProtocol.h \
    +    src/thrift/processor/PeekProcessor.h \
    +    src/thrift/processor/TMultiplexedProcessor.h \
    +    src/thrift/concurrency/Exception.h \
    +    src/thrift/concurrency/PlatformThreadFactory.h \
    +    src/thrift/concurrency/StdThreadFactory.h \
    +    src/thrift/concurrency/Util.h \
    +    src/thrift/async/TAsyncChannel.h \
    +    src/thrift/async/TConcurrentClientSyncInfo.h \
    +    src/thrift/protocol/TCompactProtocol.h
    +
    +
    +win32 {
    +    SOURCES += \
    +    src/thrift/async/TAsyncChannel.cpp \
    +    src/thrift/concurrency/BoostMonitor.cpp \
    +    src/thrift/concurrency/BoostMutex.cpp \
    +    src/thrift/concurrency/BoostThreadFactory.cpp \
    +    src/thrift/concurrency/ThreadManager.cpp \
    +    src/thrift/concurrency/TimerManager.cpp \
    +    src/thrift/server/TServerFramework.cpp \
    +    src/thrift/server/TSimpleServer.cpp \
    +    src/thrift/server/TThreadedServer.cpp \
    +    src/thrift/server/TThreadPoolServer.cpp \
    +    src/thrift/windows/GetTimeOfDay.cpp \
    +    src/thrift/windows/OverlappedSubmissionThread.cpp \
    +    src/thrift/windows/SocketPair.cpp \
    +    src/thrift/windows/TWinsockSingleton.cpp \
    +    src/thrift/windows/WinFcntl.cpp \
    +    src/thrift/transport/TFileTransport.cpp \
    +    src/thrift/transport/THttpClient.cpp \
    +    src/thrift/transport/THttpServer.cpp \
    +    src/thrift/transport/THttpTransport.cpp \
    +    src/thrift/transport/TPipe.cpp \
    +    src/thrift/transport/TPipeServer.cpp \
    +    src/thrift/transport/TServerSocket.cpp \
    +    src/thrift/transport/TSimpleFileTransport.cpp \
    +    src/thrift/transport/TSocket.cpp \
    +    src/thrift/transport/TSSLSocket.cpp
    +
    +    HEADERS  += \
    +    src/thrift/async/TAsyncChannel.h \
    +    src/thrift/concurrency/BoostThreadFactory.h \
    +    src/thrift/server/TServerFramework.h \
    +    src/thrift/server/TSimpleServer.h \
    +    src/thrift/server/TThreadedServer.h \
    +    src/thrift/server/TThreadPoolServer.h \
    +    src/thrift/windows/config.h \
    +    src/thrift/windows/GetTimeOfDay.h \
    +    src/thrift/windows/Operators.h \
    +    src/thrift/windows/OverlappedSubmissionThread.h \
    +    src/thrift/windows/SocketPair.h \
    +    src/thrift/windows/TWinsockSingleton.h \
    +    src/thrift/windows/WinFcntl.h \
    +    src/thrift/transport/TFileTransport.h \
    +    src/thrift/transport/THttpClient.h \
    +    src/thrift/transport/THttpServer.h \
    +    src/thrift/transport/THttpTransport.h \
    +    src/thrift/transport/TPipe.h \
    +    src/thrift/transport/TPipeServer.h \
    +    src/thrift/transport/TServerSocket.h \
    +    src/thrift/transport/TServerTransport.h \
    +    src/thrift/transport/TSimpleFileTransport.h \
    +    src/thrift/transport/TSocket.h \
    +    src/thrift/transport/TSSLSocket.h
    +
    +    INCLUDEPATH += "D:\libs\OpenSSL-Win64_1.0.1i\include"
    +
    +    LIBS += -LD:\libs\boost_1_58_0_X64_VS2013\lib64-msvc-12.0 -llibboost_thread-vc120-mt-gd-1_58 -llibboost_chrono-vc120-mt-gd-1_58
    +    LIBS += -LD:\libs\OpenSSL-Win64_1.0.1i\lib\VC -llibeay32MDd -lssleay32MTd
    +
    +    CONFIG(debug, debug|release) {
    +        DESTDIR = ../cpp/DebugQtWin
    +        OBJECTS_DIR = ../cpp/DebugQtWin/.obj
    +    } else {
    +        DESTDIR = ../cpp/releaseQtWin
    +        OBJECTS_DIR = ../cpp/releaseQtWin/.obj
    +    }
    +}
    +android {
    +    #SOURCES +=
    +    HEADERS += libthriftQt/thrift/config.h \
    --- End diff --
    
    At first I did not want to change thrift-config.h
    Fixed now.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] thrift pull request: THRIFT-3779 Qt Client Android and Windows QTc...

Posted by nsuke <gi...@git.apache.org>.
Github user nsuke commented on the pull request:

    https://github.com/apache/thrift/pull/979#issuecomment-207295670
  
    > I was just looking for something like TSocket based on Qt 
    
    Why you needed one ?
    In other words, how does it work better for you compared to plain TSocket ?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] thrift pull request: THRIFT-3779 Qt Client Android and Windows QTc...

Posted by Gjergj <gi...@git.apache.org>.
Github user Gjergj commented on the pull request:

    https://github.com/apache/thrift/pull/979#issuecomment-206763268
  
     lib/cpp/src/thrift/qt/TQIODeviceTransport.cpp  seems to be written for  lib/cpp/src/thrift/qt/TQTcpServer.cpp  which is an async server. The lib/cpp/src/thrift/transport/TQtcpSocket I wrote is for a sync client.
    Qt sync TcpSocket communication requires that you call waitForBytesWritten , waitForReadyRead and waitForConnected so I am not quite sure how to modify TQIODeviceTransport.
    I am open for any suggestion about this and cmake/config.h issue.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] thrift pull request: THRIFT-3779 Qt Client Android and Windows QTc...

Posted by Gjergj <gi...@git.apache.org>.
Github user Gjergj commented on the pull request:

    https://github.com/apache/thrift/pull/979#issuecomment-207283113
  
    @nsuke I was just looking for something like TSocket based on Qt as I needed a synchronous client. And I do not see how async Qt sockets would fit in synchronous client.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] thrift issue #979: THRIFT-3779 Qt Client Android and Windows QTcpSocket

Posted by Gjergj <gi...@git.apache.org>.
Github user Gjergj commented on the issue:

    https://github.com/apache/thrift/pull/979
  
    Indeed, compiling 0.9.3 on Android was a pain. I had to get the cross compile cmake file from another project.
    Since I was using Qt fro Android development, using QSocket was an easier to cross compile thrift for Android.
    
    However I am not interested anymore to take this any further.


---