source: NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/StdInInputSource.hpp @ 2674

Revision 2674, 3.3 KB checked in by mattausch, 16 years ago (diff)
Line 
1/*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements.  See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License.  You may obtain a copy of the License at
8 *
9 *      http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18/*
19 * $Id: StdInInputSource.hpp 568078 2007-08-21 11:43:25Z amassari $
20 */
21
22
23#if !defined(STDININPUTSOURCE_HPP)
24#define STDININPUTSOURCE_HPP
25
26#include <xercesc/sax/InputSource.hpp>
27
28XERCES_CPP_NAMESPACE_BEGIN
29
30class BinInputStream;
31
32
33/**
34 *  This class is a derivative of the standard InputSource class. It provides
35 *  for the parser access to data via the standard input. This input source
36 *  is not commonly used, but can be useful when implementing such things
37 *  as pipe based tools which exchange XML data.
38 *
39 *  As with all InputSource derivatives. The primary objective of an input
40 *  source is to create an input stream via which the parser can spool in
41 *  data from the referenced source.
42 */
43class XMLPARSER_EXPORT StdInInputSource : public InputSource
44{
45public :
46    // -----------------------------------------------------------------------
47    //  Constructors and Destructor
48    // -----------------------------------------------------------------------
49
50    /** @name Constructor */
51    //@{
52
53    /**
54      * Since the standard input is a canned source, the constructor is very
55      * simple. It just uses local platform services to open up the standard
56      * input source as file, a new handleof which it gives to each new stream
57      * it creates.
58      */
59    StdInInputSource(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
60    //@}
61
62    /** @name Destructor */
63    //@{
64    ~StdInInputSource();
65    //@}
66
67
68    // -----------------------------------------------------------------------
69    //  Virtual input source interface
70    // -----------------------------------------------------------------------
71
72
73    /** @name Virtual methods */
74    //@{
75
76    /**
77     * This method will return a binary input stream derivative that will
78     * parse from the standard input of the local host.
79     *
80     * @return A dynamically allocated binary input stream derivative that
81     *         can parse from the standardinput.
82     */
83    BinInputStream* makeStream() const;
84
85    //@}
86
87private:
88    // -----------------------------------------------------------------------
89    //  Unimplemented constructors and operators
90    // -----------------------------------------------------------------------
91    StdInInputSource(const StdInInputSource&);
92    StdInInputSource& operator=(const StdInInputSource&);
93
94};
95
96inline StdInInputSource::StdInInputSource(MemoryManager* const manager) :
97
98    InputSource("stdin", manager)
99{
100}
101
102inline StdInInputSource::~StdInInputSource()
103{
104}
105
106XERCES_CPP_NAMESPACE_END
107
108#endif
Note: See TracBrowser for help on using the repository browser.