]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - source/Host/macosx/cfcpp/CFCMutableSet.cpp
Vendor import of lldb trunk r256945:
[FreeBSD/FreeBSD.git] / source / Host / macosx / cfcpp / CFCMutableSet.cpp
1 //===-- CFCMutableSet.cpp ---------------------------------------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9
10 #include "CFCMutableSet.h"
11
12 // C Includes
13 // C++ Includes
14 // Other libraries and framework includes
15 // Project includes
16
17 //----------------------------------------------------------------------
18 // CFCString constructor
19 //----------------------------------------------------------------------
20 CFCMutableSet::CFCMutableSet(CFMutableSetRef s) :
21     CFCReleaser<CFMutableSetRef> (s)
22 {
23 }
24
25 //----------------------------------------------------------------------
26 // CFCMutableSet copy constructor
27 //----------------------------------------------------------------------
28 CFCMutableSet::CFCMutableSet(const CFCMutableSet& rhs) :
29     CFCReleaser<CFMutableSetRef> (rhs)
30 {
31 }
32
33 //----------------------------------------------------------------------
34 // CFCMutableSet copy constructor
35 //----------------------------------------------------------------------
36 const CFCMutableSet&
37 CFCMutableSet::operator=(const CFCMutableSet& rhs)
38 {
39     if (this != &rhs)
40         *this = rhs;
41     return *this;
42 }
43
44 //----------------------------------------------------------------------
45 // Destructor
46 //----------------------------------------------------------------------
47 CFCMutableSet::~CFCMutableSet()
48 {
49 }
50
51
52 CFIndex
53 CFCMutableSet::GetCount() const
54 {
55     CFMutableSetRef set = get();
56     if (set)
57         return ::CFSetGetCount (set);
58     return 0;
59 }
60
61 CFIndex
62 CFCMutableSet::GetCountOfValue(const void *value) const
63 {
64     CFMutableSetRef set = get();
65     if (set)
66         return ::CFSetGetCountOfValue (set, value);
67     return 0;
68 }
69
70 const void *
71 CFCMutableSet::GetValue(const void *value) const
72 {
73     CFMutableSetRef set = get();
74     if (set)
75         return ::CFSetGetValue(set, value);
76     return NULL;
77 }
78
79
80 const void *
81 CFCMutableSet::AddValue(const void *value, bool can_create)
82 {
83     CFMutableSetRef set = get();
84     if (set == NULL)
85     {
86         if (can_create == false)
87             return NULL;
88         set = ::CFSetCreateMutable(kCFAllocatorDefault, 0, &kCFTypeSetCallBacks);
89         reset ( set );
90     }
91     if (set != NULL)
92     {
93         ::CFSetAddValue(set, value);
94         return value;
95     }
96     return NULL;
97 }
98
99 void
100 CFCMutableSet::RemoveValue(const void *value)
101 {
102     CFMutableSetRef set = get();
103     if (set)
104         ::CFSetRemoveValue(set, value);
105 }
106
107 void
108 CFCMutableSet::RemoveAllValues()
109 {
110     CFMutableSetRef set = get();
111     if (set)
112         ::CFSetRemoveAllValues(set);
113 }
114