1
// StreamFactory.cpp,v 1.4 2003/11/07 20:27:29 shuston Exp
3
#include "ace/OS_NS_string.h"
5
#include "ACEXML/common/StreamFactory.h"
6
#include "ACEXML/common/FileCharStream.h"
7
#include "ACEXML/common/HttpCharStream.h"
9
#ifdef ACEXML_HAS_ZZIPLIB
10
#include "ACEXML/common/ZipCharStream.h"
11
#endif /* ACEXML_HAS_ZZIPLIB */
13
ACE_RCSID (common, StreamFactory, "StreamFactory.cpp,v 1.4 2003/11/07 20:27:29 shuston Exp")
16
ACEXML_StreamFactory::create_stream (const ACEXML_Char* uri)
20
ACEXML_FileCharStream* fstream = 0;
21
ACEXML_HttpCharStream* hstream = 0;
23
if (ACE_OS::strstr (uri, ACE_TEXT("ftp://")) != 0)
27
else if (ACE_OS::strstr (uri, ACE_TEXT ("http://")) != 0)
29
ACE_NEW_RETURN (hstream, ACEXML_HttpCharStream, 0);
30
if (hstream->open (uri) != -1)
35
if (ACE_OS::strstr (uri, ACE_TEXT ("file://")) != 0)
36
uri += 7; // Skip over file://
37
ACE_NEW_RETURN (fstream, ACEXML_FileCharStream, 0);
38
if (fstream->open (uri) != -1)
40
#ifdef ACEXML_HAS_ZZIPLIB
43
ACEXML_ZipCharStream* zstream = 0;
44
ACE_NEW_RETURN (zstream, ACEXML_ZipCharStream, 0);
45
if (zstream->open (uri) != -1)
48
#endif /* ACEXML_HAS_ZZIPLIB */
53
ACEXML_StreamFactory::~ACEXML_StreamFactory ()