Use =default for skeleton copy constructor
[ACE_TAO.git] / ACE / ACEXML / common / StreamFactory.h
blob68d5bbf1460c3cfc9db405f4d9cb3f7b251056fc
1 /**
2 * @file StreamFactory.h
4 * @author Krishnakumar B <kitty@cs.wustl.edu>
5 */
7 #ifndef _ACEXML_STREAM_FACTORY_H
8 #define _ACEXML_STREAM_FACTORY_H
10 #include /**/ "ace/pre.h"
11 #include "ACEXML/common/ACEXML_Export.h"
13 #if !defined (ACE_LACKS_PRAGMA_ONCE)
14 #pragma once
15 #endif /* ACE_LACKS_PRAGMA_ONCE */
17 #include "ACEXML/common/XML_Types.h"
19 // Forward declarations
21 class ACEXML_CharStream;
23 /**
24 * @class ACEXML_StreamFactory
26 * @brief A generic factory used to create an appropriate @sa
27 * ACEXML_CharStream from a SYSTEM id. This class creates a @sa
28 * ACEXML_FileCharStream or a @sa ACEXML_HttpCharStream depending on the
29 * URI supplied.
31 * @todo Write a stream abstraction for handling ftp:// type URIs and add
32 * a function to create and return such streams. That is the only chunk
33 * missing in the armour.
36 class ACEXML_Export ACEXML_StreamFactory
38 public:
39 // Destructor
40 virtual ~ACEXML_StreamFactory ();
42 /**
43 * Create the appropriate stream from the @a uri passed and return the
44 * stream. The caller is responsible for deallocating the returned
45 * stream.
47 * @param uri SYSTEM id or a stream of characters (in the case of a
48 * StrCharStream).
50 virtual ACEXML_CharStream* create_stream (const ACEXML_Char* uri);
53 #include /**/ "ace/post.h"
55 #endif /* _ACEXML_STREAM_FACTORY_H */