Gray C++ Libraries  0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
cClientFTPData.h
Go to the documentation of this file.
1 //
4 //
5 #ifndef _INC_cClientFTPData_H
6 #define _INC_cClientFTPData_H
7 #ifndef NO_PRAGMA_ONCE
8 #pragma once
9 #endif
10 
11 #include "cClientFTPBase.h"
12 #include "GrayCore/include/cHeap.h"
13 #include "GrayCore/include/cFile.h"
15 
16 namespace GrayFTP
17 {
18  class cClientFTP;
19  typedef cRefPtr<cClientFTP> cClientFTPPtr;
20  class cFTPFactory;
21 
22  class cClientFTPData;
23  typedef HRESULT(CALLBACK cClientFTPData::* FTP_DATAFUNC_t)();
24 
26  {
31  };
32 
33  class cFTPDataParams : public cRefBase
34  {
38  public:
39  // Context info for the current data connection.
40  FTP_DATAFUNC_t m_pDataFunc;
42  WORD m_wDataFlags;
43 
44  // m_pDataFunc Context specific args.
48 
49  public:
50  cFTPDataParams(FTP_DATAFUNC_t pDataFunc, size_t iSize, WORD wDataFlags)
51  : m_pDataFunc(pDataFunc)
52  , m_pDataBuffer(iSize)
53  , m_wDataFlags(wDataFlags)
54  {
55  ASSERT(pDataFunc!=nullptr);
56  ASSERT(wDataFlags!=0);
57  }
58  };
60 
62  {
66 
67  typedef cClientFTPBase SUPER_t;
68 
69  public:
72 
73 #if 0
74  // Current transfer stats.
75  DWORD m_dwTransferCurRate;
76  TIMESYS_t m_timeTransferThrottle;
77 #endif
78 
79  public:
80  cClientFTPData(cFTPFactory& rFactory, IUnkObject* pServerConnection, cStreamInput* pStreamInp, cStreamOutput* pStreamOut);
81  virtual ~cClientFTPData();
82 
83  void AssignCmd(cClientFTP* pControl);
84 
85  static StrLen_t GRAYCALL CmdData_List_DateTime(char *pBuffer, StrLen_t iSizeMax, const cTimeUnits* pSysTime);
86  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);
87  static StrLen_t GRAYCALL CmdData_List_Entry(char *pBuffer, StrLen_t iSizeMax, const cFileFindEntry& fd, bool bVerbose, TZ_TYPE nTZDisp);
88 
93 
94  virtual HRESULT DisposeThis() override;
95  virtual HRESULT ProcessStreamPacket() override;
96  virtual HRESULT OnTickStream() override;
97  };
99 }
100 
101 #endif
#define GRAYCALL
declare calling convention for static functions so everyone knows the arg passing scheme....
Definition: GrayCore.h:36
INT32 HRESULT
_WIN32 style error codes. INT32
Definition: SysTypes.h:465
#define ASSERT(exp)
Definition: cDebugAssert.h:87
Definition: cClientFTPBase.h:35
Definition: cClientFTPData.h:62
HRESULT GRAYCALL CmdData_List_SendDir()
Definition: cClientFTPData.cpp:163
virtual HRESULT OnTickStream() override
Definition: cClientFTPData.cpp:367
cClientFTPPtr m_pCC
My parent control connection. ALWAYS not nullptr.
Definition: cClientFTPData.h:70
HRESULT GRAYCALL CmdData_Retr_SendFile()
Definition: cClientFTPData.cpp:241
static StrLen_t GRAYCALL CmdData_List_DateTime(char *pBuffer, StrLen_t iSizeMax, const cTimeUnits *pSysTime)
Definition: cClientFTPData.cpp:58
HRESULT GRAYCALL CmdData_Stor_ReceiveFile()
Definition: cClientFTPData.cpp:306
cFTPDataParamsPtr m_pDataParams
Params for this data connection.
Definition: cClientFTPData.h:71
void AssignCmd(cClientFTP *pControl)
Definition: cClientFTPData.cpp:24
virtual ~cClientFTPData()
Definition: cClientFTPData.cpp:20
static StrLen_t GRAYCALL CmdData_List_Entry(char *pBuffer, StrLen_t iSizeMax, const cFileFindEntry &fd, bool bVerbose, TZ_TYPE nTZDisp)
Definition: cClientFTPData.cpp:141
virtual HRESULT DisposeThis() override
Definition: cClientFTPData.cpp:32
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)
Definition: cClientFTPData.cpp:82
cClientFTPData(cFTPFactory &rFactory, IUnkObject *pServerConnection, cStreamInput *pStreamInp, cStreamOutput *pStreamOut)
Definition: cClientFTPData.cpp:13
HRESULT GRAYCALL CmdData_List_SendUserGroupRoot()
Definition: cClientFTPData.cpp:213
virtual HRESULT ProcessStreamPacket() override
Definition: cClientFTPData.cpp:343
Definition: cClientFTP.h:86
Definition: cClientFTPData.h:34
cFTPDataParams(FTP_DATAFUNC_t pDataFunc, size_t iSize, WORD wDataFlags)
Definition: cClientFTPData.h:50
cFile m_DataFile
Read/Write a file.
Definition: cClientFTPData.h:45
cFileFind m_DataDir
Reading a directory.
Definition: cClientFTPData.h:46
FTP_DATAFUNC_t m_pDataFunc
Definition: cClientFTPData.h:40
cHeapBlock m_pDataBuffer
For data transfer.
Definition: cClientFTPData.h:41
WORD m_wDataFlags
FTP_DATA_FLAG_TYPE_.
Definition: cClientFTPData.h:42
TZ_TYPE m_nTZDisp
For CmdData_List_SendUserGroupRoot.
Definition: cClientFTPData.h:47
Definition: cFTPFactory.h:54
Definition: cProtocol.h:24
Definition: cFileDir.h:86
Definition: cFileDir.h:161
Definition: cFile.h:137
Definition: cHeap.h:156
Definition: cRefPtr.h:22
Definition: cStream.h:306
Definition: cStream.h:126
Definition: cTimeUnits.h:146
Definition: cFTPAccount.h:14
cRefPtr< cClientFTP > cClientFTPPtr
Definition: cClientFTP.h:234
FTP_DATA_FLAG_TYPE_
Definition: cClientFTPData.h:26
@ FTP_DATA_FLAG_VERBOSE
Definition: cClientFTPData.h:30
@ FTP_DATA_FLAG_DATA_TX
data socket open for sending
Definition: cClientFTPData.h:28
@ FTP_DATA_FLAG_DATA_RX
data socket open for receiving. CmdData_Stor_ReceiveFile
Definition: cClientFTPData.h:29
typedef HRESULT(CALLBACK cClientFTPData::*FTP_DATAFUNC_t)()
cRefPtr< cFTPDataParams > cFTPDataParamsPtr
Definition: cClientFTPData.h:59
cRefPtr< cClientFTPData > cClientFTPDataPtr
Definition: cClientFTPData.h:98
TZ_TYPE
Definition: cTimeUnits.h:29
int StrLen_t
the length of a string in chars (bytes for UTF8, wchar_t for UNICODE). or offset in characters....
Definition: StrConst.h:32
ULONG_PTR STREAM_POS_t
NOT same as FILE_SIZE_t in 32 bit. Why not ?
Definition: cOSHandle.h:54
UINT32 TIMESYS_t
TIMESYS_t = The normal system tick timer. milli-seconds since start of system/app ?
Definition: cTimeSys.h:27