Aktualizr
C++ SOTA Client
All Classes Namespaces Files Functions Variables Enumerations Enumerator Pages
libaktualizr-c.h
1 #ifndef AKTUALIZR_LIBAKTUALIZRC_H
2 #define AKTUALIZR_LIBAKTUALIZRC_H
3 
4 #include <stdint.h> // for uint8_t
5 
6 #ifdef __cplusplus
7 #include "libaktualizr/aktualizr.h"
8 
9 using Campaign = campaign::Campaign;
10 using Updates = std::vector<Uptane::Target>;
11 using Target = Uptane::Target;
12 using StorageTargetHandle = std::ifstream;
13 
14 extern "C" {
15 #else
16 typedef struct Aktualizr Aktualizr;
17 typedef struct Campaign Campaign;
18 typedef struct Updates Updates;
19 typedef struct Target Target;
20 typedef struct StorageTargetHandle StorageTargetHandle;
21 #endif
22 
23 Aktualizr *Aktualizr_create_from_cfg(Config *cfg);
24 Aktualizr *Aktualizr_create_from_path(const char *config_path);
25 int Aktualizr_initialize(Aktualizr *a);
26 int Aktualizr_uptane_cycle(Aktualizr *a);
27 void Aktualizr_destroy(Aktualizr *a);
28 
29 int Aktualizr_set_signal_handler(Aktualizr *a, void (*handler)(const char* event_name));
30 
31 Campaign *Aktualizr_campaigns_check(Aktualizr *a);
32 int Aktualizr_campaign_accept(Aktualizr *a, Campaign *c);
33 int Aktualizr_campaign_postpone(Aktualizr *a, Campaign *c);
34 int Aktualizr_campaign_decline(Aktualizr *a, Campaign *c);
35 void Aktualizr_campaign_free(Campaign *c);
36 
37 Updates *Aktualizr_updates_check(Aktualizr *a);
38 void Aktualizr_updates_free(Updates *u);
39 
40 size_t Aktualizr_get_targets_num(Updates *u);
41 Target *Aktualizr_get_nth_target(Updates *u, size_t n);
42 const char *Aktualizr_get_target_name(Target *t);
43 void Aktualizr_free_target_name(const char *n);
44 
45 int Aktualizr_download_target(Aktualizr *a, Target *t);
46 
47 int Aktualizr_install_target(Aktualizr *a, Target *t);
48 
49 int Aktualizr_send_manifest(Aktualizr *a, const char *manifest);
50 int Aktualizr_send_device_data(Aktualizr *a);
51 
52 StorageTargetHandle *Aktualizr_open_stored_target(Aktualizr *a, const Target *t);
53 size_t Aktualizr_read_stored_target(StorageTargetHandle *handle, uint8_t* buf, size_t size);
54 int Aktualizr_close_stored_target(StorageTargetHandle *handle);
55 
56 typedef enum {
57  kSuccess = 0,
58  kAlreadyPaused,
59  kAlreadyRunning,
60  kError }
61 Pause_Status_C;
62 
63 Pause_Status_C Aktualizr_pause(Aktualizr *a);
64 Pause_Status_C Aktualizr_resume(Aktualizr *a);
65 void Aktualizr_abort(Aktualizr *a);
66 
67 #ifdef __cplusplus
68 }
69 #endif
70 
71 #endif //AKTUALIZR_LIBAKTUALIZR_H
Config
Configuration object for an aktualizr instance running on a Primary ECU.
Definition: config.h:208
Aktualizr
This class provides the main APIs necessary for launching and controlling libaktualizr.
Definition: aktualizr.h:24
campaign::Campaign
Definition: campaign.h:38
Uptane::Target
Definition: types.h:379