18#include "pw_async2/dispatcher.h"
19#include "pw_async2/once_sender.h"
20#include "pw_bluetooth/gatt/error.h"
21#include "pw_bluetooth/gatt/types.h"
22#include "pw_bluetooth/internal/raii_ptr.h"
23#include "pw_bluetooth/types.h"
24#include "pw_multibuf/multibuf.h"
25#include "pw_result/expected.h"
26#include "pw_span/span.h"
28namespace pw::bluetooth::gatt {
78 ReadValue(PeerId peer_id, Handle handle, uint32_t offset) = 0;
105 virtual void MtuUpdate(PeerId peer_id, uint16_t mtu) = 0;
200 internal::RaiiPtr<LocalService2, &LocalService2::UnpublishService>;
244 pw::expected<LocalService2::Ptr, PublishServiceError>;
Definition: once_sender.h:41
Definition: server2.h:111
virtual async2::OnceReceiver< ValueChangedResult > NotifyValue(ValueChangedParameters &¶meters)=0
pw::expected< void, Error > ValueChangedResult
Definition: server2.h:130
internal::RaiiPtr< LocalService2, &LocalService2::UnpublishService > Ptr
Definition: server2.h:200
virtual void UnpublishService()=0
virtual async2::OnceReceiver< ValueChangedResult > IndicateValue(ValueChangedParameters &¶meters)=0
virtual async2::OnceReceiver< pw::expected< void, Error > > WriteValue(PeerId peer_id, Handle handle, uint32_t offset, multibuf::MultiBuf &&value)=0
virtual async2::OnceReceiver< pw::expected< multibuf::MultiBuf, Error > > ReadValue(PeerId peer_id, Handle handle, uint32_t offset)=0
virtual void MtuUpdate(PeerId peer_id, uint16_t mtu)=0
virtual void CharacteristicConfiguration(PeerId peer_id, Handle handle, bool notify, bool indicate)=0
virtual void OnError(Error error)=0
Interface for a GATT server that serves many GATT services.
Definition: server2.h:204
PublishServiceError
Definition: server2.h:206
@ kInvalidIncludes
Invalid service includes provided.
@ kInvalidCharacteristics
Invalid service characteristics provided.
@ kInvalidHandle
The service handle provided was not unique.
@ kInvalidUuid
Invalid service UUID provided.
pw::expected< LocalService2::Ptr, PublishServiceError > PublishServiceResult
The Result passed by PublishService.
Definition: server2.h:244
virtual async2::OnceReceiver< PublishServiceResult > PublishService(const LocalServiceInfo &info, LocalServiceDelegate2 &delegate)=0
Definition: multibuf.h:245
Definition: server2.h:115
Handle handle
The handle of the characteristic value being signaled.
Definition: server2.h:122
multibuf::MultiBuf value
The new value for the descriptor/characteristic.
Definition: server2.h:124
pw::span< const PeerId > peer_ids
Definition: server2.h:120
Parameters for registering a local GATT service.
Definition: server2.h:223
Uuid type
Definition: server2.h:232
bool primary
Indicates whether this is a primary or secondary service.
Definition: server2.h:228
ServiceHandle handle
A unique (within a Server) handle identifying this service.
Definition: server2.h:225
span< const Characteristic2 > characteristics
The characteristics of this service.
Definition: server2.h:235
span< const ServiceHandle > includes
Definition: server2.h:239