CDC Badge OS
Firmware for the CDC Badge v1.0 hardware security key
Loading...
Searching...
No Matches
cdc::core::IModule Class Referenceabstract

Module interface that extends IService with module-specific features. More...

#include <IModule.h>

Inheritance diagram for cdc::core::IModule:
cdc::core::IService cdc::core::ModuleBase cdc::mod_ble_serial::BleSerialModule cdc::mod_fido2::Fido2Module cdc::mod_gpg::GpgModule cdc::mod_sao::SaoModule cdc::mod_vcard::VcardModule cdc::mod_2fa::TwoFaModule cdc::mod_nvsedit::NvsEditModule cdc::mod_password::PasswordModule

Classes

struct  SlotRequest
struct  SlotRange
struct  BackupResult
 Per-module restore outcome reported by importBackup(). More...

Public Member Functions

virtual const char * getVersion () const =0
 Returns the module version string.
virtual bool exportBackup (cJSON *out)
 Exports this module's data as a JSON section for the backup file.
virtual BackupResult importBackup (const cJSON *in)
 Restores this module's data from its JSON backup section.
virtual uint8_t getMenuItems (ModuleMenuItem *items, uint8_t maxItems)
 Returns module menu items.
virtual ui::IViewgetEntryView ()
 Returns the module's entry view (main view when selected from menu).
virtual uint8_t getLockScreenContextItems (LockScreenContextItem *items, uint8_t maxItems)
 Returns the module's lock screen context menu items.
virtual void onUnlock ()
 Called when device is unlocked.
virtual void onLock ()
 Called when device is locked.
virtual void onUsbConnect ()
 Called when USB is connected.
virtual void onUsbDisconnect ()
 Called when USB is disconnected.
virtual void onTick (uint32_t nowMs)
 Called periodically (optional tick for background work).
virtual void setSlotRange (const SlotRange &range)
 Sets the slot range assigned by the module registry (from compile-time memory map).
virtual SlotRequest getSlotRequest () const
 Returns slot requirements for this module (from compile-time memory map).
Public Member Functions inherited from cdc::core::IService
virtual ~IService ()=default
virtual bool init ()=0
virtual bool start ()=0
virtual void stop ()=0
virtual ServiceState getState () const =0
virtual const char * getName () const =0

Detailed Description

Module interface that extends IService with module-specific features.

Modules are self-contained features (TOTP, FIDO2, Password, etc.) that can register menu items, serial commands, and views.

Definition at line 55 of file IModule.h.

Member Function Documentation

◆ exportBackup()

virtual bool cdc::core::IModule::exportBackup ( cJSON * out)
inlinevirtual

Exports this module's data as a JSON section for the backup file.

Modules write semantic records (never raw slot/NVS blobs) into out so the backup survives slot-layout and format changes. Default no-op: a module that does not implement this is simply absent from the backup.

Parameters
outcJSON node (object or array) the module fills with its records.
Returns
true if the module produced exportable data, false to be skipped.

Reimplemented in cdc::mod_2fa::TwoFaModule, cdc::mod_password::PasswordModule, and cdc::mod_vcard::VcardModule.

Definition at line 100 of file IModule.h.

Referenced by cdc::os_ui::BackupManager::exportTo().

◆ getEntryView()

virtual ui::IView * cdc::core::IModule::getEntryView ( )
inlinevirtual

Returns the module's entry view (main view when selected from menu).

Returns
View instance or nullptr if no main view.

Definition at line 129 of file IModule.h.

◆ getLockScreenContextItems()

virtual uint8_t cdc::core::IModule::getLockScreenContextItems ( LockScreenContextItem * items,
uint8_t maxItems )
inlinevirtual

Returns the module's lock screen context menu items.

Parameters
itemsOutput array to fill.
maxItemsMaximum items to return.
Returns
Number of items written.

Reimplemented in cdc::mod_vcard::VcardModule.

Definition at line 137 of file IModule.h.

◆ getMenuItems()

virtual uint8_t cdc::core::IModule::getMenuItems ( ModuleMenuItem * items,
uint8_t maxItems )
inlinevirtual

Returns module menu items.

Parameters
itemsOutput array to fill.
maxItemsMaximum items to return.
Returns
Number of items written.

Reimplemented in cdc::mod_2fa::TwoFaModule, cdc::mod_ble_serial::BleSerialModule, cdc::mod_fido2::Fido2Module, cdc::mod_gpg::GpgModule, cdc::mod_nvsedit::NvsEditModule, cdc::mod_password::PasswordModule, cdc::mod_sao::SaoModule, and cdc::mod_vcard::VcardModule.

Definition at line 120 of file IModule.h.

◆ getSlotRequest()

virtual SlotRequest cdc::core::IModule::getSlotRequest ( ) const
inlinevirtual

Returns slot requirements for this module (from compile-time memory map).

Returns
Slot request descriptor.

Reimplemented in cdc::mod_2fa::TwoFaModule, cdc::mod_fido2::Fido2Module, cdc::mod_gpg::GpgModule, and cdc::mod_password::PasswordModule.

Definition at line 178 of file IModule.h.

◆ getVersion()

virtual const char * cdc::core::IModule::getVersion ( ) const
pure virtual

◆ importBackup()

virtual BackupResult cdc::core::IModule::importBackup ( const cJSON * in)
inlinevirtual

Restores this module's data from its JSON backup section.

Best-effort: each record is created through the module's normal storage path (fresh slot allocation); a record that cannot be restored is skipped and counted, never aborting the whole restore. Default no-op.

Parameters
incJSON node holding the module's previously exported section.
Returns
Tally of imported and failed records.

Reimplemented in cdc::mod_2fa::TwoFaModule, cdc::mod_password::PasswordModule, and cdc::mod_vcard::VcardModule.

Definition at line 112 of file IModule.h.

Referenced by cdc::os_ui::BackupManager::importFrom().

◆ onLock()

virtual void cdc::core::IModule::onLock ( )
inlinevirtual

Called when device is locked.

Definition at line 150 of file IModule.h.

◆ onTick()

virtual void cdc::core::IModule::onTick ( uint32_t nowMs)
inlinevirtual

Called periodically (optional tick for background work).

Parameters
nowMsCurrent timestamp in milliseconds.

Reimplemented in cdc::mod_2fa::TwoFaModule, cdc::mod_ble_serial::BleSerialModule, and cdc::mod_vcard::VcardModule.

Definition at line 166 of file IModule.h.

◆ onUnlock()

virtual void cdc::core::IModule::onUnlock ( )
inlinevirtual

Called when device is unlocked.

Reimplemented in cdc::mod_sao::SaoModule.

Definition at line 145 of file IModule.h.

◆ onUsbConnect()

virtual void cdc::core::IModule::onUsbConnect ( )
inlinevirtual

Called when USB is connected.

Definition at line 155 of file IModule.h.

◆ onUsbDisconnect()

virtual void cdc::core::IModule::onUsbDisconnect ( )
inlinevirtual

Called when USB is disconnected.

Definition at line 160 of file IModule.h.

◆ setSlotRange()

virtual void cdc::core::IModule::setSlotRange ( const SlotRange & range)
inlinevirtual

Sets the slot range assigned by the module registry (from compile-time memory map).

Parameters
rangeAssigned slot range.

Reimplemented in cdc::mod_2fa::TwoFaModule, cdc::mod_fido2::Fido2Module, cdc::mod_gpg::GpgModule, and cdc::mod_password::PasswordModule.

Definition at line 172 of file IModule.h.


The documentation for this class was generated from the following file:
  • components/cdc_core/include/cdc_core/IModule.h