Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
GrayFTP::cClientFTPData Class Reference

#include <cClientFTPData.h>

Inheritance diagram for GrayFTP::cClientFTPData:
GrayFTP::cClientFTPBase Gray::cRefBase GrayLib::cProtocolStream IUnknown

Public Member Functions

 cClientFTPData (cFTPFactory &rFactory, IUnkObject *pServerConnection, cStreamInput *pStreamInp, cStreamOutput *pStreamOut)
 
virtual ~cClientFTPData ()
 
void AssignCmd (cClientFTP *pControl)
 
HRESULT GRAYCALL CmdData_Retr_SendFile ()
 
HRESULT GRAYCALL CmdData_Stor_ReceiveFile ()
 
HRESULT GRAYCALL CmdData_List_SendDir ()
 
HRESULT GRAYCALL CmdData_List_SendUserGroupRoot ()
 
virtual HRESULT DisposeThis () override
 
virtual HRESULT ProcessStreamPacket () override
 
virtual HRESULT OnTickStream () override
 
- Public Member Functions inherited from GrayFTP::cClientFTPBase
 cClientFTPBase (IProtocolFactory *pFactory, IUnkObject *pServerConnection, cStreamInput *pStreamInp, cStreamOutput *pStreamOut)
 
virtual ~cClientFTPBase ()
 
HASHCODE_t get_HashCode () const noexcept
 
cNetServerConnectionget_NetStream () const
 
 IUNKNOWN_DISAMBIG (cRefBase)
 
- Public Member Functions inherited from Gray::cRefBase
 cRefBase (int iRefCount=0) noexcept
 
virtual ~cRefBase ()
 
int get_RefCount () const noexcept
 
HASHCODE_t get_HashCode () const noexcept
 
 STDMETHOD_ (HASHCODE_t, get_HashCodeX)() const noexcept
 
virtual void onFinalRelease ()
 
bool isValidObj () const noexcept
 
 STDMETHOD_ (ULONG, AddRef)(void) override
 
 STDMETHOD_ (ULONG, Release)(void) override
 
STDMETHOD() QueryInterface (const IID &riid, void __RPC_FAR *__RPC_FAR *ppvObject) override
 
void IncRefCount ()
 
void DecRefCount ()
 
bool isStaticConstruct () const noexcept
 
void StaticConstruct ()
 
void StaticDestruct ()
 
bool isDestructing () noexcept
 
void SetDestructing ()
 
- Public Member Functions inherited from GrayLib::cProtocolStream
 cProtocolStream (IProtocolFactory *pProtocolFactory, IUnkObject *pServerConnection, cStreamInput *pStreamInp, cStreamOutput *pStreamOut)
 
virtual ~cProtocolStream ()
 
HASHCODE_t get_HashCode () const noexcept
 
 STDMETHOD_ (HASHCODE_t, get_HashCodeX)() const noexcept override
 
 STDMETHOD_ (cString, get_Name)() const override
 
 STDMETHOD_ (cStringA, get_SymName)() const override
 
bool isConnected () const
 
cStreamInputget_StreamInp () const
 
cStreamOutputget_StreamOut () const
 
virtual size_t get_ProtocolMaxMessageSize () const
 

Static Public Member Functions

static StrLen_t GRAYCALL CmdData_List_DateTime (char *pBuffer, StrLen_t iSizeMax, const cTimeUnits *pSysTime)
 
static StrLen_t GRAYCALL CmdData_List_Format (char *pBuffer, StrLen_t iSizeMax, const char *pszName, DWORD dwFileAttributes, STREAM_POS_t nFileSize, const cTimeUnits *pSysTime, bool bVerbose, TZ_TYPE nTZDisp)
 
static StrLen_t GRAYCALL CmdData_List_Entry (char *pBuffer, StrLen_t iSizeMax, const cFileFindEntry &fd, bool bVerbose, TZ_TYPE nTZDisp)
 

Public Attributes

cClientFTPPtr m_pCC
 My parent control connection. ALWAYS not nullptr. More...
 
cFTPDataParamsPtr m_pDataParams
 Params for this data connection. More...
 
- Public Attributes inherited from GrayFTP::cClientFTPBase
TIMESYS_t m_timeLast
 time of last command/action. More...
 
- Public Attributes inherited from GrayLib::cProtocolStream
IProtocolFactory *const m_pProtocolFactory
 What IProtocolFactory produced this? More...
 
IUnkObject *const m_pServerConnection
 the cNetServerConnection or other top level parent for this protocol. More...
 
HASHCODE_t const m_nHashCode
 the m_pClient->get_HashCode() id for this client connection/stream. More...
 

Additional Inherited Members

- Protected Attributes inherited from GrayLib::cProtocolStream
cStreamInputm_pStreamInp
 for use with ProcessStreamPacket() More...
 
cStreamOutputm_pStreamOut
 TX responses back to the remote client go here. (e.g. cNetServerConnection->cNetStream) More...
 
cString m_sName
 a user readable name. Usually the IP address or reverse DNS lookup. can be upgraded as lookup or login becomes avail. m_pClient->get_Name() More...
 

Detailed Description

A FTP data connection for a cClientFTP control connection. There can be multiple data connections for a control connection.

Constructor & Destructor Documentation

◆ cClientFTPData()

GrayFTP::cClientFTPData::cClientFTPData ( cFTPFactory rFactory,
IUnkObject *  pServerConnection,
cStreamInput pStreamInp,
cStreamOutput pStreamOut 
)

pClient = cNetServerConnection

Note
AssignCmd() must be called

◆ ~cClientFTPData()

GrayFTP::cClientFTPData::~cClientFTPData ( )
virtual

Member Function Documentation

◆ AssignCmd()

void GrayFTP::cClientFTPData::AssignCmd ( cClientFTP pControl)

◆ CmdData_List_DateTime()

StrLen_t GRAYCALL GrayFTP::cClientFTPData::CmdData_List_DateTime ( char *  pBuffer,
StrLen_t  iSizeMax,
const cTimeUnits pSysTime 
)
static

called from CmdData_List_Format() ASSUME: size >= 128

◆ CmdData_List_Entry()

StrLen_t GRAYCALL GrayFTP::cClientFTPData::CmdData_List_Entry ( char *  pBuffer,
StrLen_t  iSizeMax,
const cFileFindEntry fd,
bool  bVerbose,
TZ_TYPE  nTZDisp 
)
static
  • TZ_TYPE nTZDisp= pFactory->m_rCfg.m_Opts.m_nTZDisp

◆ CmdData_List_Format()

StrLen_t GRAYCALL GrayFTP::cClientFTPData::CmdData_List_Format ( char *  pBuffer,
StrLen_t  iSizeMax,
const char *  pszName,
DWORD  dwFileAttributes,
STREAM_POS_t  nFileSize,
const cTimeUnits pSysTime,
bool  bVerbose,
TZ_TYPE  nTZDisp 
)
static
  • TZ_TYPE nTZDisp= pFactory->m_rCfg.m_Opts.m_nTZDisp LIST command for WIN32_FIND_DATAA ex: for 'UNIX' mode. drwxr-xrwx 2 system System 0 Mar 14 10:30 sphereserver drwx—r-x 2 system System 0 Mar 14 10:30 uoexchange dr-x---— 2 sphere System 0 Feb 9 02:55 .

for 'windows_NT version 4.0' -------— 1 owner group 1536 Aug 31 17:04 name.ext d------— 1 owner group 0 Aug 31 17:04 dirname

e.g. for 'Windows_NT version 5.0' or 'Windows_NT' 06-03-99 11:13PM 342 help.gif

◆ CmdData_List_SendDir()

HRESULT GRAYCALL GrayFTP::cClientFTPData::CmdData_List_SendDir ( )

FTP_DATAFUNC_t LIST command FTP_DATA_FLAG_VERBOSE or not. Put aliases in the user root.

Returns
<0 = should close the connection. Size sent.

◆ CmdData_List_SendUserGroupRoot()

HRESULT GRAYCALL GrayFTP::cClientFTPData::CmdData_List_SendUserGroupRoot ( )

FTP_DATAFUNC_t Send the group/roots the user has access to.

Returns
<0 = should close the connection.

◆ CmdData_Retr_SendFile()

HRESULT GRAYCALL GrayFTP::cClientFTPData::CmdData_Retr_SendFile ( )

client requested a server side file. FTP_DATAFUNC_t

Returns
<0 = close the connection.

◆ CmdData_Stor_ReceiveFile()

HRESULT GRAYCALL GrayFTP::cClientFTPData::CmdData_Stor_ReceiveFile ( )

client is storing a file on the server. FTP_DATAFUNC_t ? We are done when the connection closes ?

Returns
<0 = should close the connection.

◆ DisposeThis()

HRESULT GrayFTP::cClientFTPData::DisposeThis ( void  )
overridevirtual

done with the data connection.

Note
Must close connection at the end of the transfer so the client knows we are done.

Reimplemented from GrayLib::cProtocolStream.

◆ OnTickStream()

HRESULT GrayFTP::cClientFTPData::OnTickStream ( )
overridevirtual

A data connection once actually connected will indicate that write is possible. e.g. m_pDataFunc = CmdData_List_SendDir, CmdData_List_SendUserGroupRoot, CmdData_Retr_SendFile etc

Returns
<0 = should close the connection.

Reimplemented from GrayLib::cProtocolStream.

◆ ProcessStreamPacket()

HRESULT GrayFTP::cClientFTPData::ProcessStreamPacket ( )
overridevirtual

Process input data. e.g. m_pDataFunc = CmdData_Stor_ReceiveFile

Returns
<0 = should close the connection. HRESULT_WIN32_C(ERROR_IO_INCOMPLETE) = wait for more.

Reimplemented from GrayLib::cProtocolStream.

Member Data Documentation

◆ m_pCC

cClientFTPPtr GrayFTP::cClientFTPData::m_pCC

My parent control connection. ALWAYS not nullptr.

◆ m_pDataParams

cFTPDataParamsPtr GrayFTP::cClientFTPData::m_pDataParams

Params for this data connection.


The documentation for this class was generated from the following files: