Vortex LibraryをラッピングするMYVORTEXSERVERクラスとMYVORTEXCLIENTクラスを作ってみて,うまくサーバークライアント間で通信ができるようになった。しかし依然としてアプリケーションプロトコルのイメージが頭に浮かばない。XMLをやりとりしたら自由度が高そう,と思っていたら,VortexでXML-RPCがサポートされていたので,使ってみようかと思う。IDL/XDLを作ってコンパイルするワンクッションが面倒くさいが,車輪の再発明よりは良いだろう。
MYVORTEXSERVERにXML-RPCのサポートを追加したら,
../../Library/myvortexserver.cpp:119: error: ‘vortex_xml_rpc_accept_negotiation’ was not declared in this scope
とエラー発生。./configureのパラメータ足りなかったかな? と思ってvortexを再ビルドしたが,単に,
#include <vortex_xml_rpc.h>
が足りないだけだった。libvortex-xml-rpc-1.1.aのリンクも追加。
MYVORTEXCLIENTもXML-RPC対応(IDL/XDLは使わずRaw API手動呼び出し)したら,
method_call_free (invocator);
の呼び出しでアボートしたので削除。無事動作。
IDL/XDLのコンパイル出力はCになるようなので,アップデート後にいちいちC++に書き換えるのが面倒だ。なので,このままRaw API使用で突っ走るかも。
さらにBHPROTOCOLSERVERとBHPROTOCOLCLIENTでラッピングして,BHPROTOCOLの実装準備完了。BHPROTOCOLからVortexを呼んでいるところは直すこと。抽象化。疎結合。
コメントを残す