(file) Return to ContentLanguageList.h CVS log (file) (dir) Up to [Pegasus] / pegasus / src / Pegasus / Common

  1 martin 1.4 //%LICENSE////////////////////////////////////////////////////////////////
  2 martin 1.5 //
  3 martin 1.4 // Licensed to The Open Group (TOG) under one or more contributor license
  4            // agreements.  Refer to the OpenPegasusNOTICE.txt file distributed with
  5            // this work for additional information regarding copyright ownership.
  6            // Each contributor licenses this file to you under the OpenPegasus Open
  7            // Source License; you may not use this file except in compliance with the
  8            // License.
  9 martin 1.5 //
 10 martin 1.4 // Permission is hereby granted, free of charge, to any person obtaining a
 11            // copy of this software and associated documentation files (the "Software"),
 12            // to deal in the Software without restriction, including without limitation
 13            // the rights to use, copy, modify, merge, publish, distribute, sublicense,
 14            // and/or sell copies of the Software, and to permit persons to whom the
 15            // Software is furnished to do so, subject to the following conditions:
 16 martin 1.5 //
 17 martin 1.4 // The above copyright notice and this permission notice shall be included
 18            // in all copies or substantial portions of the Software.
 19 martin 1.5 //
 20 martin 1.4 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 21 martin 1.5 // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 22 martin 1.4 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 23            // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
 24            // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
 25            // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 26            // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 27 martin 1.5 //
 28 martin 1.4 //////////////////////////////////////////////////////////////////////////
 29 kumpf  1.1 //
 30            //%/////////////////////////////////////////////////////////////////////////////
 31            
 32            #ifndef Pegasus_ContentLanguageList_h
 33            #define Pegasus_ContentLanguageList_h
 34            
 35            #include <Pegasus/Common/Config.h>
 36            #include <Pegasus/Common/LanguageTag.h>
 37            
 38            PEGASUS_NAMESPACE_BEGIN
 39            
 40            class ContentLanguageListRep;
 41            
 42            //////////////////////////////////////////////////////////////
 43            //
 44            // ContentLanguageList
 45            //
 46            //////////////////////////////////////////////////////////////
 47            
 48 kumpf  1.3 /**
 49 kumpf  1.1     This class represents a list of content languages (such as may appear
 50                in an HTTP Content-Language header value).  It is managed as a list of
 51                LanguageTag objects.
 52             */
 53            class PEGASUS_COMMON_LINKAGE ContentLanguageList
 54            {
 55            public:
 56            
 57                /**
 58                    Constructs an empty ContentLanguageList object.
 59                 */
 60                ContentLanguageList();
 61            
 62                /**
 63                    Copy constructor.
 64                    @param contentLanguages The ContentLanguageList object to copy.
 65                 */
 66                ContentLanguageList(const ContentLanguageList& contentLanguages);
 67            
 68                /**
 69                    Destructor.
 70 kumpf  1.1      */
 71                ~ContentLanguageList();
 72            
 73                /**
 74                    Assignment operator.
 75                    @param contentLanguages The ContentLanguageList object to copy.
 76                 */
 77                ContentLanguageList& operator=(const ContentLanguageList& contentLanguages);
 78            
 79                /**
 80                    Returns the number of LanguageTags in the ContentLanguageList object.
 81                    @return Integer size of the ContentLanguageList list.
 82                 */
 83                Uint32 size() const;
 84            
 85                /**
 86                    Accesses a LanguageTag at a specified index.
 87                    @param index Integer index of the LanguageTag to access.
 88                    Valid indices range from 0 to size()-1.
 89                    @return The LanguageTag corresponding to the specified index.
 90                    @exception IndexOutOfBoundsException If the specified index is out of
 91 kumpf  1.1         range.
 92                 */
 93                LanguageTag getLanguageTag(Uint32 index) const;
 94            
 95                /**
 96                    Appends a LanguageTag to the ContentLanguageList object.
 97                    @param languageTag The LanguageTag to append.
 98                 */
 99                void append(const LanguageTag& languageTag);
100            
101                /**
102                    Removes the specified LanguageTag from the ContentLanguageList object.
103                    @param index Integer index of the LanguageTag to remove.
104                    @exception IndexOutOfBoundsException If the specified index is out of
105                    range.
106                 */
107                void remove(Uint32 index);
108            
109                /**
110                    Finds the specified LanguageTag in the ContentLanguageList object and
111                    returns its index.
112 kumpf  1.1         @param languageTag The LanguageTag to find.
113                    @return Integer index of the LanguageTag, if found; otherwise
114                    PEG_NOT_FOUND.
115                 */
116                Uint32 find(const LanguageTag& languageTag) const;
117            
118                /**
119                    Removes all the LanguageTags from the ContentLanguageList object.
120                 */
121                void clear();
122            
123                /**
124                    Tests ContentLanguageList objects for equality.
125                    @param contentLanguages A ContentLanguageList object to be compared.
126                    @return True if the ContentLanguageList objects contain the same
127                    LanguageTags in the same order, false otherwise.
128                 */
129                Boolean operator==(const ContentLanguageList& contentLanguages) const;
130            
131                /**
132                    Tests ContentLanguageList objects for inequality.
133 kumpf  1.1         @param contentLanguages A ContentLanguageList object to be compared.
134                    @return False if the ContentLanguageList objects contain the same
135                    LanguageTags in the same order, true otherwise.
136                 */
137                Boolean operator!=(const ContentLanguageList& contentLanguages) const;
138            
139            private:
140                ContentLanguageListRep *_rep;
141            };
142            
143            PEGASUS_NAMESPACE_END
144            
145            #endif

No CVS admin address has been configured
Powered by
ViewCVS 0.9.2