Dawn Framework 1.0
Universal data acquisition framework for embedded systems
client.hxx
1// dawn/src/proto/wakaama/client.hxx
2//
3// SPDX-License-Identifier: Apache-2.0
4//
5
6#pragma once
7
8#include "internal.hxx"
9#include "object_binding.hxx"
10
11#include <ctime>
12#include <vector>
13
14namespace dawn
15{
16namespace wakaama_internal
17{
23{
24public:
27 explicit ClientRuntime(CProtoWakaama &owner);
28
32
35 int build(const std::vector<ObjectBinding *> &objects);
36
39 void destroy(const std::vector<ObjectBinding *> &objects);
40
43 int openContext(void *userdata);
44
47 int configure(const char *endpoint);
48
51 int step(time_t *timeout);
52
60
63 bool ready() const;
64
67 void handlePacket(uint8_t *buffer, size_t length, void *session);
68
71 security_instance_s *findSecurityInstance(uint16_t securityInstanceId) const;
72
75 lwm2m_context_t *context() const
76 {
77 return ctx;
78 }
79
80private:
81 CProtoWakaama &owner;
82 lwm2m_context_t *ctx;
83 lwm2m_object_t *securityObj;
84 lwm2m_object_t *serverObj;
85 lwm2m_object_t *deviceObj;
86 InstancePools *instancePools;
87 std::vector<lwm2m_object_t *> lwm2mObjects;
88
91 int buildSecurityAndServerObjects();
92
95 int buildDeviceObject();
96
99 void closeContext();
100};
101
102} // namespace wakaama_internal
103} // namespace dawn
Wakaama LwM2M client protocol implementation.
Definition wakaama.hxx:52
Wakaama client context and object registry runtime.
Definition client.hxx:23
int configure(const char *endpoint)
Configure the Wakaama client endpoint and registered objects.
Definition client.cxx:254
bool recoverFromBootstrapWedge()
Nudge a registration-failed client (parked in STATE_BOOTSTRAP_REQUIRED with no bootstrap server) back...
Definition client.cxx:274
~ClientRuntime()
Close the Wakaama context and release owned object allocations.
Definition client.cxx:25
int build(const std::vector< ObjectBinding * > &objects)
Build built-in and descriptor-backed LwM2M objects.
Definition client.cxx:31
void destroy(const std::vector< ObjectBinding * > &objects)
Release built-in and descriptor-backed LwM2M objects.
Definition client.cxx:199
security_instance_s * findSecurityInstance(uint16_t securityInstanceId) const
Find a Security object instance by instance ID.
Definition client.cxx:299
bool ready() const
Return true when the Wakaama client has completed registration.
Definition client.cxx:286
int step(time_t *timeout)
Run one Wakaama state-machine step.
Definition client.cxx:269
lwm2m_context_t * context() const
Return the underlying Wakaama client context.
Definition client.hxx:75
int openContext(void *userdata)
Open the Wakaama client context with transport callback userdata.
Definition client.cxx:247
void handlePacket(uint8_t *buffer, size_t length, void *session)
Deliver one received packet into the Wakaama client context.
Definition client.cxx:291
Out-of-tree user-extension hooks for Dawn.
Definition bindable.hxx:13
Fixed pools backing bootstrap-mutable Security and Server objects.
Definition internal.hxx:109
Runtime representation of one LwM2M Security object instance.
Definition internal.hxx:53