Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
Gray::IFileCopier Struct Referenceabstract

#include <cFileCopier.h>

Inheritance diagram for Gray::IFileCopier:
Gray::cFileCopier GrayLib::cFtpClient GrayLib::cHttpClient GrayLib::cXProtocolClient GrayLib::cHttpCopier GrayLib::cWebAPIClient

Public Member Functions

virtual ~ IFileCopier ()
 
virtual cStringA get_ConnectName () const =0
 get a debug name for the connection. More...
 
virtual HRESULT Connect (const FILECHAR_t *pszDevice)
 
virtual HRESULT RequestFile (const FILECHAR_t *pszSrcName, const FILECHAR_t *pszDestPath, IStreamProgressCallback *pProgress=nullptr, FILE_SIZE_t nOffsetStart=0, FILE_SIZE_t *pnRequestSizeEst=nullptr)
 
virtual HRESULT SendFile (const FILECHAR_t *pszSrcPath, const FILECHAR_t *pszDestName, IStreamProgressCallback *pProgress, FILE_SIZE_t nOffsetStart=0, FILE_SIZE_t nSize=(FILE_SIZE_t) -1)
 
virtual HRESULT SendAttr (const FILECHAR_t *pszDestName, cTimeFile timeChanged)
 

Detailed Description

An Abstract/interface to request/send a file from/to a remote source. (e.g. HTTP,FTP,another file device,etc) And track it's progress. similar to linux curl lib

Constructor & Destructor Documentation

◆ ~ IFileCopier()

virtual Gray::IFileCopier::~ IFileCopier ( )
inlinevirtual

Member Function Documentation

◆ Connect()

virtual HRESULT Gray::IFileCopier::Connect ( const FILECHAR_t pszDevice)
inlinevirtual

Connect to the device by its name. Maybe URI or File device to transfer files to/from. ASSUME blocking call.

  • pszDevice = can be prefixed by "http://host" or "ftp://host" or "C:\etc" nullptr = It might be needed to re-connect to a device if it disconnects spontaneously.

Reimplemented in GrayLib::cFtpClient, GrayLib::cHttpCopier, GrayLib::cHttpClient, and Gray::cFileCopier.

◆ get_ConnectName()

virtual cStringA Gray::IFileCopier::get_ConnectName ( ) const
pure virtual

get a debug name for the connection.

Implemented in GrayLib::cXProtocolClient, GrayLib::cFtpClient, GrayLib::cHttpClient, and Gray::cFileCopier.

◆ RequestFile()

virtual HRESULT Gray::IFileCopier::RequestFile ( const FILECHAR_t pszSrcName,
const FILECHAR_t pszDestPath,
IStreamProgressCallback pProgress = nullptr,
FILE_SIZE_t  nOffsetStart = 0,
FILE_SIZE_t pnRequestSizeEst = nullptr 
)
inlinevirtual

Request a file from a server to be brought back to me/local. ASSUME blocking call.

  • pszDestPath = a local file. nullptr = query only. don't actually get the file.
  • pnRequestSizeEst = nullptr = i don't care. -1 = request/return the size.

Reimplemented in GrayLib::cFtpClient, GrayLib::cHttpClient, Gray::cFileCopier, and GrayLib::cXProtocolClient.

◆ SendAttr()

virtual HRESULT Gray::IFileCopier::SendAttr ( const FILECHAR_t pszDestName,
cTimeFile  timeChanged 
)
inlinevirtual

Optionally set the remote side time stamp for a file. ASSUME blocking call.

Reimplemented in Gray::cFileCopier.

◆ SendFile()

virtual HRESULT Gray::IFileCopier::SendFile ( const FILECHAR_t pszSrcPath,
const FILECHAR_t pszDestName,
IStreamProgressCallback pProgress,
FILE_SIZE_t  nOffsetStart = 0,
FILE_SIZE_t  nSize = (FILE_SIZE_t)-1 
)
inlinevirtual

Send a file to a remote/server from local storage. or delete the remote side file. (pszSrcPath=nullptr,nSize=0) ASSUME blocking call.

  • pszSrcPath = a local file.
    Note
    I cannot set the modification time stamp for the file here.

Reimplemented in GrayLib::cXProtocolClient, GrayLib::cFtpClient, GrayLib::cHttpClient, and Gray::cFileCopier.


The documentation for this struct was generated from the following file: