4.3.4 .NETインタフェース定義を使用しないSPP.NETのコーディング例
- 〈この項の構成〉
-
(1) C#の場合のコーディング例
using System;
using Hitachi.OpenTP1;
using Hitachi.OpenTP1.Server;
namespace MyApplication
{
public class MySPP : SPPBase
{
public MySPP()
{
// コンストラクタの処理
// ** コンストラクタでOpenTP1のクラスは使用できません **
// ** 必要な初期化処理はInitializeSPPで行ってください **
}
~MySPP()
{
// デストラクタの処理
// ** デストラクタでOpenTP1のクラスは使用できません **
// ** 必要な終了処理はFinalizeSPPで行ってください **
}
// SPP初期化および終了処理メソッドの実装
public override void InitializeSPP() {
// SPPの初期化処理
}
public override void FinalizeSPP() {
// SPPの終了処理
}
// サービスメソッドの実装(引数の並びは固定です)
// クライアントからRPCで呼び出されます
[TP1RpcMethod]
public void Service1(byte[] inData, int inLen,
byte[] outData, ref int outLen)
{
// Service1()の処理
}
[TP1RpcMethod]
public void Service2(byte[] inData, int inLen,
byte[] outData, ref int outLen)
{
// Service2()の処理
}
// SPP内部メソッドの実装(自由に実装できます)
// RPCで呼び出すことはできません
public string GetUserInfo()
{
// 処理
}
private void PutErrorLog(string errorInfo, int errorCode)
{
// 処理
}
}
}
ページの先頭へ
(2) J#の場合のコーディング例
package MyApplication;
import System.*;
import Hitachi.OpenTP1.*;
import Hitachi.OpenTP1.Server.*;
public class MySPP extends SPPBase
{
public MySPP()
{
// コンストラクタの処理
// ** コンストラクタでOpenTP1のクラスは使用できません **
// ** 必要な初期化処理はInitializeSPPで行ってください **
}
protected void Finalize()
{
// Finalizeメソッドの処理
// ** FinalizeメソッドでOpenTP1のクラスは使用できません **
// ** 必要な終了処理はFinalizeSPPで行ってください **
}
// SPP初期化および終了処理メソッドの実装
public void InitializeSPP() {
// SPPの初期化処理
}
public void FinalizeSPP() {
// SPPの終了処理
}
// サービスメソッドの実装 (引数の並びは固定です)
// クライアントからRPCで呼び出されます
/** @attribute TP1RpcMethod() */
void Service1(ubyte[] inData, int inLen,
ubyte[] outData, IntHolder outLen)
{
// Service1()の処理
}
/** @attribute TP1RpcMethod () */
void Service2(ubyte[] inData, int inLen,
ubyte[] outData, IntHolder outLen)
{
// Service2()の処理
}
// SPP内部メソッドの実装(自由に実装できます)
// RPCで呼び出すことはできません
public String GetUserInfo()
{
// 処理
}
private void PutErrorLog(String errorInfo, int errorCode)
{
// 処理
}
}
ページの先頭へ
(3) Visual Basicの場合のコーディング例
Imports System
Imports Hitachi.OpenTP1
Imports Hitachi.OpenTP1.Server
Namespace MyApplication
Public Class MySPP
Inherits SPPBase
Sub MySPP()
' コンストラクタの処理
' ** コンストラクタでOpenTP1のクラスは使用できません **
' ** 必要な初期化処理はInitializeSPPで行ってください **
End Sub
Sub Finalize()
'Finalizeメソッドの処理
' ** FinalizeメソッドでOpenTP1のクラスは使用できません **
' ** 必要な終了処理はFinalizeSPPで行ってください **
End Sub
' SPP初期化および終了処理メソッドの実装
Public Overrides Sub InitializeSPP()
' SPPの初期化処理
End Sub
Public Overrides Sub FinalizeSPP()
' SPPの終了処理
End Sub
' サービスメソッドの実装 (引数の並びは固定です)
' クライアントからRPCで呼び出されます
<TP1RpcMethod()> _
Public Sub Service1(ByVal inData() As Byte, _
ByVal inLen As Integer, _
ByVal outData() As Byte, _
ByRef outLen As Integer)
' Service1()の処理
End Sub
<TP1RpcMethod()> _
Public Sub Service2(ByVal inData() As Byte, _
ByVal inLen As Integer, _
ByVal outData() As Byte, ByRef outLen As Integer)
' Service2()の処理
End Sub
' SPP内部メソッドの実装(自由に実装できます)
' RPCで呼び出すことはできません
Public Function GetUserInfo() As String
' 処理
End Function
Private Sub PutErrorLog(errorInfo As String, _
errorCode As Integer)
' 処理
End Sub
End Class
End Namespace
ページの先頭へ