0

Google テレビ ペアリング プロトコル ライブラリを実装するプログラム言語は 2 つあります。

  1. JAVA バージョン <-- 私の参考サンプル
  2. C++ バージョン <-- 私のターゲット

ペアリング プログラムの接続タスクを実装しています。こちらのようにペアリングライブラリを呼び出すJAVAサンプルコードを見つけました。

上記のリンク コードのメソッド「attemptToPair」の下の定義:

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

C++ 版ライブラリを呼び出してこの定義を実装する方法がわかりません。

クラス 'PoloWireInterface' は、C++ バージョン ライブラリの単なる抽象クラスであるためです。

さらに、このライブラリの下で PoloWireInterface を拡張する他のクラスはありません。(ここをチェック)

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);
4

1 に答える 1

0

Java ライブラリと C++ ライブラリの間で完全に一致するものは見つかりません。C++ ライブラリを操作するには、このチュートリアルを試してください。

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

于 2012-09-24T20:00:44.180 に答える