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] sequenceaData,
[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 コメント:
コメントを投稿