/* * Copyright (c) 2021 The WebRTC project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef NET_DCSCTP_PUBLIC_DCSCTP_HANDOVER_STATE_H_ #define NET_DCSCTP_PUBLIC_DCSCTP_HANDOVER_STATE_H_ #include <cstdint> #include <string> #include <vector> #include "rtc_base/strong_alias.h" namespace dcsctp { // Stores state snapshot of a dcSCTP socket. The snapshot can be used to // recreate the socket - possibly in another process. This state should be // treaded as opaque - the calling client should not inspect or alter it except // for serialization. Serialization is not provided by dcSCTP. If needed it has // to be implemented in the calling client. struct DcSctpSocketHandoverState { … }; // A list of possible reasons for a socket to be not ready for handover. enum class HandoverUnreadinessReason : uint32_t { … }; // Return value of `DcSctpSocketInterface::GetHandoverReadiness`. Set of // `HandoverUnreadinessReason` bits. When no bit is set, the socket is in the // state in which a snapshot of the state can be made by // `GetHandoverStateAndClose()`. class HandoverReadinessStatus : public webrtc::StrongAlias<class HandoverReadinessStatusTag, uint32_t> { … }; } // namespace dcsctp #endif // NET_DCSCTP_PUBLIC_DCSCTP_HANDOVER_STATE_H_