Back to product page

Fast notifications interface


Basic information

As you might have already read, wodSFTPCom can use a fast notification interface instead of firing events. This means that each time wodSFTP needs to fire an event, it will call your implementation of the event instead. Notifications can be up to 30 times faster than events - which means that it is advisable to use them if performance is a requirement of your applications.

wodSFTP ActiveX DOES NOT support notifications - they may only be used with the wodSFTPCom component!

You must declare ALL notification methods if you want to implement IwodSFTPNotify, no matter whether you need them or not. For example, many users don't need the Hostfingerprint event, but at least the empty body for this event MUST exist when notifications are used.

Below, you can read the steps that are required to implement your own IwodSFTPNotify interface. As an example, we will put it on the main form. You can also put it into a separate VB class, in which case instead of the 'Me' keyword, you will use name of the class.

Steps needed to implement IwodSFTPNotify

1. Add a Reference to the wodSFTPCom COM Object to your application.

2. Instead of declaring wodSFTP like this:
 
Dim WithEvents SFTP1 as wodSFTPCom
 

you should do this:
 
Dim SFTP1 as wodSFTPCom
Implements IwodSFTPNotify
 

3. In Form_Load, create a new instance for SFTP1 and pass a reference of our IwodSFTPNotify to it:
 
Set SFTP1 = new wodSFTPCom
Set SFTP1.Notification = Me
 

4. Implement ALL methods or at least declare their empty bodies. You can do it automatically if you locate the 'IwodSFTPNotify' object in the list of all objects that exist on your form (the combo box in the upper left corner of your code view), or just can do it by hand.

5. All done. Now put breakpoints into your methods. You will see that instead of the event firing, your methods will be called instead.

Method declarations


 
Private Sub IwodSFTPNotify_Attributes(ByVal Owner As wodSFTPCOMLib.IwodSFTPCom, ByVal Size As Long, ByVal Uid As Long, ByVal Gid As Long, ByVal Permissions As Long, ByVal AccessTime As Date, ByVal ModificationTime As Date)
 
End Sub
 
Private Sub IwodSFTPNotify_Attributes64(ByVal Owner As wodSFTPCOMLib.IwodSFTPCom, ByVal SizeLo As Long, ByVal SizeHi As Long, ByVal Uid As Long, ByVal Gid As Long, ByVal Permissions As Long, ByVal AccessTime As Date, ByVal ModificationTime As Date)
 
End Sub
 
Private Sub IwodSFTPNotify_AttributesData(ByVal Owner As wodSFTPCOMLib.IwodSFTPCom, ByVal Items As wodSFTPCOMLib.ISftpItems)
 
End Sub
 
Private Sub IwodSFTPNotify_Connected(ByVal Owner As wodSFTPCOMLib.IwodSFTPCom, ByVal ErrorCode As Integer, ByVal ErrorText As String)
 
End Sub
 
Private Sub IwodSFTPNotify_CryptoInformation(ByVal Owner As wodSFTPCOMLib.IwodSFTPCom, ByVal Protocol As String, ByVal RemoteName As String, ByVal SCcipher As String, ByVal CScipher As String, ByVal Keys As String, Accept As Boolean)
 
End Sub
 
 
Private Sub IwodSFTPNotify_Disconnected(ByVal Owner As wodSFTPCOMLib.IwodSFTPCom)
 
End Sub
 
Private Sub IwodSFTPNotify_Done(ByVal Owner As wodSFTPCOMLib.IwodSFTPCom, ByVal ErrorCode As Integer, ByVal ErrorText As String)
 
End Sub
 
Private Sub IwodSFTPNotify_ExtendedCmdReply(ByVal Owner As wodSFTPCOMLib.IwodSFTPCom, ByVal Data As Variant)
 
End Sub
 
Private Sub IwodSFTPNotify_HostFingerprint(ByVal Owner As wodSFTPCOMLib.IwodSFTPCom, ByVal Fingerprint As String, Accept As Boolean)
 
End Sub
 
Private Sub IwodSFTPNotify_ListItems(ByVal Owner As wodSFTPCOMLib.IwodSFTPCom, ByVal FileInfo As String)
 
End Sub
 
Private Sub IwodSFTPNotify_LoginChallenge(ByVal Owner As wodSFTPCOMLib.IwodSFTPCom, ByVal Challenge As String, Response As String)
 
End Sub
 
Private Sub IwodSFTPNotify_LoopError(ByVal Owner As wodSFTPCOMLib.IwodSFTPCom, ByVal LocalFile As String, ByVal RemoteFile As String, ByVal ItemType As wodSFTPCOMLib.DirItemTypes, ErrorCode As Long, ByVal ErrorText As String)
 
End Sub
 
Private Sub IwodSFTPNotify_LoopItem(ByVal Owner As wodSFTPCOMLib.IwodSFTPCom, LocalFile As String, RemoteFile As String, ByVal ItemType As wodSFTPCOMLib.DirItemTypes, Skip As Boolean)
 
End Sub
Private Sub IwodSFTPNotify_Progress(ByVal Owner As wodSFTPCOMLib.IwodSFTPCom, ByVal Position As Long, ByVal Total As Long)
 
End Sub
 
Private Sub IwodSFTPNotify_Progress64(ByVal Owner As wodSFTPCOMLib.IwodSFTPCom, ByVal PositionLo As Long, ByVal PositionHi As Long, ByVal TotalLo As Long, ByVal TotalHi As Long)
 
End Sub
 
Private Sub IwodSFTPNotify_RemoteData(ByVal Owner As wodSFTPCOMLib.IwodSFTPCom, ByVal Data As Variant)
 
End Sub
 
 
Private Sub IwodSFTPNotify_StateChange(ByVal Owner As wodSFTPCOMLib.IwodSFTPCom, ByVal OldState As wodSFTPCOMLib.StatesEnum)
 
End Sub