メモ代わり。てきとーに。 いや、ですからてきとーですって。 2年前ぐらいにPythonあたりでメールくれた方、ごめんなさい。メール紛失してしまい無視した形になってしまいました。。。

2008年12月27日土曜日

[work][OpenOffice][SDK][java] Professional UNO読み中(7) Interfaces

http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/ProUNO/Interfaces
を読む。

Interface

UNOオブジェクト間通信はInterfaceなるものに基づいている。
Interfaceっつーのは、外側から見れば、そのオブジェクトを理解せずに使うことが
できるようになるものを提供する。
内側から、もしくはUNOインタフェースを実装する人から見れば、
Interfaceは抽象的な仕様である。

便利でしょと。

UNOではInterfaceなオブジェクトはinterface型というもの使う。
慣例でInterfaceなオブジェクトの先頭は'X'で始まると。
で、全てのInterfaceはcom.sun.star.uno.XInterfaceを継承しなきゃならん。
InterfaceはUNOオブジェクトへのアクセスを提供するために、メソッドを定義する。
exceptionを定義してもいいらしい。

なにも定義しないとRuntimeExceptionをスローするみたい。


で、載ってたサンプル。


// base interface for all UNO interfaces
interface XInterface
{
any queryInterface( [in] type aType );
[oneway] void acquire();
[oneway] void release();

};

// fragment of the Interface com.sun.star.io.XInputStream

interface XInputStream: com::sun::star::uno::XInterface
{
long readBytes( [out] sequence aData,
[in] long nBytesToRead )
raises( com::sun::star::io::NotConnectedException,
com::sun::star::io::BufferSizeExceededException,
com::sun::star::io::IOException);
...
};
 

Javaそっくりなんだけど、[]で囲まれたやつがなんじゃこりゃ。

[oneway]

非同期に実行するものを示すフラグ。

[in]

入力パラメータを示すフラグ

[out]

出力パラメータを示すフラグ

[inout]
入出力パラメータを示すフラグ。


.

0 コメント: