ListHandler Class
[C++]
class ListHandler : public HandlerBase (.. public RefCountable, public NoCopy)
{
public:
bool Success() const;
std::vector<FileInfo> const& GetFileInfos() const;
ListErr GetError() const;
protected:
virtual void OnStart();
virtual void OnDone();
virtual void OnList(std::vector<FileInfo> const& fileInfos, bool endOfList);
virtual void OnError(ListErr const& error);
}
[C#]
public class ListHandler : IDisposable, HandlerBase (.. WaitImpl)
{
public ListHandler(bool useGetFileInfos);
public bool Success { get; }
public FileInfo[] GetFileInfos();
public ListErr GetError();
public event StartEventHandler OnStart;
public event DoneEventHandler OnDone;
public event ListEventHandler OnList;
public event ListErrorEventHandler OnError;
public override sealed bool IsDisposed { get; }
public override sealed void Dispose();
}
Members
[.NET] Constructor Parameters
- useGetFileInfos:
true: The handler object should internally store all file listings. You can retrieve the list with GetFileInfos() once OnDone is called.
false: You will not use GetFileInfos().
General
- Success: Request completed successfully?
- GetFileInfos: Returns an array of type FileInfo with information about files and directories for the requested listing.
- GetError: Returns a ListErr.
Overrides and Events
- OnStart: The first override/event being invoked for a request. *
- OnDone: The last override/event being invoked for a request. *
- OnList: Can be called multiple times. Return false to abort the listing.
Parameters:- fileInfos: See GetFileInfos(). If called multiple times, only a part of the final array is passed by each call here.
- endOfList: If endOfList=true, then this is the last call.
- OnError: Invoked for a failed request.
Parameters:- error: See GetError().
[.NET] Disposing
- IsDisposed: Is the object disposed?
- Dispose: Release all resources used by the object.
Remarks
ListHandler is a base class which must be derived to use. Either derive and implement your own OnDone() method, or use pre-made derived classes ListEvent or ListMsg (for Win32 graphical applications). If you use ListEvent, call WaitDone() or wait for GetDoneEvent() before checking the result.
This handler is used with the [ClientSftpChannel]List request.
[C++] The default implementation stores all file listings to m_fileInfos. You can retrieve the list with GetFileInfos once OnDone is called. If you don't need this functionality, override OnList with your own implementation. **
[.NET] Use useGetFileInfos to specify if GetFileInfos will be used or not. **
* [C++] Always call the base class implementation from your override.
** If GetFileInfos is used: Keep in mind that for large folders quite some memory might be occupied by the handler object to hold all listing entries.