#ifndef CLI_COMMISSIONER_HPP_
#define CLI_COMMISSIONER_HPP_
#include "openthread-core-config.h"
#include <openthread/commissioner.h>
#if OPENTHREAD_CONFIG_COMMISSIONER_ENABLE && OPENTHREAD_FTD
namespace ot {
namespace Cli {
class Interpreter;
class Commissioner
{
public:
explicit Commissioner(Interpreter &aInterpreter)
: mInterpreter(aInterpreter)
{
}
otError Process(uint8_t aArgsLength, char *aArgs[]);
private:
enum
{
kDefaultJoinerTimeout = 120, };
struct Command
{
const char *mName;
otError (Commissioner::*mCommand)(uint8_t aArgsLength, char *aArgs[]);
};
otError ProcessHelp(uint8_t aArgsLength, char *aArgs[]);
otError ProcessAnnounce(uint8_t aArgsLength, char *aArgs[]);
otError ProcessEnergy(uint8_t aArgsLength, char *aArgs[]);
otError ProcessJoiner(uint8_t aArgsLength, char *aArgs[]);
otError ProcessMgmtGet(uint8_t aArgsLength, char *aArgs[]);
otError ProcessMgmtSet(uint8_t aArgsLength, char *aArgs[]);
otError ProcessPanId(uint8_t aArgsLength, char *aArgs[]);
otError ProcessProvisioningUrl(uint8_t aArgsLength, char *aArgs[]);
otError ProcessSessionId(uint8_t aArgsLength, char *aArgs[]);
otError ProcessStart(uint8_t aArgsLength, char *aArgs[]);
otError ProcessStop(uint8_t aArgsLength, char *aArgs[]);
static void HandleStateChanged(otCommissionerState aState, void *aContext);
void HandleStateChanged(otCommissionerState aState);
static void HandleJoinerEvent(otCommissionerJoinerEvent aJoinerEvent,
const otExtAddress * aJoinerId,
void * aContext);
void HandleJoinerEvent(otCommissionerJoinerEvent aJoinerEvent, const otExtAddress *aJoinerId);
static void HandleEnergyReport(uint32_t aChannelMask,
const uint8_t *aEnergyList,
uint8_t aEnergyListLength,
void * aContext);
void HandleEnergyReport(uint32_t aChannelMask, const uint8_t *aEnergyList, uint8_t aEnergyListLength);
static void HandlePanIdConflict(uint16_t aPanId, uint32_t aChannelMask, void *aContext);
void HandlePanIdConflict(uint16_t aPanId, uint32_t aChannelMask);
static const Command sCommands[];
Interpreter & mInterpreter;
};
} }
#endif
#endif