From 9f9ee9c9f37ae026eb06e897a313aa26f68bf612 Mon Sep 17 00:00:00 2001 From: Christoph Egger Date: Sat, 10 Jan 2009 16:57:24 +0100 Subject: Imported Upstream version 1.4 --- doc/html/Ftp_8hpp-source.htm | 240 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 240 insertions(+) create mode 100755 doc/html/Ftp_8hpp-source.htm (limited to 'doc/html/Ftp_8hpp-source.htm') diff --git a/doc/html/Ftp_8hpp-source.htm b/doc/html/Ftp_8hpp-source.htm new file mode 100755 index 0000000..76af8d7 --- /dev/null +++ b/doc/html/Ftp_8hpp-source.htm @@ -0,0 +1,240 @@ + + + + SFML - Simple and Fast Multimedia Library + + + + + + + +
+ +
+

Ftp.hpp

00001 
+00002 //
+00003 // SFML - Simple and Fast Multimedia Library
+00004 // Copyright (C) 2007-2008 Laurent Gomila (laurent.gom@gmail.com)
+00005 //
+00006 // This software is provided 'as-is', without any express or implied warranty.
+00007 // In no event will the authors be held liable for any damages arising from the use of this software.
+00008 //
+00009 // Permission is granted to anyone to use this software for any purpose,
+00010 // including commercial applications, and to alter it and redistribute it freely,
+00011 // subject to the following restrictions:
+00012 //
+00013 // 1. The origin of this software must not be misrepresented;
+00014 //    you must not claim that you wrote the original software.
+00015 //    If you use this software in a product, an acknowledgment
+00016 //    in the product documentation would be appreciated but is not required.
+00017 //
+00018 // 2. Altered source versions must be plainly marked as such,
+00019 //    and must not be misrepresented as being the original software.
+00020 //
+00021 // 3. This notice may not be removed or altered from any source distribution.
+00022 //
+00024 
+00025 #ifndef SFML_FTP_HPP
+00026 #define SFML_FTP_HPP
+00027 
+00029 // Headers
+00031 #include <SFML/System/NonCopyable.hpp>
+00032 #include <SFML/Network/SocketTCP.hpp>
+00033 #include <string>
+00034 #include <vector>
+00035 
+00036 
+00037 namespace sf
+00038 {
+00039 class IPAddress;
+00040 
+00047 class SFML_API Ftp : NonCopyable
+00048 {
+00049 public :
+00050 
+00054     enum TransferMode
+00055     {
+00056         Binary, 
+00057         Ascii,  
+00058         Ebcdic  
+00059     };
+00060 
+00066     class SFML_API Response
+00067     {
+00068     public :
+00069 
+00074         enum Status
+00075         {
+00076             // 1xx: the requested action is being initiated,
+00077             // expect another reply before proceeding with a new command
+00078             RestartMarkerReply          = 110, 
+00079             ServiceReadySoon            = 120, 
+00080             DataConnectionAlreadyOpened = 125, 
+00081             OpeningDataConnection       = 150, 
+00082 
+00083             // 2xx: the requested action has been successfully completed
+00084             Ok                    = 200, 
+00085             PointlessCommand      = 202, 
+00086             SystemStatus          = 211, 
+00087             DirectoryStatus       = 212, 
+00088             FileStatus            = 213, 
+00089             HelpMessage           = 214, 
+00090             SystemType            = 215, 
+00091             ServiceReady          = 220, 
+00092             ClosingConnection     = 221, 
+00093             DataConnectionOpened  = 225, 
+00094             ClosingDataConnection = 226, 
+00095             EnteringPassiveMode   = 227, 
+00096             LoggedIn              = 230, 
+00097             FileActionOk          = 250, 
+00098             DirectoryOk           = 257, 
+00099 
+00100             // 3xx: the command has been accepted, but the requested action
+00101             // is dormant, pending receipt of further information
+00102             NeedPassword       = 331, 
+00103             NeedAccountToLogIn = 332, 
+00104             NeedInformation    = 350, 
+00105 
+00106             // 4xx: the command was not accepted and the requested action did not take place,
+00107             // but the error condition is temporary and the action may be requested again
+00108             ServiceUnavailable        = 421, 
+00109             DataConnectionUnavailable = 425, 
+00110             TransferAborted           = 426, 
+00111             FileActionAborted         = 450, 
+00112             LocalError                = 451, 
+00113             InsufficientStorageSpace  = 452, 
+00114 
+00115             // 5xx: the command was not accepted and
+00116             // the requested action did not take place
+00117             CommandUnknown          = 500, 
+00118             ParametersUnknown       = 501, 
+00119             CommandNotImplemented   = 502, 
+00120             BadCommandSequence      = 503, 
+00121             ParameterNotImplemented = 504, 
+00122             NotLoggedIn             = 530, 
+00123             NeedAccountToStore      = 532, 
+00124             FileUnavailable         = 550, 
+00125             PageTypeUnknown         = 551, 
+00126             NotEnoughMemory         = 552, 
+00127             FilenameNotAllowed      = 553, 
+00128 
+00129             // 10xx: SFML custom codes
+00130             InvalidResponse  = 1000, 
+00131             ConnectionFailed = 1001, 
+00132             ConnectionClosed = 1002, 
+00133             InvalidFile      = 1003  
+00134         };
+00135 
+00143         Response(Status Code = InvalidResponse, const std::string& Message = "");
+00144 
+00152         bool IsOk() const;
+00153 
+00160         Status GetStatus() const;
+00161 
+00168         const std::string& GetMessage() const;
+00169 
+00170     private :
+00171 
+00173         // Member data
+00175         Status      myStatus;  
+00176         std::string myMessage; 
+00177     };
+00178 
+00182     class SFML_API DirectoryResponse : public Response
+00183     {
+00184     public :
+00185 
+00192         DirectoryResponse(Response Resp);
+00193 
+00200         const std::string& GetDirectory() const;
+00201 
+00202     private :
+00203 
+00205         // Member data
+00207         std::string myDirectory; 
+00208     };
+00209 
+00210 
+00214     class SFML_API ListingResponse : public Response
+00215     {
+00216     public :
+00217 
+00225         ListingResponse(Response Resp, const std::vector<char>& Data);
+00226 
+00233         std::size_t GetCount() const;
+00234 
+00243         const std::string& GetFilename(std::size_t Index) const;
+00244 
+00245     private :
+00246 
+00248         // Member data
+00250         std::vector<std::string> myFilenames; 
+00251     };
+00252 
+00253 
+00258     ~Ftp();
+00259 
+00270     Response Connect(const IPAddress& Server, unsigned short Port = 21, float Timeout = 0.f);
+00271 
+00278     Response Login();
+00279 
+00289     Response Login(const std::string& UserName, const std::string& Password);
+00290 
+00297     Response Disconnect();
+00298 
+00305     Response KeepAlive();
+00306 
+00313     DirectoryResponse GetWorkingDirectory();
+00314 
+00324     ListingResponse GetDirectoryListing(const std::string& Directory = "");
+00325 
+00334     Response ChangeDirectory(const std::string& Directory);
+00335 
+00342     Response ParentDirectory();
+00343 
+00352     Response MakeDirectory(const std::string& Name);
+00353 
+00362     Response DeleteDirectory(const std::string& Name);
+00363 
+00373     Response RenameFile(const std::string& File, const std::string& NewName);
+00374 
+00383     Response DeleteFile(const std::string& Name);
+00384 
+00395     Response Download(const std::string& DistantFile, const std::string& DestPath, TransferMode Mode = Binary);
+00396 
+00407     Response Upload(const std::string& LocalFile, const std::string& DestPath, TransferMode Mode = Binary);
+00408 
+00409 private :
+00410 
+00420     Response SendCommand(const std::string& Command, const std::string& Parameter = "");
+00421 
+00429     Response GetResponse();
+00430 
+00435     class DataChannel;
+00436 
+00437     friend class DataChannel;
+00438 
+00440     // Member data
+00442     SocketTCP myCommandSocket; 
+00443 };
+00444 
+00445 } // namespace sf
+00446 
+00447 
+00448 #endif // SFML_FTP_HPP
+
+ + + + -- cgit v1.2.3