Pubblicazione File: ClsTestProcedures_Stub
Documento generato mediante: Documentation Creator By BGSoftware


VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
  Persistable = 0  'NotPersistable
  DataBindingBehavior = 0  'vbNone
  DataSourceBehavior  = 0  'vbNone
  MTSTransactionMode  = 0  'NotAnMTSObject
END
Attribute VB_Name = "ClsTestProcedures_Stub"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
' *********************************************************************
'* CLASS Stub statico per il test per il middleware.
'* <BR/>Autore: <B>Giorgio Bernardi</B>
'* E-Mail: <A HREF="mailto:giorgio.bernardi@studio.unibo.it">Giorgio.Bernardi@studio.unibo.it</A>
'* Data  : Settembre 2004
'* <DIV CLASS="ClassDescription">
'*  Stub statico per il test per il middleware.
'* </DIV>
' *********************************************************************
Option Explicit
Implements ISender
Implements IReceiver
Implements ClsTestProcedures

'* Dispatcher al quale inviare le richieste
Public Dispatcher           As IDispatcher
Public MsgManagerAddress    As String

Private Risultati           As Collection

Private Sub Class_Initialize()
    Set Risultati = New Collection
End Sub

'* Verifica se è arrivato il risultato della richiesta
'* In tal caso lo restituisce e lo rimuove dalla collezione dei risultati arrivati
Private Function IsResultArrived(InstanceID As String) As CFunctionResult
On Error GoTo ErrorCatch
Dim Risultato   As CFunctionResult
    Set Risultato = Risultati.Item(InstanceID)
    Call Risultati.Remove(InstanceID)
    Set IsResultArrived = Risultato
ErrorCatch:
End Function

'* Indica che è arrivato il risultato della richiesta
Private Sub ResultArrived(Result As CFunctionResult)
    Call Risultati.Add(Result, Result.InstanceID)
End Sub

Private Function ClsTestProcedures_BigConcatena(a As String, b As String, c As String, d As String, e As String, f As String, g As String, h As String, i As String, l As String, m As String, n As String) As Variant
Dim newCProcedure   As New CProcedure
Dim newParamAddendo1    As SMom.CValue
Dim newParamAddendo2    As SMom.CValue
Dim newParamAddendo3    As SMom.CValue
Dim newParamAddendo4    As SMom.CValue
Dim newParamAddendo5    As SMom.CValue
Dim newParamAddendo6    As SMom.CValue
Dim newParamAddendo7    As SMom.CValue
Dim newParamAddendo8    As SMom.CValue
Dim newParamAddendo9    As SMom.CValue
Dim newParamAddendo10    As SMom.CValue
Dim newParamAddendo11    As SMom.CValue
Dim newParamAddendo12    As SMom.CValue
Dim IntialTimer          As Long

    Set newParamAddendo1 = SMom.CreateCValue(a)
    Set newParamAddendo2 = SMom.CreateCValue(b)
    Set newParamAddendo3 = SMom.CreateCValue(c)
    Set newParamAddendo4 = SMom.CreateCValue(d)
    Set newParamAddendo5 = SMom.CreateCValue(e)
    Set newParamAddendo6 = SMom.CreateCValue(f)
    Set newParamAddendo7 = SMom.CreateCValue(g)
    Set newParamAddendo8 = SMom.CreateCValue(h)
    Set newParamAddendo9 = SMom.CreateCValue(i)
    Set newParamAddendo10 = SMom.CreateCValue(l)
    Set newParamAddendo11 = SMom.CreateCValue(m)
    Set newParamAddendo12 = SMom.CreateCValue(n)
    With newCProcedure
        .Name = "BigConcatena"
        .AddParam newParamAddendo1
        .AddParam newParamAddendo2
        .AddParam newParamAddendo3
        .AddParam newParamAddendo4
        .AddParam newParamAddendo5
        .AddParam newParamAddendo6
        .AddParam newParamAddendo7
        .AddParam newParamAddendo8
        .AddParam newParamAddendo9
        .AddParam newParamAddendo10
        .AddParam newParamAddendo11
        .AddParam newParamAddendo12
    End With
    
    Dispatcher.Send newCProcedure.toEnvelope(Me, "ClsTestProcedures_Sckeleton"), MsgManagerAddress
    
    'Ora devo attendere il risultato. In Vb non riesco a fare altro che attendere con un ciclo
    Dim Risultato   As CFunctionResult
    IntialTimer = Timer
    Do While (Risultato Is Nothing) And ((Timer - IntialTimer) < 30)
        DoEvents
        Set Risultato = IsResultArrived(newCProcedure.InstanceID)
    Loop
    If Risultato Is Nothing Then
        Call SMom.RaiseSMomException(TimeOutExpiredException, "ClsTestProcedure_Stub")
    Else
        If Risultato.IsValid Then
            Dim RisultatoValue  As CStringValue
            Set RisultatoValue = Risultato.FunctionResult
            ClsTestProcedures_BigConcatena = RisultatoValue.getValue()
        ElseIf Not Risultato.FunctionResult Is Nothing Then
            Err.Raise 6000, , "Errore in BigConcatena" & vbCrLf & Risultato.FunctionResult.getActualValueToString()
        Else
            Err.Raise 6000, , "Errore non specificato in BigConcatena"
        End If
    End If
    
End Function

Private Function ClsTestProcedures_ComputeDiff(Sottraendo As Long, Sottraente As Long) As Long
Dim newCProcedure   As New CProcedure
Dim newParamAddendo1    As New CInt32Value
Dim newParamAddendo2    As New CInt32Value
Dim IntialTimer          As Long

    newParamAddendo1.setValue Sottraendo
    newParamAddendo2.setValue Sottraente
    
    With newCProcedure
        .Name = "ComputeDiff"
        .AddParam newParamAddendo1
        .AddParam newParamAddendo2
    End With
    
    Dispatcher.Send newCProcedure.toEnvelope(Me, "ClsTestProcedures_Sckeleton"), MsgManagerAddress
    
    'Ora devo attendere il risultato. In Vb non riesco a fare altro che attendere con un ciclo
    Dim Risultato   As CFunctionResult
    IntialTimer = Timer
    Do While (Risultato Is Nothing) And ((Timer - IntialTimer) < 30)
        DoEvents
        Set Risultato = IsResultArrived(newCProcedure.InstanceID)
    Loop
    If Risultato Is Nothing Then
        Call SMom.RaiseSMomException(TimeOutExpiredException, "ClsTestProcedure_Stub")
    Else
        If Risultato.IsValid Then
            Dim RisultatoValue  As CInt32Value
            Set RisultatoValue = Risultato.FunctionResult
            ClsTestProcedures_ComputeDiff = RisultatoValue.getValue()
        ElseIf Not Risultato.FunctionResult Is Nothing Then
            Err.Raise 6000, , "Errore in GetSum" & vbCrLf & Risultato.FunctionResult.getActualValueToString()
        Else
            Err.Raise 6000, , "Errore non specificato in GetSum"
        End If
    End If
End Function

Private Sub ClsTestProcedures_ComputeSum(Addendo1 As Long, Addendo2 As Long)
Dim newCProcedure   As New CProcedure
Dim newParamAddendo1    As New CInt32Value
Dim newParamAddendo2    As New CInt32Value

    newParamAddendo1.setValue Addendo1
    newParamAddendo2.setValue Addendo2
    
    With newCProcedure
        .Name = "ComputeSum"
        .AddParam newParamAddendo1
        .AddParam newParamAddendo2
    End With
    
    Dispatcher.Send newCProcedure.toEnvelope(Me, "ClsTestProcedures_Sckeleton"), MsgManagerAddress
End Sub

Private Function ClsTestProcedures_Concatena(Str1 As String, Str2 As String, Str3 As String) As String
Dim newCProcedure   As New CProcedure
Dim newParamAddendo1    As SMom.CValue
Dim newParamAddendo2    As SMom.CValue
Dim newParamAddendo3    As SMom.CValue
Dim IntialTimer          As Long

    Set newParamAddendo1 = SMom.CreateCValue(Str1)
    Set newParamAddendo2 = SMom.CreateCValue(Str2)
    Set newParamAddendo3 = SMom.CreateCValue(Str3)
    
    With newCProcedure
        .Name = "Concatena"
        .AddParam newParamAddendo1
        .AddParam newParamAddendo2
        .AddParam newParamAddendo3
    End With
    
    Dispatcher.Send newCProcedure.toEnvelope(Me, "ClsTestProcedures_Sckeleton"), MsgManagerAddress
    
    'Ora devo attendere il risultato. In Vb non riesco a fare altro che attendere con un ciclo
    Dim Risultato   As CFunctionResult
    IntialTimer = Timer
    Do While (Risultato Is Nothing) And ((Timer - IntialTimer) < 30)
        DoEvents
        Set Risultato = IsResultArrived(newCProcedure.InstanceID)
    Loop
    If Risultato Is Nothing Then
        Call SMom.RaiseSMomException(TimeOutExpiredException, "ClsTestProcedure_Stub")
    Else
        If Risultato.IsValid Then
            Dim RisultatoValue  As CStringValue
            Set RisultatoValue = Risultato.FunctionResult
            ClsTestProcedures_Concatena = RisultatoValue.getValue()
        ElseIf Not Risultato.FunctionResult Is Nothing Then
            Err.Raise 6000, , "Errore in Concatena" & vbCrLf & Risultato.FunctionResult.getActualValueToString()
        Else
            Err.Raise 6000, , "Errore non specificato in Concatena"
        End If
    End If
    
End Function

Private Function ClsTestProcedures_Divide(Arg1 As Long, Arg2 As Long) As Long
Dim newCProcedure   As New CProcedure
Dim newParamAddendo1    As New CInt32Value
Dim newParamAddendo2    As New CInt32Value
Dim IntialTimer          As Long


    newParamAddendo1.setValue Arg1
    newParamAddendo2.setValue Arg2
    
    With newCProcedure
        .Name = "Divide"
        .AddParam newParamAddendo1
        .AddParam newParamAddendo2
    End With
    
    Dispatcher.Send newCProcedure.toEnvelope(Me, "ClsTestProcedures_Sckeleton"), MsgManagerAddress
    
    'Ora devo attendere il risultato. In Vb non riesco a fare altro che attendere con un ciclo
    Dim Risultato   As CFunctionResult
    IntialTimer = Timer
    Do While (Risultato Is Nothing) And ((Timer - IntialTimer) < 30)
        DoEvents
        Set Risultato = IsResultArrived(newCProcedure.InstanceID)
    Loop
    If Risultato Is Nothing Then
        Call SMom.RaiseSMomException(TimeOutExpiredException, "ClsTestProcedure_Stub")
    Else
        If Risultato.IsValid Then
            Dim RisultatoValue  As CInt32Value
            Set RisultatoValue = Risultato.FunctionResult
            ClsTestProcedures_Divide = RisultatoValue.getValue()
        ElseIf Not Risultato.FunctionResult Is Nothing Then
            Err.Raise 6000, , "Errore in Divide" & vbCrLf & Risultato.FunctionResult.getActualValueToString()
        Else
            Err.Raise 6000, , "Errore non specificato in Divide"
        End If
    End If
End Function

Private Function ClsTestProcedures_GetSum(Addendo1 As Long, Addendo2 As Long) As Long
Dim newCProcedure   As New CProcedure
Dim newParamAddendo1    As New CInt32Value
Dim newParamAddendo2    As New CInt32Value
Dim IntialTimer          As Long


    newParamAddendo1.setValue Addendo1
    newParamAddendo2.setValue Addendo2
    
    With newCProcedure
        .Name = "GetSum"
        .AddParam newParamAddendo1
        .AddParam newParamAddendo2
    End With
    
    Dispatcher.Send newCProcedure.toEnvelope(Me, "ClsTestProcedures_Sckeleton"), MsgManagerAddress
    
    'Ora devo attendere il risultato. In Vb non riesco a fare altro che attendere con un ciclo
    Dim Risultato   As CFunctionResult
    IntialTimer = Timer
    Do While (Risultato Is Nothing) And ((Timer - IntialTimer) < 30)
        DoEvents
        Set Risultato = IsResultArrived(newCProcedure.InstanceID)
    Loop
    If Risultato Is Nothing Then
        Call SMom.RaiseSMomException(TimeOutExpiredException, "ClsTestProcedure_Stub")
    Else
        If Risultato.IsValid Then
            Dim RisultatoValue  As CInt32Value
            Set RisultatoValue = Risultato.FunctionResult
            ClsTestProcedures_GetSum = RisultatoValue.getValue()
        ElseIf Not Risultato.FunctionResult Is Nothing Then
            Err.Raise 6000, , "Errore in GetSum" & vbCrLf & Risultato.FunctionResult.getActualValueToString()
        Else
            Err.Raise 6000, , "Errore non specificato in GetSum"
        End If
    End If
    
End Function

Private Sub ClsTestProcedures_hello()
Dim newCProcedure   As New CProcedure
    
    With newCProcedure
        .Name = "hello"
    End With
    
    Dispatcher.Send newCProcedure.toEnvelope(Me, "ClsTestProcedures_Sckeleton"), MsgManagerAddress
End Sub

Private Function IReceiver_getObjectID() As String
    IReceiver_getObjectID = "ClsTestProcedures_Stub"
End Function

Private Sub IReceiver_msgArrived(Env As SMom.CEnvelope)
    'Sono arrivati dei risultati
    Dim Risultato   As New CFunctionResult
    If Risultato.fromEnvelope(Env) Then
        Call ResultArrived(Risultato)
    End If
End Sub

Private Function ISender_getObjectID() As String
    ISender_getObjectID = "ClsTestProcedures_Stub"
End Function

Documento generato mediante: Documentation Creator By BGSoftware