#ifndef __SERVERCAPABILITIES_H__ #define __SERVERCAPABILITIES_H__ enum capabilities { unknown, yes, no }; enum capabilityNames { resume2GBbug, resume4GBbug, // FTP-protocol specific syst_command, // reply of SYST command as option feat_command, clnt_command, // set to 'yes' if CLNT should be sent utf8_command, // set to yes if OPTS UTF8 ON should be sent mlsd_command, mfmt_command, pret_command, mdtm_command, size_command, mode_z_support, list_hidden_support // LIST -a command }; class CCapabilities { public: enum capabilities GetCapability(enum capabilityNames name, wxString* pOption = 0) const; void SetCapability(enum capabilityNames name, enum capabilities cap, const wxString& option = _T("")); protected: struct t_cap { enum capabilities cap; wxString option; }; std::map m_capabilityMap; }; class CServerCapabilities { public: // If return value isn't 'yes', pOptions remains unchanged static enum capabilities GetCapability(const CServer& server, enum capabilityNames name, wxString* pOption = 0); static void SetCapability(const CServer& server, enum capabilityNames name, enum capabilities cap, const wxString& option = _T("")); protected: static std::map m_serverMap; }; #endif //__SERVERCAPABILITIES_H__