Line data Source code
1 : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : /*
3 : * This file is part of the LibreOffice project.
4 : *
5 : * This Source Code Form is subject to the terms of the Mozilla Public
6 : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : *
9 : * This file incorporates work covered by the following license notice:
10 : *
11 : * Licensed to the Apache Software Foundation (ASF) under one or more
12 : * contributor license agreements. See the NOTICE file distributed
13 : * with this work for additional information regarding copyright
14 : * ownership. The ASF licenses this file to you under the Apache
15 : * License, Version 2.0 (the "License"); you may not use this file
16 : * except in compliance with the License. You may obtain a copy of
17 : * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 : */
19 :
20 : #include "cow_wrapper_clients.hxx"
21 : #include <rtl/instance.hxx>
22 :
23 : namespace o3tltests {
24 :
25 : class cow_wrapper_client2_impl
26 : {
27 : public:
28 12 : cow_wrapper_client2_impl() : mnValue(0) {}
29 4 : explicit cow_wrapper_client2_impl( int nVal ) : mnValue(nVal) {}
30 8 : void setValue( int nVal ) { mnValue = nVal; }
31 12 : int getValue() const { return mnValue; }
32 :
33 8 : bool operator==( const cow_wrapper_client2_impl& rRHS ) const { return mnValue == rRHS.mnValue; }
34 12 : bool operator!=( const cow_wrapper_client2_impl& rRHS ) const { return mnValue != rRHS.mnValue; }
35 8 : bool operator<( const cow_wrapper_client2_impl& rRHS ) const { return mnValue < rRHS.mnValue; }
36 :
37 : private:
38 : int mnValue;
39 : };
40 :
41 6 : cow_wrapper_client2::cow_wrapper_client2() : maImpl()
42 : {
43 6 : }
44 :
45 2 : cow_wrapper_client2::cow_wrapper_client2( int nVal ) :
46 2 : maImpl( cow_wrapper_client2_impl(nVal) )
47 : {
48 2 : }
49 :
50 8 : cow_wrapper_client2::~cow_wrapper_client2()
51 : {
52 8 : }
53 :
54 0 : cow_wrapper_client2::cow_wrapper_client2( const cow_wrapper_client2& rSrc ) :
55 0 : maImpl(rSrc.maImpl)
56 : {
57 0 : }
58 :
59 6 : cow_wrapper_client2& cow_wrapper_client2::operator=( const cow_wrapper_client2& rSrc )
60 : {
61 6 : maImpl = rSrc.maImpl;
62 :
63 6 : return *this;
64 : }
65 :
66 4 : void cow_wrapper_client2::modify( int nVal )
67 : {
68 4 : maImpl->setValue( nVal );
69 4 : }
70 :
71 6 : int cow_wrapper_client2::queryUnmodified() const
72 : {
73 6 : return maImpl->getValue();
74 : }
75 :
76 2 : void cow_wrapper_client2::makeUnique()
77 : {
78 2 : maImpl.make_unique();
79 2 : }
80 10 : bool cow_wrapper_client2::is_unique() const
81 : {
82 10 : return maImpl.is_unique();
83 : }
84 18 : oslInterlockedCount cow_wrapper_client2::use_count() const
85 : {
86 18 : return maImpl.use_count();
87 : }
88 2 : void cow_wrapper_client2::swap( cow_wrapper_client2& r )
89 : {
90 2 : o3tl::swap(maImpl, r.maImpl);
91 2 : }
92 :
93 12 : bool cow_wrapper_client2::operator==( const cow_wrapper_client2& rRHS ) const
94 : {
95 12 : return maImpl == rRHS.maImpl;
96 : }
97 6 : bool cow_wrapper_client2::operator!=( const cow_wrapper_client2& rRHS ) const
98 : {
99 6 : return maImpl != rRHS.maImpl;
100 : }
101 4 : bool cow_wrapper_client2::operator<( const cow_wrapper_client2& rRHS ) const
102 : {
103 4 : return maImpl < rRHS.maImpl;
104 : }
105 :
106 :
107 :
108 6 : cow_wrapper_client3::cow_wrapper_client3() : maImpl()
109 : {
110 6 : }
111 :
112 2 : cow_wrapper_client3::cow_wrapper_client3( int nVal ) :
113 2 : maImpl( cow_wrapper_client2_impl(nVal) )
114 : {
115 2 : }
116 :
117 8 : cow_wrapper_client3::~cow_wrapper_client3()
118 : {
119 8 : }
120 :
121 0 : cow_wrapper_client3::cow_wrapper_client3( const cow_wrapper_client3& rSrc ) :
122 0 : maImpl(rSrc.maImpl)
123 : {
124 0 : }
125 :
126 6 : cow_wrapper_client3& cow_wrapper_client3::operator=( const cow_wrapper_client3& rSrc )
127 : {
128 6 : maImpl = rSrc.maImpl;
129 :
130 6 : return *this;
131 : }
132 :
133 4 : void cow_wrapper_client3::modify( int nVal )
134 : {
135 4 : maImpl->setValue( nVal );
136 4 : }
137 :
138 6 : int cow_wrapper_client3::queryUnmodified() const
139 : {
140 6 : return maImpl->getValue();
141 : }
142 :
143 2 : void cow_wrapper_client3::makeUnique()
144 : {
145 2 : maImpl.make_unique();
146 2 : }
147 10 : bool cow_wrapper_client3::is_unique() const
148 : {
149 10 : return maImpl.is_unique();
150 : }
151 18 : oslInterlockedCount cow_wrapper_client3::use_count() const
152 : {
153 18 : return maImpl.use_count();
154 : }
155 2 : void cow_wrapper_client3::swap( cow_wrapper_client3& r )
156 : {
157 2 : o3tl::swap(maImpl, r.maImpl);
158 2 : }
159 :
160 12 : bool cow_wrapper_client3::operator==( const cow_wrapper_client3& rRHS ) const
161 : {
162 12 : return maImpl == rRHS.maImpl;
163 : }
164 6 : bool cow_wrapper_client3::operator!=( const cow_wrapper_client3& rRHS ) const
165 : {
166 6 : return maImpl != rRHS.maImpl;
167 : }
168 4 : bool cow_wrapper_client3::operator<( const cow_wrapper_client3& rRHS ) const
169 : {
170 4 : return maImpl < rRHS.maImpl;
171 : }
172 :
173 :
174 :
175 : namespace { struct theDefaultClient4 : public rtl::Static< o3tl::cow_wrapper< int >,
176 : theDefaultClient4 > {}; }
177 :
178 4 : cow_wrapper_client4::cow_wrapper_client4() :
179 4 : maImpl(theDefaultClient4::get())
180 : {
181 4 : }
182 :
183 2 : cow_wrapper_client4::cow_wrapper_client4( int nVal ) :
184 2 : maImpl( nVal )
185 : {
186 2 : }
187 :
188 6 : cow_wrapper_client4::~cow_wrapper_client4()
189 : {
190 6 : }
191 :
192 0 : cow_wrapper_client4::cow_wrapper_client4( const cow_wrapper_client4& rSrc ) :
193 0 : maImpl(rSrc.maImpl)
194 : {
195 0 : }
196 :
197 4 : cow_wrapper_client4& cow_wrapper_client4::operator=( const cow_wrapper_client4& rSrc )
198 : {
199 4 : maImpl = rSrc.maImpl;
200 :
201 4 : return *this;
202 : }
203 :
204 12 : bool cow_wrapper_client4::is_default() const
205 : {
206 12 : return maImpl.same_object(theDefaultClient4::get());
207 : }
208 :
209 0 : bool cow_wrapper_client4::operator==( const cow_wrapper_client4& rRHS ) const
210 : {
211 0 : return maImpl == rRHS.maImpl;
212 : }
213 0 : bool cow_wrapper_client4::operator!=( const cow_wrapper_client4& rRHS ) const
214 : {
215 0 : return maImpl != rRHS.maImpl;
216 : }
217 0 : bool cow_wrapper_client4::operator<( const cow_wrapper_client4& rRHS ) const
218 : {
219 0 : return maImpl < rRHS.maImpl;
220 : }
221 :
222 : } // namespace o3tltests
223 :
224 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|