void TAsyncProtocolProcessor::process(
    apache::thrift::stdcxx::function<void(bool healthy)> _return,
    boost::shared_ptr<TBufferBase> ibuf,
    boost::shared_ptr<TBufferBase> obuf) {
  boost::shared_ptr<TProtocol> iprot(pfact_->getProtocol(ibuf));
  boost::shared_ptr<TProtocol> oprot(pfact_->getProtocol(obuf));
  return underlying_->process(
      apache::thrift::stdcxx::bind(
        &TAsyncProtocolProcessor::finish,
        _return,
        oprot,
        apache::thrift::stdcxx::placeholders::_1),
      iprot, oprot);
}
bool CommunicationManager::initUserStore() {
    QLOG_DEBUG() << "Inside CommunicationManager::initUserStore()";
    try {



        shared_ptr<TSSLSocketFactory> sslSocketFactory(new TSSLSocketFactory());
        QString pgmDir = global.getProgramDirPath() + "/certs/PCA-3G2.pem";
        sslSocketFactory->loadTrustedCertificates(pgmDir.toStdString().c_str());
        sslSocketFactory->authenticate(true);

        sslSocketUserStore = sslSocketFactory->createSocket(evernoteHost, 443);

        shared_ptr<TBufferedTransport> bufferedTransport(new TBufferedTransport(sslSocketUserStore));
        userStoreHttpClient = shared_ptr<TTransport>(new THttpClient(bufferedTransport, evernoteHost, userStorePath));

        userStoreHttpClient->open();
        shared_ptr<TProtocol> iprot(new TBinaryProtocol(userStoreHttpClient));
        userStoreClient = shared_ptr<UserStoreClient>(new UserStoreClient(iprot));

//        authenticationResult = shared_ptr<AuthenticationResult>(new AuthenticationResult());

//        QLOG_DEBUG() << "authenticating";
//        userStoreClient->authenticate(
//                    *authenticationResult,
//                    "<userid>",
//                    "<password>",
//                    EDAM_CONSUMER_KEY,
//                    EDAM_CONSUMER_SECRET);

    } catch (EDAMUserException e) {
        QLOG_ERROR() << "EDAMUserException:" << e.errorCode << endl;
        return false;
    } catch (EDAMSystemException e) {
        QLOG_ERROR() << "EDAMSystemException:" << QString::fromStdString(e.message) << endl;
        return false;
    } catch (TTransportException e) {
        QLOG_ERROR() << "TTransportException:" << e.what() << endl;
        return false;
    }
    QLOG_DEBUG() << "Leaving CommunicationManager::initUserStore()";
    return true;
}