Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ISC Open Source Projects
Kea
Commits
3d618610
Commit
3d618610
authored
Jun 30, 2019
by
Francis Dupont
Browse files
[709-cb_cmds-add-support-for-commands-to-manage-the-servers] Added delServerTag
parent
f693084d
Changes
4
Hide whitespace changes
Inline
Side-by-side
src/lib/cc/base_stamped_element.h
View file @
3d618610
...
...
@@ -67,7 +67,7 @@ protected:
/// @brief Database identifier of the configuration element.
///
/// The default value of 0 indicates that the identifier is
/// not set.
/// not set.
uint64_t
id_
;
/// @brief Holds timestamp value.
...
...
src/lib/cc/stamped_element.cc
View file @
3d618610
...
...
@@ -23,6 +23,17 @@ StampedElement::hasServerTag(const ServerTag& server_tag) const {
return
(
false
);
}
void
StampedElement
::
delServerTag
(
const
std
::
string
&
server_tag
)
{
for
(
auto
it
=
server_tags_
.
begin
();
it
<
server_tags_
.
end
();
++
it
)
{
if
(
it
->
get
()
==
server_tag
)
{
server_tags_
.
erase
(
it
);
return
;
}
}
isc_throw
(
NotFound
,
"can't find server tag '"
<<
server_tag
<<
"' to delete"
);
}
bool
StampedElement
::
hasAllServerTag
()
const
{
return
(
hasServerTag
(
ServerTag
(
ServerTag
::
ALL
)));
...
...
src/lib/cc/stamped_element.h
View file @
3d618610
...
...
@@ -47,6 +47,14 @@ public:
server_tags_
.
push_back
(
ServerTag
(
server_tag
));
}
/// @brief Deletes server tag.
///
/// Remove the first occurrence of the given server tag.
///
/// @param server_tag server tag to delete.
/// @throw NotFound if the server tag cannot be found.
void
delServerTag
(
const
std
::
string
&
server_tag
);
/// @brief Returns server tags.
///
/// @return Server tag as string.
...
...
src/lib/cc/tests/stamped_element_unittest.cc
View file @
3d618610
...
...
@@ -71,7 +71,7 @@ TEST(StampedElementTest, update) {
}
// Tests that one or more server tag can be specified.
TEST
(
StampedElementTest
,
setServerTag
s
)
{
TEST
(
StampedElementTest
,
setServerTag
)
{
StampedElement
element
;
element
.
setServerTag
(
"foo"
);
EXPECT_EQ
(
1
,
element
.
getServerTags
().
size
());
...
...
@@ -91,6 +91,26 @@ TEST(StampedElementTest, setServerTags) {
EXPECT_TRUE
(
element
.
hasAllServerTag
());
}
// Tests that a server tag can be deleted.
TEST
(
StampedElementTest
,
delServerTag
)
{
StampedElement
element
;
EXPECT_THROW
(
element
.
delServerTag
(
"foo"
),
isc
::
NotFound
);
element
.
setServerTag
(
"foo"
);
element
.
setServerTag
(
"foo"
);
ASSERT_EQ
(
2
,
element
.
getServerTags
().
size
());
EXPECT_EQ
(
"foo"
,
element
.
getServerTags
()[
0
].
get
());
EXPECT_EQ
(
"foo"
,
element
.
getServerTags
()[
1
].
get
());
EXPECT_NO_THROW
(
element
.
delServerTag
(
"foo"
));
ASSERT_EQ
(
1
,
element
.
getServerTags
().
size
());
EXPECT_EQ
(
"foo"
,
element
.
getServerTags
()[
0
].
get
());
EXPECT_NO_THROW
(
element
.
delServerTag
(
"foo"
));
EXPECT_EQ
(
0
,
element
.
getServerTags
().
size
());
EXPECT_THROW
(
element
.
delServerTag
(
"foo"
),
isc
::
NotFound
);
}
// Test that metadata can be created from the StampedElement.
TEST
(
StampedElementTest
,
getMetadata
)
{
StampedElement
element
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment