Poco::Net

class FTPStreamFactory

Library: Net
Package: FTP
Header: Poco/Net/FTPStreamFactory.h

Description

An implementation of the URIStreamFactory interface that handles File Transfer Protocol (ftp) URIs.

The URI's path may end with an optional type specification in the form (;type=<typecode>), where <typecode> is one of a, i or d. If type=a, the file identified by the path is transferred in ASCII (text) mode. If type=i, the file is transferred in Image (binary) mode. If type=d, a directory listing (in NLST format) is returned. This corresponds with the FTP URL format specified in RFC 1738.

If the URI does not contain a username and password, the username "anonymous" and the password "poco@localhost".

Inheritance

Direct Base Classes: Poco::URIStreamFactory

All Base Classes: Poco::URIStreamFactory

Known Derived Classes: FTPSStreamFactory

Member Summary

Member Functions: getAnonymousPassword, getPasswordProvider, getPathAndType, getUserInfo, open, registerFactory, setAnonymousPassword, setPasswordProvider, splitUserInfo, unregisterFactory

Inherited Functions: open

Constructors

FTPStreamFactory

FTPStreamFactory();

Creates the FTPStreamFactory.

Destructor

~FTPStreamFactory virtual

~FTPStreamFactory();

Destroys the FTPStreamFactory.

Member Functions

getAnonymousPassword static

static const std::string & getAnonymousPassword();

Returns the password used for anonymous FTP.

getPasswordProvider static

static FTPPasswordProvider * getPasswordProvider();

Returns the FTPPasswordProvider currently in use, or NULL if no one has been set.

open

std::istream * open(
    const Poco::URI & uri
);

Creates and opens a HTTP stream for the given URI. The URI must be a ftp://... URI.

Throws a NetException if anything goes wrong.

registerFactory static

static void registerFactory();

Registers the FTPStreamFactory with the default URIStreamOpener instance.

setAnonymousPassword static

static void setAnonymousPassword(
    const std::string & password
);

Sets the password used for anonymous FTP.

WARNING: Setting the anonymous password is not thread-safe, so it's best to call this method during application initialization, before the FTPStreamFactory is used for the first time.

setPasswordProvider static

static void setPasswordProvider(
    FTPPasswordProvider * pProvider
);

Sets the FTPPasswordProvider. If NULL is given, no password provider is used.

WARNING: Setting the password provider is not thread-safe, so it's best to call this method during application initialization, before the FTPStreamFactory is used for the first time.

unregisterFactory static

static void unregisterFactory();

Unregisters the FTPStreamFactory with the default URIStreamOpener instance.

getPathAndType protected static

static void getPathAndType(
    const Poco::URI & uri,
    std::string & path,
    char & type
);

getUserInfo protected static

static void getUserInfo(
    const Poco::URI & uri,
    std::string & username,
    std::string & password
);

splitUserInfo protected static

static void splitUserInfo(
    const std::string & userInfo,
    std::string & username,
    std::string & password
);