スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 我ながら良く判らない | トップページ | 次はサーバー機能 »

苦しみながらも前進

今は、macOS用ネイティブ版AGMPlayerの開発フェーズで、ローカルファイル系の操作は可能になったので、引き続き、ネットワーク系の実装を行なっているのだが、今日の時点で、ネットワーク越しでのファイルコピー操作等は可能になった。

昨日書いた様に、AGMPlayerでは、ネットワーク系処理は独立性が高いのだが、クライアント機能については、ライブラリビューとのインタフェースを持つ。

もっとも、ライブラリビューが操作している基本オブジェクトは一般的なファイルではなく、自前のファイルオブジェクトになっている。

つまり、ネットワーク系処理はライブラリビューと直接インタフェースしている訳ではなくて、前述のファイルオブジェクトを介してインタフェースしている。

より具体的に書くと、ライブラリビューは自前のファイラーオブジェクトを持っていて、ファイル操作に関連する様々な要求は、このファイラーオブジェクトに対して行っている。

そして、このファイラーオブジェクトが扱うのはインタフェース的には、ローカルファイルでもネットワークファイルでもなく、自前のファイルオブジェクトになる訳だ。

と、言う事なので、ライブラリビューは扱っているファイルがローカルファイルかネットワークファイルかに依らず、基本的には、ファイラーオブジェクトに対して同じ処理要求を行っている。

にもかかわらず、ライブラリビューではローカルファイルに対して処理が行われたり、ネットワークファイルに対して処理が行われたりする訳なのだが、これはつまり、前述のファイラーオブジェクトが、それぞれに対して同様の処理が行える機能を有しているからだ。

と、言う事で、AGMPlayerのライブラリビューでは、ある意味、2重の仮想化が行われているので、昨日書いた様に、その開発者である所の作者でも、ぱっと見、どういう構造になっているのか判らなくなったりするのだが、その分、実装するOSが異なっても、最上位層である所のライブラリビューの処理ルーチンを変更する必要性は皆無になっている。

もっとも、今回の開発では、ライブラリビューの実装に少し苦労しているのだが、その理由は、文字コードにある。

具体的には、少し前に書いた様に、元々のJava版、それを移植したWindows用のネイティブ版では、内部の文字コードはUTF16になっている。

これに対して、macOS用のネイティブ版では、OSのファイルシステム等がUTF8で文字を扱うので、内部的な文字コードはUTF8にしたのだが、AGMPlayerでは、ネットワーク越しに他OS上で動作しているAGMPlayerのサーバー機能やAGMServerと接続する訳だ。

つまり、macOS用のネイティブ版AGMPlayerの内部文字コードがUTF8だからといっても、ネットワーク越しで通信する場合の文字コードはUTF8には出来ない訳だ。

更に言えば、AGMPlayerでは、ライブラリフォルダーに情報ファイルを埋め込むのだが、そこにはファイルの並び順を定義する意味から、並び順に従ってフォルダー内ファイルのファイル名も、羅列される格好になっている。

それでは、そのファイル名の文字コードは? という話もあるし、Unix系OSでは、ディレクトリの区切り文字は「/」なのだが、Windows環境では「¥」になる。

それでは、ネットワーク接続の場合、前述の区切り文字は「/」なのか「¥」なのか? という話もある。

と、言う事で、非常に嫌らしいのだが、AGMPlayerというのは、元々、Linux系OS上で動作するJavaアプリであった所のAndroid版がベースになっていて、Windows用のネイティブ版というのは、その後、それと接続可能なモノとして開発した。

つまり、AGMPlayerでは、元々、前述の様な文字コードについても、予め、仮想化してあって、OS標準の文字コードを使っていた、という訳でもない訳だ。

このため、macOS用のネイティブ版でも、問題なく、既存のAndroid / Java / Windows版に接続できているのだが、だからといって、内部的には、文字コードの変換作業が不要になっている、という事はないので、作業を前に進めるのには、苦労を伴う事にはなる訳だ。

« 我ながら良く判らない | トップページ | 次はサーバー機能 »

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/534482/65363492

この記事へのトラックバック一覧です: 苦しみながらも前進:

« 我ながら良く判らない | トップページ | 次はサーバー機能 »

2017年9月
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    Cookieを無効にする設定およびAdsenseに関する詳細については、以下のリンクを参照下さい。

    広告 - ポリシーと規約 - Google