blob: 215f5d19cc29452b4a8242ac9a35a6df6cf1734f [file] [log] [blame]
// Copyright 2018 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef GARNET_LIB_WLAN_MLME_INCLUDE_WLAN_MLME_AP_REMOTE_CLIENT_INTERFACE_H_
#define GARNET_LIB_WLAN_MLME_INCLUDE_WLAN_MLME_AP_REMOTE_CLIENT_INTERFACE_H_
#include <wlan/mlme/service.h>
#include <wlan/mlme/timer_manager.h>
namespace wlan {
// TODO(NET-500): This interface has no abstraction benefit and should be removed entirely.
// A minimum client definition representing a remote client. A client's
// specifics should be opaque to its owner, for example a BSS. This minimalistic
// definition guarantees this constraint.
class RemoteClientInterface {
public:
virtual ~RemoteClientInterface() = default;
virtual void HandleTimeout(TimeoutId id) = 0;
virtual void HandleAnyEthFrame(EthFrame&&) = 0;
virtual void HandleAnyMgmtFrame(MgmtFrame<>&&) = 0;
virtual void HandleAnyDataFrame(DataFrame<>&&) = 0;
virtual void HandleAnyCtrlFrame(CtrlFrame<>&&) = 0;
virtual zx_status_t HandleMlmeMsg(const BaseMlmeMsg& mlme_msg) = 0;
};
} // namespace wlan
#endif // GARNET_LIB_WLAN_MLME_INCLUDE_WLAN_MLME_AP_REMOTE_CLIENT_INTERFACE_H_