12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- //
- // 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
|