mirror of
https://github.com/pocoproject/poco.git
synced 2025-10-26 18:42:41 +01:00
merged GH #2641: Implement DataURIStream for extracting data from data URIs
This commit is contained in:
58
Foundation/include/Poco/DataURIStreamFactory.h
Normal file
58
Foundation/include/Poco/DataURIStreamFactory.h
Normal file
@@ -0,0 +1,58 @@
|
||||
//
|
||||
// DataURIStreamFactory.h
|
||||
//
|
||||
// Library: Foundation
|
||||
// Package: URI
|
||||
// Module: DataURIStreamFactory
|
||||
//
|
||||
// Definition of the DataURIStreamFactory class.
|
||||
//
|
||||
// Copyright (c) 2019, Applied Informatics Software Engineering GmbH.
|
||||
// and Contributors.
|
||||
//
|
||||
// SPDX-License-Identifier: BSL-1.0
|
||||
//
|
||||
|
||||
|
||||
#ifndef Foundation_DataURIStreamFactory_INCLUDED
|
||||
#define Foundation_DataURIStreamFactory_INCLUDED
|
||||
|
||||
|
||||
#include "Poco/Foundation.h"
|
||||
#include "Poco/URIStreamFactory.h"
|
||||
|
||||
|
||||
namespace Poco {
|
||||
|
||||
|
||||
class Foundation_API DataURIStreamFactory: public URIStreamFactory
|
||||
/// An implementation of the URIStreamFactory interface
|
||||
/// that read data from data URIs.
|
||||
/// For example, for URI "data:text/plain;base64,SGVsbG8sIFdvcmxkIQ%3D%3D" it read "Hello, World!".
|
||||
{
|
||||
public:
|
||||
DataURIStreamFactory();
|
||||
/// Creates the DataURIStreamFactory.
|
||||
|
||||
~DataURIStreamFactory();
|
||||
/// Destroys the DataURIStreamFactory.
|
||||
|
||||
std::istream* open(const URI& uri);
|
||||
/// Creates an input stream returning decoded data from the given data URI.
|
||||
///
|
||||
/// Throws a DataFormatException exception if the data is incorrect format.
|
||||
|
||||
static void registerFactory();
|
||||
/// Registers the DataURIStreamFactory with the
|
||||
/// default URIStreamOpener instance.
|
||||
|
||||
static void unregisterFactory();
|
||||
/// Unregisters the DataURIStreamFactory with the
|
||||
/// default URIStreamOpener instance.
|
||||
};
|
||||
|
||||
|
||||
} // namespace Poco
|
||||
|
||||
|
||||
#endif // Foundation_DataURIStreamFactory_INCLUDED
|
||||
Reference in New Issue
Block a user