如何在C ++的google tv配对协议下实现DoPair方法

时间:2012-09-24 16:43:14

标签: google-tv

有两种程序语言可用于实施Google tv配对协议库:

  1. JAVA版本< - 我的参考样本
  2. C ++版本< - 我的目标
  3. 我正在实施配对程序的连接任务。我找到了一些JAVA示例代码来调用配对库,就像here一样。

    上述链接代码中'attemptToPair'方法下的定义:

    PoloWireInterface protocol = 
                  WireFormat.PROTOCOL_BUFFERS.getWireInterface(context);
    

    我不知道如何通过调用C ++版本库来实现此定义。

    因为'PoloWireInterface'类只是C ++版本库下的抽象类。

    此外,没有任何其他类扩展此库下的PoloWireInterface。 (检查here

    如果没有PoloWireInterface实例,我无法建立'ClientPairingSession'的实例。


    我的客户端部分配对任务如下代码,但它不起作用:'(

    using namespace polo::pairing;
    
    using namespace polo::wire;
    
    using namespace polo::encoding;
    
    X509* peer_cert = // peer side certificate, load by openssl
    
    X509* local_cert = // local side certificate,  generate by openssl
    
    PairingContext* context;
    
    context = new PairingContext(local_cert,peer_cert,false);
    
    // CPoloWireInterface extends abstract class PoloWireInterface
    PoloWireInterface* protocol = new CPoloWireInterface(); 
    
    PoloWireAdapter* wire = new protobuf::ProtobufWireAdapter(protocol);
    
    PoloChallengeResponse* challenge;
    
    challenge = new PoloChallengeResponse(local_cert,peer_cert);
    
    ClientPairingSession* mClientPairingSession;
    
    mClientPairingSession = new ClientPairingSession
        (wire, context, challenge, service_name, "AnyMote");
    
    EncodingOption hexEnc(EncodingOption::kHexadecimal, 4);
    
    mClientPairingSession->AddInputEncoding(hexEnc);
    
    mClientPairingSession->AddOutputEncoding(hexEnc);
    
    // CPairingListener extends abstract class PairingListener
    PairingListener* listener = new CPairingListener(); 
    
    mClientPairingSession->DoPair(listener);
    

1 个答案:

答案 0 :(得分:0)

您将找不到java和c ++库之间的完全匹配。 您应该尝试使用本教程来使用c ++库:

https://google-tv-chrome-extensions.googlecode.com/git/LearningExerciseInstructions/instructions.html