activemq-cpp-3.6.0
Main Page
Namespaces
Data Structures
Files
File List
Globals
AbstractSet.h
Go to the documentation of this file.
1
/*
2
* Licensed to the Apache Software Foundation (ASF) under one or more
3
* contributor license agreements. See the NOTICE file distributed with
4
* this work for additional information regarding copyright ownership.
5
* The ASF licenses this file to You under the Apache License, Version 2.0
6
* (the "License"); you may not use this file except in compliance with
7
* the License. You may obtain a copy of the License at
8
*
9
* http://www.apache.org/licenses/LICENSE-2.0
10
*
11
* Unless required by applicable law or agreed to in writing, software
12
* distributed under the License is distributed on an "AS IS" BASIS,
13
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
* See the License for the specific language governing permissions and
15
* limitations under the License.
16
*/
17
18
#ifndef _DECAF_UTIL_ABSTRACTSET_H_
19
#define _DECAF_UTIL_ABSTRACTSET_H_
20
21
#include <
decaf/util/Config.h
>
22
#include <
decaf/lang/exceptions/UnsupportedOperationException.h
>
23
#include <
decaf/lang/exceptions/NullPointerException.h
>
24
#include <
decaf/lang/exceptions/IllegalArgumentException.h
>
25
#include <
decaf/lang/Iterable.h
>
26
#include <
decaf/util/Iterator.h
>
27
#include <
decaf/util/Set.h
>
28
#include <memory>
29
30
namespace
decaf {
31
namespace
util {
32
45
template
<
typename
E >
46
class
AbstractSet
:
public
virtual
decaf::util::Set
<E>,
47
public
virtual
decaf::util::AbstractCollection
<E> {
48
public
:
49
50
virtual
~AbstractSet
() {}
51
67
virtual
bool
removeAll
(
const
Collection<E>
& collection ) {
68
69
bool
result =
false
;
70
if
( this->
size
() <= collection.
size
() ) {
71
72
std::auto_ptr< Iterator<E> > iter( this->
iterator
() );
73
while
( iter->hasNext() ) {
74
if
( collection.
contains
( iter->next() ) ) {
75
iter->remove();
76
result =
true
;
77
}
78
}
79
80
}
else
{
81
82
std::auto_ptr< Iterator<E> > iter( collection.
iterator
() );
83
while
( iter->hasNext() ) {
84
result = this->
remove
( iter->next() ) || result;
85
}
86
}
87
88
return
result;
89
}
90
91
};
92
93
}}
94
95
#endif
/* _DECAF_UTIL_ABSTRACTSET_H_ */
src
main
decaf
util
AbstractSet.h
Generated on Mon Mar 4 2013 10:25:46 for activemq-cpp-3.6.0 by
1.8.1.2