狠狠撸

狠狠撸Share a Scribd company logo
IDLリーディング
xpidl編
株式会社
グローバルサイバーグループ
藪下 正美
自己紹介
? もうみんな知ってるよね!
会社紹介
? 株式会社グローバルサイバーグループ
– 時間ないので省略
アジェンダ
? xpidlとは
? xpidlを読む
– xpidlで使える型
– xpidlの属性
? xpidlの実装を見つける
xpidlとは
? xpidlはJSに対してAPIを提供するインター
フェイス定義言語のひとつです
? なんかgeckoにいっぱいいます
xpidlを読む
? xpidlを読むのに気を付けるポイントがい
くつかあります
– 型
? C++とJSの型の対応に気を付ける必要があります
? また、xpidlでは引数のin/outが指定できるのでそこ
も意識します
– objdir-gecko/dist/include
xpidlで使える型
? webidlよりいっぱいあります。。。
– いっぱいあります。。。
– 多すぎるのでwebで!
? https://developer.mozilla.org/en-
US/docs/Mozilla/XPIDL#Types
xpidlで使える属性
? こっちはweidlより少ないですAttribute Interpretation
uuid(12345678-
fedc-ba98-7654-
0123456789ab)
This is the internal way this interface is accessed; it must be
unique, and the uuid must be changed anytime any part of
the interface or its ancestors are changed. For instructions on
how to generate an UUID see Generating GUIDs.
builtinclass
JavaScript classes are forbidden from implementing this
interface. All children must also be marked with this property.
function
The JavaScript implementation of this interface may be a
function that is invoked on property calls instead of an object
with the given property
scriptable
This interface is usable by JavaScript classes. Must inherit
from a scriptable interface.
deprecated
This interface should no longer be used. The compiler will
emit warnings if you attempt to use this.
objdir-gecko/dist/include配下のコー
ド
? xpidlでコンパイルされるとヘッダがこの
あたりに入ります
– テンプレコードも一緒に吐かれているので
APIを実装したいときはいい感じにコピペし
て中を埋めます
ただまあ
? ジェネレートされたままのクラス名とか
で実装されることがあんまりないので関
数名でgrepするのが無難です
? 特に返り値の型はnsresultでないことが
多々あるのでごまかされないように注意
まとめ
? grepとfind偉大!
? ズボラしたかったら
https://mxr.mozilla.org とか
http://reading.fxos.org/source/ で適当に検
索してみるといいです
? 読む分にはなんとなく読めるからまあ頑
張って
? API実装しだすと闇が見えてきますけれど
も。。。

More Related Content

Idlリーディング xpidl編