blob: 609f03f5b35010c4c0289c723b3f7a7f125cf716 [file] [log] [blame]
'*************************************************************************
'
' Licensed to the Apache Software Foundation (ASF) under one
' or more contributor license agreements. See the NOTICE file
' distributed with this work for additional information
' regarding copyright ownership. The ASF licenses this file
' to you under the Apache License, Version 2.0 (the
' "License"); you may not use this file except in compliance
' with the License. You may obtain a copy of the License at
'
' http://www.apache.org/licenses/LICENSE-2.0
'
' Unless required by applicable law or agreed to in writing,
' software distributed under the License is distributed on an
' "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
' KIND, either express or implied. See the License for the
' specific language governing permissions and limitations
' under the License.
'
'*************************************************************************
Option Explicit On
Option Strict On
imports System
imports uno
imports uno.util
imports unoidl.com.sun.star.lang
imports unoidl.com.sun.star.uno
imports unoidl.com.sun.star.test.bridge
imports System.Windows.Forms
imports System.Diagnostics
imports System.Reflection
Namespace vb_testobj
Public Class VBBridgeTestObject
Inherits WeakBase
Implements XRecursiveCall, XBridgeTest2
Private m_xContext As XComponentContext
Public Sub New (xContext As XComponentContext)
MyBase.New
m_xContext = xContext
End Sub
Private m_bool As Boolean
Private m_char As Char
Private m_byte As Byte
Private m_short As Short
Private m_ushort As UInt16
Private m_long As Integer
Private m_ulong As UInt32
Private m_hyper As Long
Private m_uhyper As UInt64
Private m_float As Single
Private m_double As Double
Private m_string As String
Private m_xInterface As Object
Private m_any As Any
Private m_testEnum As TestEnum = TestEnum.TEST
Private m_testElements() As TestElement = New TestElement(){}
Private m_testDataElements As TestDataElements = New TestDataElements
Private m_nLastCallId As Integer = 0
Private m_bFirstCall As Boolean = True
Private m_bSequenceOfCallTestPassed As Boolean = True
Private m_arBool() As Boolean
Private m_arChar() As Char
Private m_arByte() As Byte
Private m_arShort() As Short
Private m_arLong() As Integer
Private m_arHyper() As Long
Private m_arUShort() As UInt16
Private m_arULong() As UInt32
Private m_arUHyper() As UInt64
Private m_arString() As String
Private m_arFloat() As Single
Private m_arDouble() As Double
Private m_arEnum() As TestEnum
Private m_arObject() As Object
Private m_arLong2()() As Integer
Private m_arLong3()()() As Integer
Private m_arAny() As Any
Public Overridable Sub setValues( _
bBool As Boolean, aChar As Char, nByte As Byte, nShort As Short, _
nUShort As UInt16, nLong As Integer, nULong As UInt32, _
nHyper As Long, nUHyper As UInt64, fFloat As Single, _
fDouble As Double, testEnum As TestEnum, str As String, _
xInterface As Object, any As Any, testElements() As TestElement, _
testDataElements As TestDataElements) _
Implements XBridgeTest2.setValues
#if DEBUG
' Console.WriteLine( "##### " + GetType().FullName + ".setValues:" + any )
#endif
m_bool = bBool
m_char = aChar
m_byte = nByte
m_short = nShort
m_ushort = nUShort
m_long = nLong
m_ulong = nULong
m_hyper = nHyper
m_uhyper = nUHyper
m_float = fFloat
m_double = fDouble
m_testEnum = testEnum
m_string = str
m_xInterface = xInterface
m_any = any
m_testElements = testElements
m_testDataElements = testDataElements
End Sub
Public Overridable Function setValues2( _
ByRef io_bool As Boolean, ByRef io_char As Char, _
ByRef io_byte As Byte, ByRef io_short As Short, _
ByRef io_ushort As UInt16, ByRef io_long As Integer, _
ByRef io_ulong As UInt32, ByRef io_hyper As Long, _
ByRef io_uhyper As UInt64, ByRef io_float As Single, _
ByRef io_double As Double, ByRef io_testEnum As TestEnum, _
ByRef io_string As String, ByRef io_xInterface As Object, _
ByRef io_any As Any, ByRef io_testElements() As TestElement, _
ByRef io_testDataElements As TestDataElements) As TestDataElements _
Implements XBridgeTest2.setValues2
#if DEBUG
'Console.WriteLine( "##### " + GetType().FullName + ".setValues2:" + io_any )
#endif
m_bool = io_bool
m_char = io_char
m_byte = io_byte
m_short = io_short
m_ushort = io_ushort
m_long = io_long
m_ulong = io_ulong
m_hyper = io_hyper
m_uhyper = io_uhyper
m_float = io_float
m_double = io_double
m_testEnum = io_testEnum
m_string = io_string
m_xInterface = io_xInterface
m_any = io_any
m_testElements = DirectCast(io_testElements.Clone(), TestElement())
m_testDataElements = io_testDataElements
Dim temp As TestElement = io_testElements(0)
io_testElements(0) = io_testElements(1)
io_testElements(1) = temp
Return m_testDataElements
End Function
Public Overridable Function getValues( _
ByRef o_bool As Boolean, ByRef o_char As Char, _
ByRef o_byte As Byte, ByRef o_short As Short, _
ByRef o_ushort As UInt16, ByRef o_long As Integer, _
ByRef o_ulong As UInt32, ByRef o_hyper As Long, _
ByRef o_uhyper As UInt64, ByRef o_float As Single, _
ByRef o_double As Double, ByRef o_testEnum As TestEnum, _
ByRef o_string As String, ByRef o_xInterface As Object, _
ByRef o_any As Any, ByRef o_testElements() As TestElement, _
ByRef o_testDataElements As TestDataElements) As TestDataElements _
Implements XBridgeTest2.getValues
#if DEBUG
'Console.WriteLine( "##### " + GetType().FullName + ".getValues" )
#endif
o_bool = m_bool
o_char = m_char
o_byte = m_byte
o_short = m_short
o_ushort = m_ushort
o_long = m_long
o_ulong = m_ulong
o_hyper = m_hyper
o_uhyper = m_uhyper
o_float = m_float
o_double = m_double
o_testEnum = m_testEnum
o_string = m_string
o_xInterface = m_xInterface
o_any = m_any
o_testElements = m_testElements
o_testDataElements = m_testDataElements
Return m_testDataElements
End Function
' Attributes ---------------------------------------------------------
Public Overridable Property Bool As Boolean _
Implements XBridgeTest2.Bool
Get
Return m_bool
End Get
Set (Value As Boolean)
m_bool = value
End Set
End Property
Public Overridable Property [Byte] As Byte _
Implements XBridgeTest2.Byte
Get
Return m_byte
End Get
Set (Value As Byte)
m_byte = value
End Set
End Property
Public Overridable Property [Char] As Char _
Implements XBridgeTest2.Char
Get
Return m_char
End Get
Set (Value As Char)
m_char = value
End Set
End Property
Public Overridable Property [Short] As Short _
Implements XBridgeTest2.Short
Get
Return m_short
End Get
Set (Value As Short)
m_short = value
End Set
End Property
Public Overridable Property [UShort] As UInt16 _
Implements XBridgeTest2.UShort
Get
Return m_ushort
End Get
Set (Value As UInt16)
m_ushort = value
End Set
End Property
Public Overridable Property [Long] As Integer _
Implements XBridgeTest2.Long
Get
Return m_long
End Get
Set (Value As Integer)
m_long = value
End Set
End Property
Public Overridable Property [ULong]() As UInt32 _
Implements XBridgeTest2.ULong
Get
Return m_ulong
End Get
Set (Value As UInt32)
m_ulong = value
End Set
End Property
Public Overridable Property Hyper As Long _
Implements XBridgeTest2.Hyper
Get
Return m_hyper
End Get
Set (Value As Long)
m_hyper = value
End Set
End Property
Public Overridable Property UHyper As UInt64 _
Implements XBridgeTest2.UHyper
Get
Return m_uhyper
End Get
Set (Value As UInt64)
m_uhyper = value
End Set
End Property
Public Overridable Property Float As Single _
Implements XBridgeTest2.Float
Get
Return m_float
End Get
Set (Value As Single)
m_float = value
End Set
End Property
Public Overridable Property [Double] As Double _
Implements XBridgeTest2.Double
Get
Return m_double
End Get
Set (Value As Double)
m_double = value
End Set
End Property
Public Overridable Property [Enum] As TestEnum _
Implements XBridgeTest2.Enum
Get
Return m_testEnum
End Get
Set (Value As TestEnum)
m_testEnum = value
End Set
End Property
Public Overridable Property [String] As String _
Implements XBridgeTest2.String
Get
Return m_string
End Get
Set (Value As String)
m_string = value
End Set
End Property
Public Overridable Property [Interface] As Object _
Implements XBridgeTest2.Interface
Get
Return m_xInterface
End Get
Set (Value As Object)
m_xInterface = value
End Set
End Property
Public Overridable Property Any As uno.Any _
Implements XBridgeTest2.Any
Get
#if DEBUG
' Console.WriteLine( "##### " + GetType().FullName + ".Any" )
#endif
Return m_any
End Get
Set (Value As Any)
#if DEBUG
'Console.WriteLine( "##### " + GetType().FullName + ".Any:" + value )
#endif
m_any = value
End Set
End Property
Public Overridable Property Sequence As TestElement() _
Implements XBridgeTest2.Sequence
Get
Return m_testElements
End Get
Set (Value() As TestElement)
m_testElements = value
End Set
End Property
Public Overridable Property Struct As TestDataElements _
Implements XBridgeTest2.Struct
Get
Return m_testDataElements
End Get
Set (Value As TestDataElements)
m_testDataElements = value
End Set
End Property
Public Overridable Function transportAny(value As Any) As Any _
Implements XBridgeTest2.transportAny
Return value
End Function
Public Overridable Sub [call](nCallId As Integer, nWaitMUSEC As Integer) _
Implements XBridgeTest2.call
Threading.Thread.Sleep(CType(nWaitMUSEC / 10000, Integer))
If m_bFirstCall = True
m_bFirstCall = False
Else
m_bSequenceOfCallTestPassed = m_bSequenceOfCallTestPassed And (nCallId > m_nLastCallId)
End If
m_nLastCallId = nCallId
End Sub
Public Overridable Sub callOneway(nCallId As Integer, nWaitMUSEC As Integer) _
Implements XBridgeTest2.callOneway
Threading.Thread.Sleep(CType(nWaitMUSEC / 10000, Integer))
m_bSequenceOfCallTestPassed = m_bSequenceOfCallTestPassed And (nCallId > m_nLastCallId)
m_nLastCallId = nCallId
End Sub
Public Overridable Function sequenceOfCallTestPassed() As Boolean _
Implements XBridgeTest2.sequenceOfCallTestPassed
Return m_bSequenceOfCallTestPassed
End Function
Public Overridable Sub callRecursivly(xCall As XRecursiveCall, nToCall As Integer) _
Implements XRecursiveCall.callRecursivly
SyncLock (Me)
If nToCall <> 0
nToCall = nToCall - 1
xCall.callRecursivly(Me , nToCall)
End If
End SyncLock
End Sub
Public Overridable Sub startRecursiveCall(xCall As XRecursiveCall, nToCall As Integer) _
Implements XBridgeTest2.startRecursiveCall
SyncLock (Me)
If nToCall <> 0
nToCall = nToCall - 1
xCall.callRecursivly(Me , nToCall )
End If
End SyncLock
End Sub
' XBridgeTest
Public Overridable Function raiseException( _
nArgumentPos As Short, rMsg As String, xContext As Object) As TestDataElements _
Implements XBridgeTest2.raiseException
Throw New IllegalArgumentException(rMsg, xContext, nArgumentPos)
End Function
Public Overridable Sub raiseRuntimeExceptionOneway(rMsg As String , xContext As Object) _
Implements XBridgeTest2.raiseRuntimeExceptionOneway
Throw New RuntimeException(rMsg, xContext)
End Sub
Public Overridable Property RuntimeException As Integer _
Implements XBridgeTest2.RuntimeException
Get
Throw New RuntimeException(m_string, m_xInterface)
End Get
Set (Value As Integer)
Throw New RuntimeException(m_string, m_xInterface)
End Set
End Property
' XBridgeTest2
Public Overridable Function setDim2(val()() As Integer) As Integer()() _
Implements XBridgeTest2.setDim2
m_arLong2 = val
Return val
End Function
Public Overridable Function setDim3(val()()() As Integer) As Integer()()() _
Implements XBridgeTest2.setDim3
m_arLong3 = val
Return val
End Function
Public Overridable Function setSequenceAny(val() As Any) As Any() _
Implements XBridgeTest2.setSequenceAny
m_arAny = val
Return val
End Function
Public Overridable Function setSequenceBool(val() As Boolean) As Boolean() _
Implements XBridgeTest2.setSequenceBool
m_arBool = val
Return val
End Function
Public Overridable Function setSequenceByte(val() As Byte) As Byte() _
Implements XBridgeTest2.setSequenceByte
m_arByte = val
Return val
End Function
Public Overridable Function setSequenceChar(val() As Char) As Char() _
Implements XBridgeTest2.setSequenceChar
m_arChar = val
Return val
End Function
Public Overridable Function setSequenceShort(val() As Short) As Short() _
Implements XBridgeTest2.setSequenceShort
m_arShort = val
Return val
End Function
Public Overridable Function setSequenceLong(val() As Integer) As Integer() _
Implements XBridgeTest2.setSequenceLong
m_arLong = val
Return val
End Function
Public Overridable Function setSequenceHyper(val() As Long) As Long() _
Implements XBridgeTest2.setSequenceHyper
m_arHyper = val
Return val
End Function
Public Overridable Function setSequenceFloat(val() As Single) As Single() _
Implements XBridgeTest2.setSequenceFloat
m_arFloat = val
Return val
End Function
Public Overridable Function setSequenceDouble(val() As Double) As Double() _
Implements XBridgeTest2.setSequenceDouble
m_arDouble = val
Return val
End Function
Public Overridable Function setSequenceEnum(val() As TestEnum) As TestEnum() _
Implements XBridgeTest2.setSequenceEnum
m_arEnum = val
Return val
End Function
Public Overridable Function setSequenceUShort(val() As UInt16) As UInt16() _
Implements XBridgeTest2.setSequenceUShort
m_arUShort = val
Return val
End Function
Public Overridable Function setSequenceULong(val() As UInt32) As UInt32() _
Implements XBridgeTest2.setSequenceULong
m_arULong = val
Return val
End Function
Public Overridable Function setSequenceUHyper(val() As UInt64) As UInt64() _
Implements XBridgeTest2.setSequenceUHyper
m_arUHyper = val
Return val
End Function
Public Overridable Function setSequenceXInterface(val() As Object ) As Object() _
Implements XBridgeTest2.setSequenceXInterface
m_arObject = val
Return val
End Function
Public Overridable Function setSequenceString(val() As String) As String() _
Implements XBridgeTest2.setSequenceString
m_arString = val
Return val
End Function
Public Overridable Function setSequenceStruct(val() As TestElement) As TestElement() _
Implements XBridgeTest2.setSequenceStruct
m_testElements = val
Return val
End Function
Public Overridable Sub setSequencesInOut( _
ByRef aSeqBoolean() As Boolean, ByRef aSeqChar() As Char, _
ByRef aSeqByte() As Byte, ByRef aSeqShort() As Short, _
ByRef aSeqUShort() As UInt16, ByRef aSeqLong() As Integer, _
ByRef aSeqULong() As UInt32, ByRef aSeqHyper() As Long, _
ByRef aSeqUHyper() As UInt64, ByRef aSeqFloat() As Single, _
ByRef aSeqDouble() As Double, ByRef aSeqTestEnum() As TestEnum, _
ByRef aSeqString() As String, ByRef aSeqXInterface() As Object, _
ByRef aSeqAny() As Any, ByRef aSeqDim2()() As Integer, _
ByRef aSeqDim3()()() As Integer) _
Implements XBridgeTest2.setSequencesInOut
m_arBool = aSeqBoolean
m_arChar = aSeqChar
m_arByte = aSeqByte
m_arShort = aSeqShort
m_arUShort = aSeqUShort
m_arLong = aSeqLong
m_arULong = aSeqULong
m_arHyper = aSeqHyper
m_arUHyper = aSeqUHyper
m_arFloat = aSeqFloat
m_arDouble = aSeqDouble
m_arEnum = aSeqTestEnum
m_arString = aSeqString
m_arObject = aSeqXInterface
m_arAny = aSeqAny
m_arLong2 = aSeqDim2
m_arLong3 = aSeqDim3
End Sub
Public Overridable Sub setSequencesOut( _
ByRef aSeqBoolean() As Boolean, ByRef aSeqChar() As Char, _
ByRef aSeqByte() As Byte, ByRef aSeqShort() As Short, _
ByRef aSeqUShort() As UInt16, ByRef aSeqLong() As Integer, _
ByRef aSeqULong() As UInt32, ByRef aSeqHyper() As Long, _
ByRef aSeqUHyper() As UInt64, ByRef aSeqFloat() As Single, _
ByRef aSeqDouble() As Double, ByRef aSeqTestEnum() As TestEnum, _
ByRef aSeqString() As String, ByRef aSeqXInterface() As Object, _
ByRef aSeqAny() As Any, ByRef aSeqDim2()() As Integer, _
ByRef aSeqDim3()()() As Integer) _
Implements XBridgeTest2.setSequencesOut
aSeqBoolean = m_arBool
aSeqChar = m_arChar
aSeqByte = m_arByte
aSeqShort = m_arShort
aSeqUShort = m_arUShort
aSeqLong = m_arLong
aSeqULong = m_arULong
aSeqHyper = m_arHyper
aSeqUHyper = m_arUHyper
aSeqFloat = m_arFloat
aSeqDouble = m_arDouble
aSeqTestEnum = m_arEnum
aSeqString = m_arString
aSeqXInterface = m_arObject
aSeqAny = m_arAny
aSeqDim2 = m_arLong2
aSeqDim3 = m_arLong3
End Sub
End Class
End Namespace