Xalan-C++ API Documentation

The Xalan C++ XSLT Processor Version 1.8

Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages

XalanBitmap.hpp

Go to the documentation of this file.
00001 /*
00002  * Copyright 1999-2004 The Apache Software Foundation.
00003  *
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  *
00008  *     http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015  */
00016 #if !defined(XALANBITMAP_HEADER_GUARD_1357924680)
00017 #define XALANBITMAP_HEADER_GUARD_1357924680
00018 
00019 
00020 
00021 // Base include file.  Must be first.
00022 #include <xalanc/PlatformSupport/PlatformSupportDefinitions.hpp>
00023 
00024 
00025 
00026 #include <vector>
00027 
00028 
00029 
00030 XALAN_CPP_NAMESPACE_BEGIN
00031 
00032 
00033 
00034 class XALAN_PLATFORMSUPPORT_EXPORT XalanBitmap
00035 {
00036 public:
00037 
00038     // The basic storage unit for the bitmaps.
00039     typedef char        UnitType;
00040 
00041     // A handy typedef...
00042     typedef size_t      size_type;
00043 
00044     // Really all we're assuming is that a char is at least
00045     // 8 bits.  If it's more, then we'll just waste some
00046     // space.  This may need to be adjusted for various
00047     // platforms, or perhaps change to using an integral of
00048     // a known size, so that we don't waste any space.
00049     enum { eBitsPerUnit = 8 };
00050 
00051 
00058     XalanBitmap(size_type   theSize);
00059 
00060     ~XalanBitmap();
00061 
00062 
00069     bool
00070     isSet(size_type     theBit) const;
00071 
00077     void
00078     set(size_type   theBit);
00079 
00085     void
00086     clear(size_type     theBit);
00087 
00093     void
00094     toggle(size_type    theBit);
00095 
00099     void
00100     clearAll();
00101 
00107     size_type
00108     getSize() const
00109     {
00110         return m_size;
00111     }
00112 
00113 private:
00114 
00115 #if defined(XALAN_NO_STD_NAMESPACE)
00116     typedef vector<UnitType>        BitmapVectorType;
00117 #else
00118     typedef std::vector<UnitType>   BitmapVectorType;
00119 #endif
00120 
00121     const size_type     m_size;
00122 
00123     BitmapVectorType    m_bitmap;
00124 };
00125 
00126 
00127 
00128 XALAN_CPP_NAMESPACE_END
00129 
00130 
00131 
00132 #endif  // XALANBITMAP_HEADER_GUARD_1357924680

Interpreting class diagrams

Doxygen and GraphViz are used to generate this API documentation from the Xalan-C header files.

Xalan-C++ XSLT Processor Version 1.8
Copyright © 1999-2004 The Apache Software Foundation. All Rights Reserved.