1*3f982cf4SFabien Sanglard // Copyright 2018 The Chromium Authors. All rights reserved. 2*3f982cf4SFabien Sanglard // Use of this source code is governed by a BSD-style license that can be 3*3f982cf4SFabien Sanglard // found in the LICENSE file. 4*3f982cf4SFabien Sanglard 5*3f982cf4SFabien Sanglard #include "osp/impl/with_destruction_callback.h" 6*3f982cf4SFabien Sanglard 7*3f982cf4SFabien Sanglard #include "util/osp_logging.h" 8*3f982cf4SFabien Sanglard 9*3f982cf4SFabien Sanglard namespace openscreen { 10*3f982cf4SFabien Sanglard namespace osp { 11*3f982cf4SFabien Sanglard 12*3f982cf4SFabien Sanglard WithDestructionCallback::WithDestructionCallback() = default; 13*3f982cf4SFabien Sanglard ~WithDestructionCallback()14*3f982cf4SFabien SanglardWithDestructionCallback::~WithDestructionCallback() { 15*3f982cf4SFabien Sanglard if (destruction_callback_function_) { 16*3f982cf4SFabien Sanglard destruction_callback_function_(destruction_callback_state_); 17*3f982cf4SFabien Sanglard } 18*3f982cf4SFabien Sanglard } 19*3f982cf4SFabien Sanglard SetDestructionCallback(WithDestructionCallback::DestructionCallbackFunctionPointer function,void * state)20*3f982cf4SFabien Sanglardvoid WithDestructionCallback::SetDestructionCallback( 21*3f982cf4SFabien Sanglard WithDestructionCallback::DestructionCallbackFunctionPointer function, 22*3f982cf4SFabien Sanglard void* state) { 23*3f982cf4SFabien Sanglard OSP_DCHECK(!destruction_callback_function_); 24*3f982cf4SFabien Sanglard destruction_callback_function_ = function; 25*3f982cf4SFabien Sanglard destruction_callback_state_ = state; 26*3f982cf4SFabien Sanglard } 27*3f982cf4SFabien Sanglard 28*3f982cf4SFabien Sanglard } // namespace osp 29*3f982cf4SFabien Sanglard } // namespace openscreen 30