Public Member Functions

gnash::StreamProvider Class Reference

A StreamProvider makes IOChannels available to the core on request. More...

#include <StreamProvider.h>

List of all members.

Public Member Functions

 StreamProvider (const URL &original, const URL &base, std::auto_ptr< NamingPolicy > np=std::auto_ptr< NamingPolicy >(new NamingPolicy))
 Construct a StreamProvider.
virtual ~StreamProvider ()
virtual std::auto_ptr< IOChannelgetStream (const URL &url, bool namedCacheFile=false) const
 Returned stream ownership is transferred to caller.
virtual std::auto_ptr< IOChannelgetStream (const URL &url, const std::string &postdata, bool namedCacheFile=false) const
 Get a stream from the response of a POST operation.
virtual std::auto_ptr< IOChannelgetStream (const URL &url, const std::string &postdata, const NetworkAdapter::RequestHeaders &headers, bool namedCacheFile=false) const
void setNamingPolicy (std::auto_ptr< NamingPolicy > np)
 Set the NamingPolicy for cache files.
const NamingPolicynamingPolicy () const
 Return the currently selected policy for converting URL to filename.
bool allow (const URL &url) const
 Check whether access to a URL is allowed.
const URLbaseURL () const
 The base URL that should be used to resolve all relative URLs.

Detailed Description

A StreamProvider makes IOChannels available to the core on request.

The current functions of this class are: 1. Inform users whether a connection to a certain URL is allowed. 2. Make a connection and return an IOChannel (this performs a separate access check).

The class should in future also: 3. Take relative URLs and resolve them against the base URL. TODO: this class should become an abstract interface.


Constructor & Destructor Documentation

gnash::StreamProvider::StreamProvider ( const URL original,
const URL base,
std::auto_ptr< NamingPolicy np = std::auto_ptr<NamingPolicy>(new NamingPolicy) 
)

Construct a StreamProvider.

Parameters:
original The original URL, used to decide whether to allow connections.
base The base URL, used to resolve URLs.
np A policy to decide the name of cached files.

Referenced by allow().

virtual gnash::StreamProvider::~StreamProvider (  )  [inline, virtual]

Member Function Documentation

bool gnash::StreamProvider::allow ( const URL url  )  const

Check whether access to a URL is allowed.

This is used by the core to check whether a connection can be made before trying to make it. It's useful currently for some functions to decide what to return.

Parameters:
url The url to check
Returns:
true if allowed, false if not.

References StreamProvider().

Referenced by gnash::NetConnection_as::connect(), getStream(), and gnash::NetConnection_as::validateURL().

const URL& gnash::StreamProvider::baseURL (  )  const [inline]
std::auto_ptr< IOChannel > gnash::StreamProvider::getStream ( const URL url,
const std::string &  postdata,
const NetworkAdapter::RequestHeaders headers,
bool  namedCacheFile = false 
) const [virtual]
std::auto_ptr< IOChannel > gnash::StreamProvider::getStream ( const URL url,
const std::string &  postdata,
bool  namedCacheFile = false 
) const [virtual]

Get a stream from the response of a POST operation.

Returned stream ownership is transferred to caller.

On error NULL is returned Derive from this for a CachingStreamProvider

Parameters:
url The url to post to.
postdata Post data in url-encoded form.
std::auto_ptr< IOChannel > gnash::StreamProvider::getStream ( const URL url,
bool  namedCacheFile = false 
) const [virtual]

Returned stream ownership is transferred to caller.

On error NULL is returned Derive from this for a CachingStreamProvider

Referenced by gnash::NetConnection_as::getStream().

const NamingPolicy& gnash::StreamProvider::namingPolicy (  )  const [inline]

Return the currently selected policy for converting URL to filename.

References assert.

Referenced by getStream().

void gnash::StreamProvider::setNamingPolicy ( std::auto_ptr< NamingPolicy np  )  [inline]

Set the NamingPolicy for cache files.

This is only used when cache file naming is requested in getStream() This StreamProvider owns the NamingPolicy instance.


The documentation for this class was generated from the following files: