class Poco::Net::FTPStreamFactory

Overview

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

#include <FTPStreamFactory.h>

class FTPStreamFactory: public Poco::URIStreamFactory
{
public:
    // methods

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

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

    static
    const std::string&
    getAnonymousPassword();

    static
    void
    setPasswordProvider(FTPPasswordProvider* pProvider);

    static
    FTPPasswordProvider*
    getPasswordProvider();

    static
    void
    registerFactory();

    static
    void
    unregisterFactory();

protected:
    // methods

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

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

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

Inherited Members

public:
    // methods

    virtual
    std::istream*
    open(const URI& uri) = 0;

Detailed Documentation

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 “

Construction

~FTPStreamFactory()

Destroys the FTPStreamFactory.

Methods

virtual
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.

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.

static
const std::string&
getAnonymousPassword()

Returns the password used for anonymous FTP.

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.

static
FTPPasswordProvider*
getPasswordProvider()

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

static
void
registerFactory()

Registers the FTPStreamFactory with the default URIStreamOpener instance.

static
void
unregisterFactory()

Unregisters the FTPStreamFactory with the default URIStreamOpener instance.