Remove superfluous 'const' qualifier from trivial return types (#20652)
[platform/upstream/coreclr.git] / src / binder / inc / propertyhashtraits.hpp
1 // Licensed to the .NET Foundation under one or more agreements.
2 // The .NET Foundation licenses this file to you under the MIT license.
3 // See the LICENSE file in the project root for more information.
4 // ============================================================
5 //
6 // PropertyMap.hpp
7 //
8
9
10 // 
11 // Defines the PropertyMap class
12 //
13 // ============================================================
14
15 #ifndef __BINDER__PROPERTY_HASH_TRAITS_HPP__
16 #define __BINDER__PROPERTY_HASH_TRAITS_HPP__
17
18 #include "bindertypes.hpp"
19 #include "sstring.h"
20 #include "shash.h"
21
22 namespace BINDER_SPACE
23 {
24     class PropertyEntry
25     {
26     public:
27         inline PropertyEntry()
28         {
29             m_pPropertyName = NULL;
30             m_pPropertyValue = NULL;
31         }
32         inline ~PropertyEntry()
33         {
34             SAFE_DELETE(m_pPropertyName);
35             SAFE_DELETE(m_pPropertyValue);
36         }
37
38         // Getters/Setters
39         inline SString *GetPropertyName()
40         {
41             return m_pPropertyName;
42         }
43         inline void SetPropertyName(SString *pPropertyName)
44         {
45             SAFE_DELETE(m_pPropertyName);
46             m_pPropertyName = pPropertyName;
47         }
48         inline SBuffer *GetPropertyValue()
49         {
50             return m_pPropertyValue;
51         }
52         inline void SetPropertyValue(SBuffer *pPropertyValue)
53         {
54             SAFE_DELETE(m_pPropertyValue);
55             m_pPropertyValue = pPropertyValue;
56         }
57
58     protected:
59         SString *m_pPropertyName;
60         SBuffer *m_pPropertyValue;
61     };
62
63     class PropertyHashTraits : public DefaultSHashTraits<PropertyEntry *>
64     {
65     public:
66         typedef SString* key_t;
67  
68         // GetKey, Equals, and Hash can throw due to SString
69         static const bool s_NoThrow = false;
70
71         static key_t GetKey(element_t pPropertyEntry)
72         {
73             return pPropertyEntry->GetPropertyName();
74         }
75         static BOOL Equals(key_t pPropertyName1, key_t pPropertyName2)
76         {
77             return pPropertyName1->Equals(*pPropertyName2);
78         }
79         static count_t Hash(key_t pPropertyName)
80         {
81             return pPropertyName->Hash();
82         }
83         static element_t Null()
84         {
85             return NULL;
86         }
87         static bool IsNull(const element_t &propertyEntry)
88         {
89             return (propertyEntry == NULL);
90         }
91
92     };
93 };
94
95 #endif