Quick Reference

インターフェイス関数

個々の関数の詳細については、右側の選択ボックスを使用してください。


nni_get_interface

構文

int nni_get_interface( int iVersion, void** ppnni_func );

この関数は、Natural Native Interface のインスタンスを返します。

この関数は、アプリケーションでプラットフォーム依存のシステムコールを使用してインターフェイスライブラリが取得され、ロードされた後に呼び出されます。この関数を使用すると、個々のインターフェイス関数を示す関数ポインタが含まれている構造へのポインタが返されます。構造内で返される関数は、インターフェイスのバージョン間で異なる場合があります。

インターフェイスバージョンを指定する代わりに、定数 NNI_VERSION_CURR を指定することもできます。この場合は、最新のインターフェイスバージョンが常に参照されます。特定の Natural バージョンに属するインターフェイスバージョン番号は、そのバージョンとともに提供されるヘッダーファイル natni.h 内で定義されています。Natural バージョン n.n の場合、インターフェイスバージョン番号は NNI_VERSION_nn として定義されます。NNI_VERSION_CURRNNI_VERSION_nn として定義されます。関数が呼び出された Natural バージョンで、要求されるインターフェイスバージョンがサポートされていない場合は、エラーコード NNI_RC VERSION_ERROR が返されます。これ以外の場合のリターンコードは、NNI_RC_OK です。

関数によって返されるポインタは、インターフェイスの 1 つのインスタンスを表します。このインターフェイスインスタンスを使用するため、アプリケーションではこのポインタが保持され、後続のインターフェイスコールに渡されます。

通常、アプリケーションで任意のインスタンスに対して nni_initialize を呼び出すことによって、Natural セッションがその後初期化されます。アプリケーションで Natural セッションの使用が終了すると、同じインスタンスに対して nni_uninitialize が呼び出されます。これ以降は、この同じインターフェイスインスタンス上で別の Natural セッションを初期化できるようになります。アプリケーションでインターフェイスインスタンスの使用が完全に終了した後は、このインスタンスに対して nni_free_interface が呼び出されます。

パラメータ

パラメータ 意味
iVersion インターフェイスバージョン番号(NNI_VERSION_nn または NNI_VERSION_CURR)。
ppnni_func リターン時に NNI インターフェイスインスタンスをポイントします。

リターンコード

リターンコードの意味については、「リターンコード」の説明を参照してください。

リターンコード Remark
NNI_RC_OK  
NNI_RC_PARM_ERROR  
NNI_RC_VERSION_ERROR  

nni_free_interface

構文

int nni_free_interface(void* pnni_func);

この関数は、アプリケーションでインターフェイスインスタンスの使用が終了し、ホストされていた Natural セッションが初期化解除された後に呼び出されます。この関数によって、インターフェイスインスタンスが占有していたリソースが解放されます。

パラメータ

パラメータ 意味
pnni_func NNI インターフェイスインスタンスへのポインタ。

リターンコード

リターンコードの意味については、「リターンコード」の説明を参照してください。

リターンコード Remark
NNI_RC_OK  

nni_initialize

構文

int nni_initialize(void* pnni_func, const char* szCmdLine, void*, void*);

この関数は、任意のコマンド行を使用して Natural セッションを初期化します。コマンド行の構文と語義は、Natural を対話形式で開始した場合と同じです。すでに任意のインターフェイスインスタンスによって Natural セッションが初期化されている場合は、新しいセッションが初期化される前に、そのセッションが暗黙的に初期化解除されます。

コマンド行は、ユーザーの操作がなくても Natural の初期化が完了するように指定する必要があります。つまり、プログラムがスタックに渡されたり、起動プログラムが指定されたりしている場合には特に、満たされていない INPUT ステートメントをプログラムでスタックから実行ないでください。実行した場合は、Natural セッションの後続の動作が不確定になります。

Natural セッションは、バッチセッションとしてサーバーモードで初期化されます。このことは、実行された Natural モジュールにおける特定のステートメントおよびコマンドの使用が制限されることを意味します。

Natural Security で Natural セッションを初期化するときは、セッションを開始するために自由に選択したデフォルトライブラリに対する LOGON コマンド、および適切なユーザー ID やパスワードをコマンド行に含める必要があります。

例:

int iRes = 
pnni_func->nni_initialize( pnni_func, "STACK=(LOGON,MYLIB,MYUSER,MYPASS)", 0, 0);

この後にアプリケーションで異なるユーザー ID を使用して別のライブラリに対して nni_logon を呼び出し、その後 nni_logoff を呼び出すと、nni_initialize で渡されたライブラリおよびユーザー ID に対して Natural セッションがリセットされます。

パラメータ

パラメータ 意味
pnni_func NNI インターフェイスインスタンスへのポインタ。
szCmdLine Natural コマンド行。NULL ポインタを使用できます。
void* 将来的に使用される予定。NULL ポインタである必要があります。
void* 将来的に使用される予定。NULL ポインタである必要があります。

リターンコード

リターンコードの意味については、「リターンコード」の説明を参照してください。

リターンコード Remark
NNI_RC_OK  
NNI_RC_PARM_ERROR  
rc、ただし rc < NNI_RC_SERR_OFFSET Natural スタートアップエラー。『オペレーション』ドキュメントの一部である「Natural スタートアップエラー」で説明されている実際の Natural スタートアップエラー番号は、次の計算で求めることができます。

startup-error-nr = - (rc - NNI_RC_SERR_OFFSET)

セッションの初期化中に発生する警告は無視されます。

> 0 Natural エラー番号。

nni_is_initialized

構文

int nni_is_initialized( void* pnni_func, int* piIsInit );

この関数は、インターフェイスインスタンスに初期化済みの Natural セッションが含まれているかどうかをチェックします。

パラメータ

パラメータ 意味
pnni_func NNI インターフェイスインスタンスへのポインタ。
piIsInit Natural セッションが初期化されていない場合には 0 が、初期化されている場合には 0 以外の値が返されます。

リターンコード

リターンコードの意味については、「リターンコード」の説明を参照してください。

リターンコード Remark
NNI_RC_OK  
NNI_RC_PARM_ERROR  

nni_uninitialize

構文

int nni_uninitialize(void* pnni_func);

この関数は、指定したインターフェイスインスタンスによってホストされている Natural セッションを初期化解除します。

パラメータ

パラメータ 意味
pnni_func NNI インターフェイスインスタンスへのポインタ。

リターンコード

リターンコードの意味については、「リターンコード」の説明を参照してください。

リターンコード Remark
NNI_RC_OK  

nni_enter

構文

int nni_enter(void* pnni_func);

この関数は、現在のスレッドで、インターフェイスインスタンスおよびホストする Natural セッションへの排他的アクセスを待機できるようにします。スレッドは、他のスレッドに中断されない一連のインターフェイスコールを発行するときに、この関数を呼び出します。スレッドは、nni_leave を呼び出して、インターフェイスインスタンスへの排他的アクセスを解放します。

パラメータ

パラメータ 意味
pnni_func NNI インターフェイスインスタンスへのポインタ。

リターンコード

リターンコードの意味については、「リターンコード」の説明を参照してください。

リターンコード Remark
NNI_RC_OK  

nni_try_enter

構文

int nni_try_enter(void* pnni_func);

この関数は、nni_enter と同様に機能しますが、スレッドをブロックする代わりに、通常、即座に値を返します。すでに別のスレッドがインターフェイスインスタンスに排他アクセスを行っている場合は、NNI_RC_LOCKED を返します。

パラメータ

パラメータ 意味
pnni_func NNI インターフェイスインスタンスへのポインタ。

リターンコード

リターンコードの意味については、「リターンコード」の説明を参照してください。

リターンコード Remark
NNI_RC_OK  
NNI_RC_LOCKED  

nni_leave

構文

int nni_leave(void* pnni_func);

この関数は、インターフェイスインスタンスへの排他的アクセスを解放し、そのインスタンスおよびホストする Natural セッションに他のスレッドがアクセスできるようにします。

パラメータ

パラメータ 意味
pnni_func NNI インターフェイスインスタンスへのポインタ。

リターンコード

リターンコードの意味については、「リターンコード」の説明を参照してください。

リターンコード Remark
NNI_RC_OK  

nni_logon

構文

int nni_logon(void* pnni_func, const char* szLibrary, const char* szUser, const char* szPassword);

この関数は、指定された Natural ライブラリに対する LOGON を実行します。

パラメータ

パラメータ 意味
pnni_func NNI インターフェイスインスタンスへのポインタ。
szLibrary Natural ライブラリの名前。
szUser Natural ユーザーの名前。Natural セッションが Natural Security で実行中ではない場合、または初期化中に AUTO=ON が使用された場合は、NULL ポインタを使用できます。
szPassword 上記ユーザーのパスワード。Natural セッションが Natural Security で実行中ではない場合、または初期化中に AUTO=ON が使用された場合は、NULL ポインタを使用できます。

リターンコード

リターンコードの意味については、「リターンコード」の説明を参照してください。

リターンコード Remark
NNI_RC_OK  
NNI_RC_NOT_INIT  
NNI_RC_PARM_ERROR  
> 0 Natural エラー番号。

nni_logoff

構文

int nni_logoff(void* pnni_func);

この関数は、現在の Natural ライブラリからの LOGOFF を実行します。以前のアクティブなライブラリおよびユーザー ID に LOGON することと同じです。

パラメータ

パラメータ 意味
pnni_func NNI インターフェイスインスタンスへのポインタ。

リターンコード

リターンコードの意味については、「リターンコード」の説明を参照してください。

リターンコード Remark
NNI_RC_OK  
NNI_RC_NOT_INIT  
NNI_RC_PARM_ERROR  
> 0 Natural エラー番号。

nni_callnat

構文

int nni_callnat(void* pnni_func, const char* szName, int iParm, struct parameter_description* rgDesc, struct natural_exception* pExcep);

関数が Natural サブプログラムを呼び出します。

関数は、パラメータを parameter_description 構造の配列として受け取ります。呼び出し元は、NNI 関数を使用して、次の方法でこれらの構造を作成します。

  • 関数 create_parm または create_module_parm を使用すると、サブプログラムの適切なパラメータセットを作成できます。

  • create_parm を使用した場合、関数 init_parm_* を使用して、各パラメータを適切な Natural データフォーマットに初期化します。create_module_parm を使用した場合、パラメータはすでに適切な Natural データフォーマットに初期化されています。

  • 関数 nni_put_parm または nni_put_parm_array を使用すると、値を各パラメータに割り当てることができます。

  • セット内の各パラメータで nni_get_parm を呼び出します。これにより、parameter_description 構造に値が指定されます。

  • parameter_description 構造の配列を関数 nni_callnat に渡します。

  • コールが実行されたら、関数 nni_get_parm または nni_get_parm_array を使用して、パラメータセットから修正されたパラメータ値を抽出します。

パラメータ

パラメータ 意味
pnni_func NNI インターフェイスインスタンスへのポインタ。
szName Natural サブプログラムの名前。
iParm パラメータの数。配列 rgDesc のオカレンス数を示します。
rgDesc サブプログラムのパラメータを含む、parm_description 構造の配列。サブプログラムでパラメータが必要ない場合、呼び出し元は NULL ポインタを渡します。
pExcep natural_exception 構造へのポインタ。サブプログラムの実行中に Natural エラーが発生すると、この構造に Natural エラー情報が記述されます。呼び出し元は NULL ポインタを指定できます。この場合、拡張されたエラー情報は返されません。

リターンコード

リターンコードの意味については、「リターンコード」の説明を参照してください。

リターンコード Remark
NNI_RC_OK  
NNI_RC_NOT_INIT  
NNI_RC_PARM_ERROR  
NNI_RC_NO_MEMORY  
> 0 Natural エラー番号。

nni_create_object

構文

int nni_create_object(void* pnni_func, const char* szName, int iParm, struct parameter_description* rgDesc, struct natural_exception* pExcep); 

Natural オブジェクト(Natural クラスのインスタンス)を作成します。

関数は、パラメータを、parameter_description 構造の 1 つの要素の配列として受け取ります。呼び出し元は、NNI 関数を使用して、次の方法でこれらの構造を作成します。

  • 関数 nni_create_parm を使用すると、1 つの要素を含むパラメータセットを作成できます。

  • 関数 nni_init_parm_s を使用すると、タイプ HANDLE OF OBJECT のパラメータを初期化できます。

  • このパラメータで nni_get_parm_info を呼び出します。これにより、parameter_description 構造に値が指定されます。

  • parameter_description 構造を関数 nni_create_object に渡します。

  • コールが実行された後、関数 nni_get_parm の 1 つを使用して、パラメータセットから修正されたパラメータ値を抽出します。

rgDesc で渡されたパラメータの意味は、次のとおりです。

  • 最初かつ唯一のパラメータは、データタイプ HANDLE OF OBJECT で初期化する必要があります。リターン時にはこのパラメータに、新しく作成されたオブジェクトの Natural オブジェクトハンドルが含まれます。

パラメータ

パラメータ 意味
pnni_func NNI インターフェイスインスタンスへのポインタ。
szName クラスの名前。
iParm パラメータの数。配列 rgDesc のオカレンス数を示します。
rgDesc オブジェクト作成用のパラメータを含む、parm_description 構造の配列。呼び出し元は、常に 1 つのパラメータを渡します。リターン時にはこのパラメータにオブジェクトハンドルが含まれます。
pExcep natural_exception 構造へのポインタ。オブジェクトの作成中に Natural エラーが発生すると、この構造に Natural エラー情報が記述されます。呼び出し元は NULL ポインタを指定できます。この場合、拡張された例外情報は返されません。

リターンコード

リターンコードの意味については、「リターンコード」の説明を参照してください。

リターンコード Remark
NNI_RC_OK  
NNI_RC_NOT_INIT  
NNI_RC_PARM_ERROR  
NNI_RC_NO_MEMORY  
> 0 Natural エラー番号。

nni_send_method

構文

int nni_send_method(void* pnni_func, const char* szName, int iParm, struct parameter_description* rgDesc, struct natural_exception* pExcep);

Natural オブジェクト(Natural クラスのインスタンス)にメソッドコールを送ります。

関数は、パラメータを parameter_description 構造の配列として受け取ります。呼び出し元は、NNI 関数を使用して、次の方法でこれらの構造を作成します。

  • 関数 nni_create_parm または nni_create_method_parm を使用して、一致するパラメータセットを作成します。

  • create_parm を使用した場合、関数 init_parm_* を使用して、各パラメータを適切な Natural データフォーマットに初期化します。nni_create_method_parm を使用した場合、パラメータはすでに適切な Natural データフォーマットに初期化されています。

  • 関数 nni_put_parm または nni_put_parm_array を使用すると、値を各パラメータに割り当てることができます。

  • セット内の各パラメータで nni_get_parm_info を呼び出します。これにより、parameter_description 構造に値が指定されます。

  • parameter_description 構造の配列を関数 nni_send_method に渡します。

  • コールが実行されたら、関数 nni_get_parm の 1 つを使用して、パラメータセットから修正されたパラメータ値を抽出します。

rgDesc で渡されたパラメータの意味は、次のとおりです。

  • 最初のパラメータには、オブジェクトハンドルが含まれています。

  • 2 つ目のパラメータは、メソッドの戻り値のデータタイプに初期化する必要があります。メソッドに戻り値がない場合、2 つ目のパラメータは初期化されないままです。メソッドコールからのリターン時には、このパラメータにメソッドの戻り値が含まれます。

  • 残りのパラメータはメソッドパラメータです。

パラメータ

パラメータ 意味
pnni_func NNI インターフェイスインスタンスへのポインタ。
szName メソッドの名前。
iParm パラメータの数。配列 rgDesc のオカレンス数を示します。常に 2 + メソッドパラメータの数になります。
rgDesc メソッドのパラメータを含む、parm_description 構造の配列。メソッドでパラメータが要求されない場合でも、呼び出し元は 2 つのパラメータを渡します。1 つ目はオブジェクトハンドルに、2 つ目は戻り値に使用されます。
pExcep natural_exception 構造へのポインタ。メソッドの実行中に Natural エラーが発生すると、この構造に Natural エラー情報が記述されます。呼び出し元は NULL ポインタを指定できます。この場合、拡張された例外情報は返されません。

リターンコード

リターンコードの意味については、「リターンコード」の説明を参照してください。

リターンコード Remark
NNI_RC_OK  
NNI_RC_NOT_INIT  
NNI_RC_PARM_ERROR  
NNI_RC_NO_MEMORY  
> 0 Natural エラー番号。

nni_get_property

構文

int nni_get_property(void* pnni_func, const char* szName, int iParm, struct parameter_description* rgDesc, struct natural_exception* pExcep); 

Natural オブジェクト(Natural クラスのインスタンス)のプロパティ値を取得します。

関数は、パラメータを parameter_description 構造の配列として受け取ります。呼び出し元は、NNI 関数を使用して、次の方法でこれらの構造を作成します。

  • 関数 nni_create_parm または nni_create_method_parm を使用して、一致するパラメータセットを作成します。

  • create_parm を使用した場合、関数 init_parm_* を使用して、各パラメータを適切な Natural データフォーマットに初期化します。create_method_parm を使用した場合、パラメータはすでに適切な Natural データフォーマットに初期化されています。

  • 関数 nni_put_parm または nni_put_parm_array を使用すると、値を各パラメータに割り当てることができます。

  • セット内の各パラメータで nni_get_parm_info を呼び出します。これにより、parameter_description 構造に値が指定されます。

  • parameter_description 構造の配列を関数 nni_send_method に渡します。

  • コールが実行されたら、関数 nni_get_parm の 1 つを使用して、パラメータセットから修正されたパラメータ値を抽出します。

rgDesc で渡されたパラメータの意味は、次のとおりです。

  • 最初のパラメータには、オブジェクトハンドルが含まれています。

  • 2 つ目のパラメータは、プロパティのデータタイプに初期化されまます。プロパティアクセスからのリターン時には、このパラメータにプロパティ値が含まれています。

パラメータ

パラメータ 意味
pnni_func NNI インターフェイスインスタンスへのポインタ。
szName プロパティの名前。
iParm パラメータの数。配列 rgDesc のオカレンス数を示します。これは常に 2 です。
rgDesc プロパティへのアクセス用のパラメータを含む、parm_description 構造の配列。呼び出し元は常に 2 つのパラメータを渡します。1 つ目はオブジェクトハンドルに、2 つ目は返されるプロパティ値に使用されます。
pExcep natural_exception 構造へのポインタ。プロパティへのアクセス中に Natural エラーが発生すると、この構造に Natural エラー情報が記述されます。呼び出し元は NULL ポインタを指定できます。この場合、拡張された例外情報は返されません。

リターンコード

リターンコードの意味については、「リターンコード」の説明を参照してください。

リターンコード Remark
NNI_RC_OK  
NNI_RC_NOT_INIT  
NNI_RC_PARM_ERROR  
NNI_RC_NO_MEMORY  
> 0 Natural エラー番号。

nni_set_property

構文

int nni_set_property(void* pnni_func, const char* szName, int iParm, struct parameter_description* rgDesc, struct natural_exception* pExcep);

Natural オブジェクト(Natural クラスのインスタンス)にプロパティ値を割り当てます。

関数は、パラメータを parameter_description 構造の配列として受け取ります。呼び出し元は、NNI 関数を使用して、次の方法でこれらの構造を作成します。

  • 関数 nni_create_parm または nni_create_prop_parm を使用して、一致するパラメータセットを作成します。

  • create_parm を使用した場合、関数 init_parm_* を使用して、各パラメータを適切な Natural データフォーマットに初期化します。create_prop_parm を使用した場合、パラメータはすでに適切な Natural データフォーマットに初期化されています。関数 nni_put_parm の 1 つを使用して、各パラメータに値を割り当てます。

  • 関数 nni_put_parm または nni_put_parm_array を使用すると、値を各パラメータに割り当てることができます。

  • セット内の各パラメータで nni_get_parm_info を呼び出します。これにより、parameter_description 構造に値が指定されます。

  • parameter_description 構造の配列を関数 nni_set_property に渡します。

rgDesc で渡されたパラメータの意味は、次のとおりです。

  • 最初のパラメータには、オブジェクトハンドルが含まれています。

  • 2 つ目のパラメータには、プロパティ値が含まれています。

パラメータ

パラメータ 意味
pnni_func NNI インターフェイスインスタンスへのポインタ。
szName プロパティの名前。
iParm パラメータの数。配列 rgDesc のオカレンス数を示します。これは常に 2 です。
rgDesc プロパティへのアクセス用のパラメータを含む、parm_description 構造の配列。呼び出し元は常に 2 つのパラメータを渡します。1 つ目はオブジェクトハンドルに、2 つ目はプロパティ値に使用されます。
pExcep natural_exception 構造へのポインタ。プロパティへのアクセス中に Natural エラーが発生すると、この構造に Natural エラー情報が記述されます。呼び出し元は NULL ポインタを指定できます。この場合、拡張された例外情報は返されません。

リターンコード

リターンコードの意味については、「リターンコード」の説明を参照してください。

リターンコード Remark
NNI_RC_OK  
NNI_RC_NOT_INIT  
NNI_RC_PARM_ERROR  
NNI_RC_NO_MEMORY  
> 0 Natural エラー番号。

nni_delete_object

構文

int nni_delete_object(void* pnni_func, int iParm, struct parameter_description* rgDesc, struct natural_exception* pExcep);

nni_create_object で作成した Natural オブジェクト(Natural クラスのインスタンス)を削除します。

関数は、パラメータを、parameter_description 構造の 1 つの要素の配列として受け取ります。呼び出し元は、NNI 関数を使用して、次の方法でこれらの構造を作成します。

  • 関数 nni_create_parm を使用すると、1 つの要素を含むパラメータセットを作成できます。

  • 関数 nni_init_parm_s を使用すると、タイプ HANDLE OF OBJECT のパラメータを初期化できます。

  • 関数 nni_put_parm の 1 つを使用して、パラメータに値を割り当てます。

  • このパラメータで nni_get_parm_info を呼び出します。これにより、parameter_description 構造に値が指定されます。

  • parameter_description 構造を関数 nni_delete_object に渡します。

rgDesc で渡されたパラメータの意味は、次のとおりです。

  • 最初(かつ唯一)のパラメータは、データタイプ HANDLE OF OBJECT で初期化する必要があります。このパラメータには、削除される オブジェクトの Natural オブジェクトハンドルが含まれています。

パラメータ

パラメータ 意味
pnni_func NNI インターフェイスインスタンスへのポインタ。
szName クラスの名前。
iParm パラメータの数。配列 rgDesc のオカレンス数を示します。これは常に 1 です。
rgDesc オブジェクト作成用のパラメータを含む、parm_description 構造の配列。呼び出し元は常に 1 つのパラメータを渡します。このパラメータにはオブジェクトハンドルが含まれています。
pExcep natural_exception 構造へのポインタ。オブジェクトの作成中に Natural エラーが発生すると、この構造に Natural エラー情報が記述されます。呼び出し元は NULL ポインタを指定できます。この場合、拡張された例外情報は返されません。

リターンコード

リターンコードの意味については、「リターンコード」の説明を参照してください。

リターンコード Remark
NNI_RC_OK  
NNI_RC_NOT_INIT  
NNI_RC_PARM_ERROR  
NNI_RC_NO_MEMORY  
> 0 Natural エラー番号。

nni_create_parm

構文

int nni_create_parm(void* pnni_func, int iParm, void** pparmhandle);

Natural モジュールに渡すことができるパラメータセットを作成します。

セットに含まれているパラメータは、まだ Natural の特定のデータタイプに初期化されていません。このパラメータセットを nni_callnatnni_create_objectnni_send_methodnni_set_property または nni_get_property へのコールで使用する前に、次の手順が必要です。

パラメータ

パラメータ 意味
pnni_func NNI インターフェイスインスタンスへのポインタ。
iParm 要求されたパラメータ数。パラメータの最大数は 32767 です。
pparmhandle リターン時のパラメータセットへのポインタ。

リターンコード

リターンコードの意味については、「リターンコード」の説明を参照してください。

リターンコード Remark
NNI_RC_OK  
NNI_RC_NOT_INIT  
NNI_RC_PARM_ERROR  
NNI_RC_ILL_PNUM  
> 0 Natural エラー番号。

nni_create_module_parm

構文

int nni_create_module_parm(void* pnni_func, char chType, const char* szName, void** pparmhandle); 

nni_callnat へのコールで使用できるパラメータセットを作成します。この関数を使用すると、呼び出し可能な Natural モジュールの署名をアプリケーションでダイナミックに検索できます。

返されるセットに含まれているパラメータは、指定されたモジュールのパラメータデータエリアに従って、すでに Natural データタイプに初期化されています。このパラメータセットを nni_callnat へのコールで使用する前に、次の手順が必要です。

  • 関数 nni_put_parm または nni_put_parm_array を使用すると、値を各パラメータに割り当てることができます。

  • 関数 nni_get_parm_info を使用して、各パラメータを parm_description 構造に変更します。

パラメータ

パラメータ 意味
pnni_func NNI インターフェイスインスタンスへのポインタ。
chType Natural モジュールのタイプ。常に N です(サブプログラムの場合)。
szName Natural モジュールの名前。
pparmhandle リターン時のパラメータセットへのポインタ。

リターンコード

リターンコードの意味については、「リターンコード」の説明を参照してください。

リターンコード Remark
NNI_RC_OK  
NNI_RC_NOT_INIT  
NNI_RC_PARM_ERROR  
> 0 Natural エラー番号。

nni_create_method_parm

構文

int nni_create_method_parm( void* pnni_func, const char* szClass, const char* szMethod, void** pparmhandle ); 

nni_send_method へのコールで使用できるパラメータセットを作成します。この関数を使用すると、Natural クラスのメソッドの署名をアプリケーションでダイナミックに検索できます。

返されるパラメータセットには、メソッドパラメータだけでなく、nni_send_method で必要なその他のパラメータも含まれています。これは以下のことを意味します。メソッドに n 個のパラメータがある場合、パラメータセットには n + 2 個のパラメータが含まれます。

  • セットの最初のパラメータは、データタイプ HANDLE OF OBJECT に初期化されます。

  • セットの 2 つ目のパラメータは、メソッドの戻り値のデータタイプに初期化されます。メソッドに戻り値がない場合、2 つ目のパラメータは初期化されません。

  • セットの残りのパラメータは、メソッドパラメータのデータタイプに初期化されます。

このパラメータセットを nni_send_method へのコールで使用する前に、次の手順が必要です。

  • 関数 nni_put_parm または nni_put_parm_array を使用すると、値を各パラメータに割り当てることができます。

  • 関数 nni_get_parm_info を使用して、各パラメータを parm_description 構造に変更します。

パラメータ

パラメータ 意味
pnni_func NNI インターフェイスインスタンスへのポインタ。
szClass Natural クラスの名前。
szMethod Natural メソッドの名前。
pparmhandle リターン時のパラメータセットへのポインタ。

リターンコード

リターンコードの意味については、「リターンコード」の説明を参照してください。

リターンコード Remark
NNI_RC_OK  
NNI_RC_NOT_INIT  
NNI_RC_PARM_ERROR  
> 0 Natural エラー番号。

nni_create_prop_parm

構文

int nni_create_prop_parm(void* pnni_func, const char* szClass, const char* szProp,void** pparmhandle); 

nni_get_property または nni_set_property へのコールで使用できるパラメータセットを作成します。返されるパラメータセットには、nni_get_property または nni_set_property で必要となるすべてのパラメータが含まれます。この関数を使用すると、Natural クラスのプロパティのデータタイプをアプリケーションで決定できます。

  • セットの最初のパラメータは、データタイプ HANDLE OF OBJECT に初期化されます。

  • セットの 2 つ目のパラメータは、プロパティのデータタイプに初期化されます。

このパラメータセットを nni_get_property または nni_set_property へのコールで使用する前に、次の手順が必要です。

  • 関数 nni_put_parm または nni_put_parm_array を使用すると、値を各パラメータに割り当てることができます。

  • 関数 nni_get_parm_info を使用して、各パラメータを parm_description 構造に変更します。

パラメータ

パラメータ 意味
pnni_func NNI インターフェイスインスタンスへのポインタ。
szClass Natural クラスの名前。
szProp Natural プロパティの名前。
pparmhandle リターン時のパラメータセットへのポインタ。

リターンコード

リターンコードの意味については、「リターンコード」の説明を参照してください。

リターンコード Remark
NNI_RC_OK  
NNI_RC_NOT_INIT  
NNI_RC_PARM_ERROR  
> 0 Natural エラー番号。

nni_parm_count

構文

int nni_parm_count( void* pnni_func, void* parmhandle, int* piParm )

この関数は、パラメータセット内のパラメータの数を取得します。

パラメータ

パラメータ 意味
pnni_func NNI インターフェイスインスタンスへのポインタ。
parmhandle パラメータセットへのポインタ。
piParm パラメータセット内のパラメータの数を返します。

リターンコード

リターンコードの意味については、「リターンコード」の説明を参照してください。

リターンコード Remark
NNI_RC_OK  
NNI_RC_NOT_INIT  
NNI_RC_PARM_ERROR  

nni_init_parm_s

構文

int nni_init_parm_s(void* pnni_func, int iParm, void* parmhandle, char chFormat, int iLength, int iPrecision, int iFlags); 

パラメータセット内のパラメータをスタティックデータタイプに初期化します。

パラメータ

パラメータ 意味
pnni_func NNI インターフェイスインスタンスへのポインタ。
iParm パラメータのインデックス。セットの最初のパラメータには、インデックス 0 が含まれます。
parmhandle パラメータセットへのポインタ。
chFormat パラメータの Natural データタイプ。
iLength パラメータの Natural の長さ。
iPrecision 小数点以下の桁数(NNI_TYPE_NUMおよび NNI_TYPE_PACK のみ)。
iFlags パラメータフラグ。次のフラグを使用できます。

NNI_FLG_PROTECTED

リターンコード

リターンコードの意味については、「リターンコード」の説明を参照してください。

リターンコード Remark
NNI_RC_OK  
NNI_RC_NOT_INIT  
NNI_RC_PARM_ERROR  
NNI_RC_ILL_PNUM  
NNI_RC_NO_MEMORY  
NNI_RC_BAD_FORMAT  
NNI_RC_BAD_LENGTH  

nni_init_parm_sa

構文

int nni_init_parm_sa (void* pnni_func, int iParm, void* parmhandle, char chFormat, int iLength, int iPrecision, int iDim, int* rgiOcc, int iFlags); 

パラメータセット内のパラメータをスタティックデータタイプの配列に初期化します。

パラメータ

パラメータ 意味
pnni_func NNI インターフェイスインスタンスへのポインタ。
iParm パラメータのインデックス。セットの最初のパラメータには、インデックス 0 が含まれます。
parmhandle パラメータセットへのポインタ。
chFormat パラメータの Natural データタイプ。
iLength パラメータの Natural の長さ。
iPrecision 小数点以下の桁数(NNI_TYPE_NUMおよび NNI_TYPE_PACK のみ)。
iDim パラメータの配列次元。
rgiOcc 各次元のオカレンス数を示す、int 値の 3 次元配列。未使用の次元のオカレンス数は、0 として指定する必要があります。
iFlags パラメータフラグ。次のフラグを使用できます。

NNI_FLG_PROTECTED
NNI_FLG_LBVAR_0
NNI_FLG_UBVAR_0
NNI_FLG_LBVAR_1
NNI_FLG_UBVAR_1
NNI_FLG_LBVAR_2
NNI_FLG_UBVAR_2

NNI_FLG_*VAR* フラグの 1 つが設定されている場合、配列は X-array です。各次元で、下限または上限のいずれかだけを変数にすることができます(両方を変数にすることはできません)。このため、例えば、フラグ IF4_FLG_LBVAR_0IF4_FLG_UBVAR_0 と組み合わせることはできません。

リターンコード

リターンコードの意味については、「リターンコード」の説明を参照してください。

リターンコード Remark
NNI_RC_OK  
NNI_RC_NOT_INIT  
NNI_RC_PARM_ERROR  
NNI_RC_ILL_PNUM  
NNI_RC_NO_MEMORY  
NNI_RC_BAD_FORMAT  
NNI_RC_BAD_LENGTH  
NNI_RC_BAD_DIM  
NNI_RC_BAD_BOUNDS  

nni_init_parm_d

構文

int nni_init_parm_d(void* pnni_func, int iParm, void* parmhandle, char chFormat, int iFlags); 

パラメータセット内のパラメータをダイナミックデータタイプに初期化します。

パラメータ

パラメータ 意味
pnni_func NNI インターフェイスインスタンスへのポインタ。
iParm パラメータのインデックス。セットの最初のパラメータには、インデックス 0 が含まれます。
parmhandle パラメータセットへのポインタ。
chFormat パラメータの Natural データタイプ(NNI_TYPE_ALPHA または NNI_TYPE_BIN)。
iFlags パラメータフラグ。次のフラグを使用できます。

NNI_FLG_PROTECTED

リターンコード

リターンコードの意味については、「リターンコード」の説明を参照してください。

リターンコード Remark
NNI_RC_OK  
NNI_RC_NOT_INIT  
NNI_RC_PARM_ERROR  
NNI_RC_ILL_PNUM  
NNI_RC_NO_MEMORY  
NNI_RC_BAD_FORMAT  

nni_init_parm_da

構文

int nni_init_parm_da (void* pnni_func, int iParm, void* parmhandle, char chFormat, int iDim, int* rgiOcc, int iFlags); 

パラメータセット内のパラメータをダイナミックデータタイプの配列に初期化します。

パラメータ

パラメータ 意味
pnni_func NNI インターフェイスインスタンスへのポインタ。
iParm パラメータのインデックス。セットの最初のパラメータには、インデックス 0 が含まれます。
parmhandle パラメータセットへのポインタ。
chFormat パラメータの Natural データタイプ(NNI_TYPE_ALPHA または NNI_TYPE_BIN)。
iDim パラメータの配列次元。
rgiOcc 各次元のオカレンス数を示す、int 値の 3 次元配列。未使用の次元のオカレンス数は、0 として指定する必要があります。
iFlags パラメータフラグ。次のフラグを使用できます。

NNI_FLG_PROTECTED
NNI_FLG_LBVAR_0
NNI_FLG_UBVAR_0
NNI_FLG_LBVAR_1
NNI_FLG_UBVAR_1
NNI_FLG_LBVAR_2
NNI_FLG_UBVAR_2

NNI_FLG_*VAR* フラグの 1 つが設定されている場合、配列は X-array です。各次元で、下限または上限のいずれかだけを変数にすることができます(両方を変数にすることはできません)。このため、例えば、フラグ IF4_FLG_LBVAR_0IF4_FLG_UBVAR_0 と組み合わせることはできません。

リターンコード

リターンコードの意味については、「リターンコード」の説明を参照してください。

リターンコード Remark
NNI_RC_OK  
NNI_RC_NOT_INIT  
NNI_RC_PARM_ERROR  
NNI_RC_ILL_PNUM  
NNI_RC_NO_MEMORY  
NNI_RC_BAD_FORMAT  
NNI_RC_BAD_DIM  
NNI_RC_BAD_BOUNDS  

nni_get_parm_info

構文

int nni_get_parm_info (void* pnni_func, int iParm, void* parmhandle, struct parameter_description* pDesc); 

パラメータセット内の特定のパラメータに関する詳細情報を返します。

パラメータ

パラメータ 意味
pnni_func NNI インターフェイスインスタンスへのポインタ。
iParm パラメータのインデックス。セットの最初のパラメータには、インデックス 0 が含まれます。
parmhandle パラメータセットへのポインタ。
pDesc パラメータ記述構造

リターンコード

リターンコードの意味については、「リターンコード」の説明を参照してください。

リターンコード Remark
NNI_RC_OK  
NNI_RC_NOT_INIT  
NNI_RC_PARM_ERROR  
NNI_RC_ILL_PNUM  

nni_get_parm

構文

int nni_get_parm(void* pnni_func, int iParm, void* parmhandle, int iBufferLength, void* pBuffer); 

パラメータセット内の特定のパラメータの値を返します。pBuffer で指定されたアドレスのバッファに、iBufferLength に指定されたサイズで値が返されます。値が正常に返されると、このバッファには Natural 内部フォーマットのデータが含まれます。バッファの内容を解釈する方法については、「Natural データタイプ」を参照してください。

Natural データタイプに基づくパラメータの長さが iBufferLength よりも長い場合は、Natural によってデータが指定された長さに切り捨てられ、コード NNI_RC_DATA_TRUNC が返されます。呼び出し元は、関数 nni_get_parm_info を使用して、パラメータ値の長さを事前に要求できます。

Natural データタイプに基づくパラメータの長さが iBufferLength よりも短い場合は、Natural によってパラメータの長さまでバッファが埋められ、リターンコードにコピーされたデータの長さが返されます。

パラメータが配列である場合は、バッファ内の配列全体が返されます。このことは、固定サイズ要素の固定サイズ配列に対してのみ意味があります。これは、これ以外の場合には呼び出し元がバッファの内容を解釈できないためです。任意の配列の個別オカレンスを取得するには、関数 nni_get_parm_array を使用します。

pBuffer に指定されたアドレスに割り当てられた iBufferLength で、メモリのサイズが指定されていない場合、操作の結果は予測できません。Natural では、pBuffer が NULL ではないことのみがチェックされます。

パラメータ

パラメータ 意味
pnni_func NNI インターフェイスインスタンスへのポインタ。
iParm パラメータのインデックス。セットの最初のパラメータには、インデックス 0 が含まれます。
parmhandle パラメータセットへのポインタ。
iBufferLength pBuffer で指定されたバッファの長さ。
pBuffer 値が返されるバッファ。

リターンコード

リターンコードの意味については、「リターンコード」の説明を参照してください。

リターンコード Remark
NNI_RC_OK  
NNI_RC_NOT_INIT  
NNI_RC_PARM_ERROR  
NNI_RC_ILL_PNUM  
NNI_RC_DATA_TRUNC  
= nn > 0) 操作が成功しました。ただし、バッファに返されたのは n バイトのみでした。

nni_get_parm_array

構文

int nni_get_parm_array(void* pnni_func, int parmnum, void* parmhandle, int iBufferLength, void* pBuffer, int* rgiInd);

パラメータセット内の特定の配列パラメータの特定のオカレンスの値を返します。nni_get_parm との唯一の違いは、配列インデックスを指定できる点です。未使用の次元のインデックス数は、0 として指定する必要があります。

パラメータ

パラメータ 意味
pnni_func NNI インターフェイスインスタンスへのポインタ。
iParm パラメータのインデックス。セットの最初のパラメータには、インデックス 0 が含まれます。
parmhandle パラメータセットへのポインタ。
iBufferLength pBuffer で指定されたバッファの長さ。
pBuffer 値が返されるバッファ。
rgiInd 特定の配列オカレンスを示す、int 値の 3 次元配列。インデックスは 0 で始まります。

リターンコード

リターンコードの意味については、「リターンコード」の説明を参照してください。

リターンコード Remark
NNI_RC_OK  
NNI_RC_NOT_INIT  
NNI_RC_PARM_ERROR  
NNI_RC_ILL_PNUM  
NNI_RC_DATA_TRUNC  
NNI_RC_NOT_ARRAY  
NNI_RC_BAD_INDEX_0  
NNI_RC_BAD_INDEX_1  
NNI_RC_BAD_INDEX_2  
= nn > 0) 操作が成功しました。ただし、返されたのは n バイトのみでした。

nni_get_parm_array_length

構文

int nni_get_parm_array_length(void* pnni_func, int iParm, void* parmhandle, int* piLength, int* rgiInd);

パラメータセット内の特定の配列パラメータの特定のオカレンスの長さを返します。

パラメータ

パラメータ 意味
pnni_func NNI インターフェイスインスタンスへのポインタ。
iParm パラメータのインデックス。セットの最初のパラメータには、インデックス 0 が含まれます。
parmhandle パラメータセットへのポインタ。
piLength 返される値の長さの int 値へのポインタ。
rgiInd 特定の配列オカレンスを示す、int 値の 3 次元配列。インデックスは 0 で始まります。

リターンコード

リターンコードの意味については、「リターンコード」の説明を参照してください。

リターンコード Remark
NNI_RC_OK  
NNI_RC_ILL_PNUM  
NNI_RC_DATA_TRUNC  
NNI_RC_NOT_ARRAY  
NNI_RC_BAD_INDEX_0  
NNI_RC_BAD_INDEX_1  
NNI_RC_BAD_INDEX_2  

nni_put_parm

構文

int nni_put_parm(void* pnni_func, int iParm, void* parmhandle, int iBufferLength, const void* pBuffer); 

パラメータセット内の特定のパラメータに値を割り当てます。pBuffer で指定されたアドレスのバッファ内の関数に、iBufferLength に指定されたサイズで値が渡されます。バッファの内容を作成する方法については、「Natural データタイプ」を参照してください。

Natural データタイプに基づくパラメータの長さが、指定されたバッファの長さよりも短い場合、データは指定されたパラメータの長さに切り捨てられます。バッファの残りは無視されます。Natural データタイプに基づくパラメータの長さが、指定されたバッファの長さよりも長い場合、データは指定されたバッファの長さまでしかコピーされず、パラメータ値の残りはそのまま残ります。Natural データタイプの内部的な長さについては、「Natural データタイプ」を参照してください。

パラメータがダイナミック変数である場合は、指定されたバッファの長さに従って、自動的にサイズ変更されます。

パラメータが配列である場合、関数ではバッファ内の配列全体が要求されます。このことは、固定サイズ要素の固定サイズ配列に対してのみ意味があります。これは、これ以外の場合には呼び出し元がバッファの内容を解釈できないためです。任意の配列の個々のオカレンスの値を割り当てるには、関数 nni_put_parm_array を使用します。

パラメータ

パラメータ 意味
pnni_func NNI インターフェイスインスタンスへのポインタ。
iParm パラメータのインデックス。セットの最初のパラメータには、インデックス 0 が含まれます。
parmhandle パラメータセットへのポインタ。
iBufferLength pBuffer で指定されたバッファの長さ。
pBuffer 値が渡されるバッファ。

リターンコード

リターンコードの意味については、「リターンコード」の説明を参照してください。

リターンコード Remark
NNI_RC_OK  
NNI_RC_NOT_INIT  
NNI_RC_PARM_ERROR  
NNI_RC_ILL_PNUM  
NNI_RC_WRT_PROT  
NNI_RC_DATA_TRUNC  
NNI_RC_NO_MEMORY  
= nn > 0) 操作が成功しました。ただし、使用されたバッファは n バイトのみでした。

nni_put_parm_array

構文

int nni_put_parm_array(void* pnni_func, int iParm, void* parmhandle, int iBufferLength, const void* pBuffer, int* rgiInd);

パラメータセット内の特定の配列パラメータの特定のオカレンスに値を割り当てます。nni_get_parm との唯一の違いは、配列インデックスを指定できる点です。未使用の次元のインデックス数は、0 として指定する必要があります。

パラメータ

パラメータ 意味
pnni_func NNI インターフェイスインスタンスへのポインタ。
iParm パラメータのインデックス。セットの最初のパラメータには、インデックス 0 が含まれます。
parmhandle パラメータセットへのポインタ。
iBufferLength pBuffer で指定されたバッファの長さ。
pBuffer 値が渡されるバッファ。
rgiInd 特定の配列オカレンスを示す、int 値の 3 次元配列。インデックスは 0 で始まります。

リターンコード

リターンコードの意味については、「リターンコード」の説明を参照してください。

リターンコード Remark
NNI_RC_OK  
NNI_RC_NOT_INIT  
NNI_RC_PARM_ERROR  
NNI_RC_ILL_PNUM  
NNI_RC_WRT_PROT  
NNI_RC_DATA_TRUNC  
NNI_RC_NO_MEMORY  
NNI_RC_NOT_ARRAY  
NNI_RC_BAD_INDEX_0  
NNI_RC_BAD_INDEX_1  
NNI_RC_BAD_INDEX_2  
= nn > 0) 操作が成功しました。ただし、使用されたバッファは n バイトのみでした。

nni_resize_parm_array

構文

int nni_resize_parm_array(void* pnni_func, int iParm, void* parmhandle, int* rgiOcc); 

パラメータセット内の特定の X-array パラメータのオカレンス数を変更します。n 次元配列では、すべての n 次元についてオカレンス数を指定する必要があります。配列の次元が 3 次元未満の場合は、値 0 を使用しない次元に指定する必要があります。

この関数では、任意の X-array について下限または上限の適切な方を変更することによって、各次元のオカレンス数のサイズ変更が試行されます。

パラメータ

パラメータ 意味
pnni_func NNI インターフェイスインスタンスへのポインタ。
iParm パラメータのインデックス。セットの最初のパラメータには、インデックス 0 が含まれます。
parmhandle パラメータセットへのポインタ。
rgiOcc 配列の新しいオカレンス数を示す int 値の 3 次元配列。

リターンコード

リターンコードの意味については、「リターンコード」の説明を参照してください。

リターンコード Remark
NNI_RC_OK  
NNI_RC_NOT_INIT  
NNI_RC_PARM_ERROR  
NNI_RC_ILL_PNUM  
NNI_RC_WRT_PROT  
NNI_RC_DATA_TRUNC  
NNI_RC_NO_MEMORY  
NNI_RC_NOT_ARRAY  
NNI_RC_NOT_RESIZABLE  
> 0 Natural エラー番号。

nni_delete_parm

構文

int nni_delete_parm(void* pnni_func, void* parmhandle);

指定されたパラメータセットを削除します。

パラメータ

パラメータ 意味
pnni_func NNI インターフェイスインスタンスへのポインタ。
parmhandle パラメータセットへのポインタ。

リターンコード

リターンコードの意味については、「リターンコード」の説明を参照してください。

リターンコード Remark
NNI_RC_OK  
NNI_RC_NOT_INIT  
NNI_RC_PARM_ERROR  

nni_from_string

構文

int nni_from_string(void* pnni_func, const char* szString, char chFormat, int iLength, int iPrecision, int iBufferLength, void* pBuffer); 

Natural P 値、N 値、D 値、または T 値の文字列表現を、関数 nni_get_parmnni_get_parm_arraynni_put_parm、および nni_put_parm_array で使用されるような値の内部表現に変換します。

これらの Natural データタイプの文字列表現は、次のようになります。

Format 文字列表現
P、N -3.141592 など。ここでは、DC パラメータで定義した小数点文字が使用されます。
D DTFORM パラメータで定義した日付フォーマット(例:DTFORM=I の場合は "2004-07-06")。
T DTFORM パラメータで定義した日付フォーマットを hh:ii:ss:t 形式の時刻の値と組み合わせたもの(例:DTFORM=I であれば 2004-07-06 11:30:42:7)、または hh:ii:ss:t 形式の時刻の値(例:11:30:42:7)。

パラメータ

パラメータ 意味
pnni_func NNI インターフェイスインスタンスへのポインタ。
szString 値の文字列表現。
chFormat 値の Natural データタイプ。
iLength 値の Natural の長さ。NNI_TYPE_NUM および NNI_TYPE_PACK の場合の有効桁の総数。これ以外の場合は、0。
iPrecision NNI_TYPE_NUM および NNI_TYPE_PACK の場合の小数点以下の桁数。これ以外の場合は、0。
iBufferLength pBuffer で指定されたバッファの長さ。
pBuffer リターン時に値の内部表現が含まれるバッファ。このバッファには、値の Natural 内部表現を十分に格納できる大きさが必要です。必要なサイズについては、「ユーザー定義変数のフォーマットおよび長さ」に記載されています。

リターンコード

リターンコードの意味については、「リターンコード」の説明を参照してください。

リターンコード Remark
NNI_RC_OK  
NNI_RC_NOT_INIT  
NNI_RC_PARM_ERROR  
> 0 Natural エラー番号

nni_to_string

構文

int nni_to_string(void* pnni_func, int iBufferLength, const void* pBuffer, char chFormat, int iLength, int iPrecision, int iStringLength, char* szString);

Natural P 値、N 値、D 値、または T 値の内部表現を、関数 nni_get_parmnni_get_parm_arraynni_put_parm、および nni_put_parm_array で使用されるような文字列表現に変換します。

これらの Natural データタイプの文字列表現は、関数 nni_from_string で説明したものと同じです。

パラメータ

パラメータ 意味
pnni_func NNI インターフェイスインスタンスへのポインタ。
iBufferLength pBuffer で指定されたバッファの長さ。
pBuffer 値の内部表現が含まれるバッファ。必要なサイズについては、「ユーザー定義変数のフォーマットおよび長さ」に記載されています。
chFormat 値の Natural データタイプ。
iLength 値の Natural の長さ。NNI_TYPE_NUM および NNI_TYPE_PACK の場合の有効桁の総数。これ以外の場合は、0。
iPrecision NNI_TYPE_NUM および NNI_TYPE_PACK の場合の小数点以下の桁数。これ以外の場合は、0。
iStringLength szString で指定される文字列バッファに最後のゼロを加えた長さ。
szString リターン時に値の文字列表現が含まれている文字列バッファ。この文字列バッファには、最後のゼロを含む外部表現を十分に格納できる大きさが必要です。

リターンコード

リターンコードの意味については、「リターンコード」の説明を参照してください。

リターンコード Remark
NNI_RC_OK  
NNI_RC_NOT_INIT  
NNI_RC_PARM_ERROR  
> 0 Natural エラー番号