source: icXML/icXML-devel/src/xercesc/util/CountedPointer.hpp @ 2722

Last change on this file since 2722 was 2722, checked in by cameron, 6 years ago

Original Xerces files with import mods for icxercesc

File size: 2.3 KB
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: CountedPointer.hpp 527149 2007-04-10 14:56:39Z amassari $
20 */
21
22#if !defined(XERCESC_INCLUDE_GUARD_COUNTEDPOINTERTO_HPP)
23#define XERCESC_INCLUDE_GUARD_COUNTEDPOINTERTO_HPP
24
25#include <xercesc/util/NullPointerException.hpp>
26
27XERCES_CPP_NAMESPACE_BEGIN
28
29template <class T> class CountedPointerTo : public XMemory
30{
31public:
32    // -----------------------------------------------------------------------
33    //  Constructors and Destructor
34    // -----------------------------------------------------------------------
35    CountedPointerTo(const CountedPointerTo<T>& toCopy);
36    CountedPointerTo(T* p = 0);
37    ~CountedPointerTo();
38
39
40    // -----------------------------------------------------------------------
41    //  Operators
42    // -----------------------------------------------------------------------
43    CountedPointerTo<T>& operator=(const CountedPointerTo<T>& other);
44    operator T*();
45    const T* operator->() const;
46    T* operator->();
47    const T& operator*() const;
48    T& operator*();
49
50
51private:
52    // -----------------------------------------------------------------------
53    //  Data members
54    //
55    //  fPtr
56    //      The pointer that we are counting. The T type must implement the
57    //      addRef() and removeRef() APIs but it doesn't have to derive from
58    //      any particular type.
59    // -----------------------------------------------------------------------
60    T*  fPtr;
61};
62
63XERCES_CPP_NAMESPACE_END
64
65#if !defined(XERCES_TMPLSINC)
66#include <xercesc/util/CountedPointer.c>
67#endif
68
69#endif
Note: See TracBrowser for help on using the repository browser.