/* Generated by Together */

#ifndef _AG_RESPONSE_H_
#define _AG_RESPONSE_H_

namespace OnlineActivation
{
class Content;
class Request;
/**
 * Activation response interface.
 * Allows clients to retrieve information from HTTP response.
 */
class __declspec(novtable) Response
{
public:
	/**
	 * Cancels pending response.
	 */
	virtual void Cancel() const = 0;
	/**
	 * Returns received content.
	 */
	virtual boost::shared_ptr<Content> GetContent() const = 0;
	/**
	 * Composes reply to activation server.
	 */
	virtual boost::shared_ptr<Request> ComposeReply
	(
		const char* szHeaders, 
		size_t nHeadersLength, 
		const void* pData,
		size_t nDataSize
	) = 0;

protected:
	/**
	 * Destruction via delete is not allowed. 
	 */
	~Response() {}
};

} // namespace OnlineActivation

#endif //_AG_RESPONSE_H_
