blob: 7a521775f9be022e21e0c178ecd09e74e9a38e13 [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "osp/impl/with_destruction_callback.h"
#include "util/osp_logging.h"
namespace openscreen {
namespace osp {
WithDestructionCallback::WithDestructionCallback() = default;
WithDestructionCallback::~WithDestructionCallback() {
if (destruction_callback_function_) {
destruction_callback_function_(destruction_callback_state_);
}
}
void WithDestructionCallback::SetDestructionCallback(
WithDestructionCallback::DestructionCallbackFunctionPointer function,
void* state) {
OSP_DCHECK(!destruction_callback_function_);
destruction_callback_function_ = function;
destruction_callback_state_ = state;
}
} // namespace osp
} // namespace openscreen