mirror of
https://gitee.com/jiuyilian/embedded-framework.git
synced 2025-01-06 10:16:51 -05:00
Format state machine module.
This commit is contained in:
parent
9fe9bba31a
commit
f008337684
|
@ -38,10 +38,19 @@ add_custom_target(
|
|||
-p ${CMAKE_SOURCE_DIR_IPCSDK}/cmake-shell
|
||||
WORKING_DIRECTORY ${MIDDLEWARE_SOURCE_PATH}/StateMachine
|
||||
)
|
||||
file(GLOB_RECURSE HEADER_FILES *.h)
|
||||
add_custom_target(
|
||||
StateMahince_code_format
|
||||
COMMAND ${CLANG_FORMAT_EXE}
|
||||
-style=file
|
||||
-i ${SRC_FILES} ${HEADER_FILES}
|
||||
WORKING_DIRECTORY ${MIDDLEWARE_SOURCE_PATH}/StateMachine
|
||||
)
|
||||
add_custom_command(
|
||||
TARGET ${TARGET_NAME}
|
||||
PRE_BUILD
|
||||
COMMAND make StateMahince_code_check
|
||||
COMMAND make StateMahince_code_format
|
||||
WORKING_DIRECTORY ${PROJECT_ROOT_PATH}/cmake-shell/
|
||||
)
|
||||
endif()
|
|
@ -3,9 +3,9 @@
|
|||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
|
@ -57,7 +57,10 @@ public:
|
|||
virtual void SendMessage(int msgName) {}
|
||||
virtual void StopHandlerThread() {}
|
||||
virtual void SendMessage(int msgName, const std::shared_ptr<VStateMessage> &messageObj) {}
|
||||
virtual void MessageExecutedLater(int msgName, const std::shared_ptr<VStateMessage> &messageObj, int64_t delayTimeMs) {}
|
||||
virtual void MessageExecutedLater(int msgName, const std::shared_ptr<VStateMessage> &messageObj,
|
||||
int64_t delayTimeMs)
|
||||
{
|
||||
}
|
||||
virtual void SwitchState(State *targetState) {}
|
||||
virtual void StopTimer(int timerName) {}
|
||||
virtual void DelayMessage(VStateMachineData *msg) {}
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
|
@ -19,22 +19,18 @@ std::shared_ptr<IStateMachine> &IStateMachine::GetInstance(std::shared_ptr<IStat
|
|||
{
|
||||
static std::shared_ptr<IStateMachine> instance = std::make_shared<IStateMachine>();
|
||||
static bool instanceChanging = false;
|
||||
if (impl && false == instanceChanging)
|
||||
{
|
||||
if (impl && false == instanceChanging) {
|
||||
instanceChanging = true;
|
||||
if (instance.use_count() == 1)
|
||||
{
|
||||
if (instance.use_count() == 1) {
|
||||
LogInfo("Instance change succeed.\n");
|
||||
instance = *impl;
|
||||
}
|
||||
else
|
||||
{
|
||||
else {
|
||||
LogError("Instance change failed, using by some one.\n");
|
||||
}
|
||||
instanceChanging = false;
|
||||
}
|
||||
if (instanceChanging)
|
||||
{
|
||||
if (instanceChanging) {
|
||||
static std::shared_ptr<IStateMachine> tmporaryInstance = std::make_shared<IStateMachine>();
|
||||
return tmporaryInstance;
|
||||
}
|
||||
|
|
|
@ -16,15 +16,16 @@
|
|||
#ifndef OHOS_HANDLER_H
|
||||
#define OHOS_HANDLER_H
|
||||
|
||||
#include <pthread.h>
|
||||
#include "internal_message.h"
|
||||
#include "message_queue.h"
|
||||
#include <pthread.h>
|
||||
|
||||
// namespace OHOS {
|
||||
// namespace Wifi {
|
||||
const int USEC_1000 = 1000;
|
||||
|
||||
class Handler {
|
||||
class Handler
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* @Description : Construct a new Handler:: Handler object.
|
||||
|
|
|
@ -26,7 +26,8 @@
|
|||
// namespace OHOS {
|
||||
// namespace Wifi {
|
||||
const int MAX_POOL_SIZE_INIT = 50;
|
||||
class MessageBody {
|
||||
class MessageBody
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* @Description : Save an Integer Data.
|
||||
|
@ -76,7 +77,8 @@ private:
|
|||
std::list<std::string> stringArray_;
|
||||
};
|
||||
|
||||
class InternalMessage : public VStateMachineData {
|
||||
class InternalMessage : public VStateMachineData
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* @Description : Construct a new Internal Message object.
|
||||
|
@ -196,10 +198,7 @@ public:
|
|||
// mMessageObj = T(messageObj);
|
||||
// }
|
||||
|
||||
void SetMessageObj(const std::shared_ptr<VStateMessage> &messageObj)
|
||||
{
|
||||
mMessageObj = messageObj;
|
||||
}
|
||||
void SetMessageObj(const std::shared_ptr<VStateMessage> &messageObj) { mMessageObj = messageObj; }
|
||||
|
||||
/**
|
||||
* @DescriptionGet the Message Obj object
|
||||
|
@ -224,10 +223,7 @@ public:
|
|||
// {
|
||||
// return mMessageObj;
|
||||
// }
|
||||
const std::shared_ptr<VStateMessage> &GetMessageObj(void) const override
|
||||
{
|
||||
return mMessageObj;
|
||||
}
|
||||
const std::shared_ptr<VStateMessage> &GetMessageObj(void) const override { return mMessageObj; }
|
||||
|
||||
/**
|
||||
* @Description : Release Message Object.
|
||||
|
@ -286,7 +282,8 @@ private:
|
|||
/* Message execution time */
|
||||
int64_t mHandleTime;
|
||||
};
|
||||
class MessageManage {
|
||||
class MessageManage
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* @Description : Obtains a single instance.
|
||||
|
@ -346,7 +343,8 @@ public:
|
|||
* @param messageObj - Message pointer.[in]
|
||||
* @return InternalMessage*
|
||||
*/
|
||||
InternalMessage *CreateMessage(int messageName, int param1, int param2, const std::shared_ptr<VStateMessage> &messageObj);
|
||||
InternalMessage *CreateMessage(int messageName, int param1, int param2,
|
||||
const std::shared_ptr<VStateMessage> &messageObj);
|
||||
|
||||
/**
|
||||
* @Description :Recycle message.
|
||||
|
|
|
@ -16,16 +16,17 @@
|
|||
#ifndef OHOS_MESSAGE_QUEUE_H
|
||||
#define OHOS_MESSAGE_QUEUE_H
|
||||
|
||||
#include "internal_message.h"
|
||||
#include <chrono>
|
||||
#include <condition_variable>
|
||||
#include <mutex>
|
||||
#include "internal_message.h"
|
||||
|
||||
// namespace OHOS {
|
||||
// namespace Wifi {
|
||||
#define TIME_USEC_1000 1000
|
||||
#define TIME_INTERVAL 30000
|
||||
class MessageQueue {
|
||||
class MessageQueue
|
||||
{
|
||||
public:
|
||||
/**
|
||||
* @Description : Construct a new Message Queue object.
|
||||
|
|
|
@ -16,8 +16,8 @@
|
|||
#ifndef OHOS_STATE_H
|
||||
#define OHOS_STATE_H
|
||||
|
||||
#include <iostream>
|
||||
#include "message_queue.h"
|
||||
#include <iostream>
|
||||
|
||||
// namespace OHOS {
|
||||
// namespace Wifi {
|
||||
|
|
|
@ -16,12 +16,12 @@
|
|||
#ifndef OHOS_STA_MACHINE_H
|
||||
#define OHOS_STA_MACHINE_H
|
||||
|
||||
#include "IStateMachine.h"
|
||||
#include "handler.h"
|
||||
#include "message_queue.h"
|
||||
#include <map>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
#include "handler.h"
|
||||
#include "message_queue.h"
|
||||
#include "IStateMachine.h"
|
||||
|
||||
// namespace OHOS {
|
||||
// namespace Wifi {
|
||||
|
@ -140,7 +140,8 @@ public:
|
|||
* @param messageObj - User-defined data
|
||||
* @return InternalMessage* : Pointer to the constructed internal message.
|
||||
*/
|
||||
InternalMessage *CreateMessage(int msgName, int param1, int param2, const std::shared_ptr<VStateMessage> &messageObj);
|
||||
InternalMessage *CreateMessage(int msgName, int param1, int param2,
|
||||
const std::shared_ptr<VStateMessage> &messageObj);
|
||||
|
||||
/**
|
||||
* @Description : Constructs internal messages and places the
|
||||
|
@ -246,7 +247,8 @@ public:
|
|||
* @param messageObj -User-defined data
|
||||
* @param delayTimeMs - Delay time, in milliseconds.[in]
|
||||
*/
|
||||
void MessageExecutedLater(int msgName, const std::shared_ptr<VStateMessage> &messageObj, int64_t delayTimeMs) override;
|
||||
void MessageExecutedLater(int msgName, const std::shared_ptr<VStateMessage> &messageObj,
|
||||
int64_t delayTimeMs) override;
|
||||
|
||||
/**
|
||||
* @Description : Constructs internal messages and places them in the
|
||||
|
@ -259,7 +261,8 @@ public:
|
|||
* @param messageObj - User-defined data
|
||||
* @param delayTimeMs - Delay time, in milliseconds.[in]
|
||||
*/
|
||||
void MessageExecutedLater(int msgName, int param1, int param2, const std::shared_ptr<VStateMessage> &messageObj, int64_t delayTimeMs);
|
||||
void MessageExecutedLater(int msgName, int param1, int param2, const std::shared_ptr<VStateMessage> &messageObj,
|
||||
int64_t delayTimeMs);
|
||||
|
||||
/**
|
||||
* @Description : Construct a new State Machine:: State Machine object.
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
|
@ -14,16 +14,15 @@
|
|||
*/
|
||||
#include "StateMachineMakePtr.h"
|
||||
#include "ILog.h"
|
||||
#include "state_machine.h"
|
||||
#include "IStateMachine.h"
|
||||
#include "StateMachineImpl.h"
|
||||
#include "state_machine.h"
|
||||
#include <thread>
|
||||
bool CreateStateMachine(void)
|
||||
{
|
||||
auto instance = std::make_shared<IStateMachine>();
|
||||
StatusCode code = StateMachineMakePtr::GetInstance()->CreateStateMachine(instance);
|
||||
if (IsCodeOK(code))
|
||||
{
|
||||
if (IsCodeOK(code)) {
|
||||
LogInfo("State machine instance is ok.\n");
|
||||
IStateMachine::GetInstance(&instance);
|
||||
return true;
|
||||
|
@ -33,8 +32,7 @@ bool CreateStateMachine(void)
|
|||
std::shared_ptr<StateMachineMakePtr> &StateMachineMakePtr::GetInstance(std::shared_ptr<StateMachineMakePtr> *impl)
|
||||
{
|
||||
static auto instance = std::make_shared<StateMachineMakePtr>();
|
||||
if (impl)
|
||||
{
|
||||
if (impl) {
|
||||
instance = *impl;
|
||||
}
|
||||
return instance;
|
||||
|
@ -43,8 +41,7 @@ StatusCode StateMachineMakePtr::CreateStateMachine(std::shared_ptr<VStateMachine
|
|||
{
|
||||
// TODO: need a name ?
|
||||
auto tmp = std::make_shared<StateMachine>("TODO");
|
||||
if (tmp)
|
||||
{
|
||||
if (tmp) {
|
||||
stateMachine = std::move(tmp);
|
||||
return CreateStatusCode(STATUS_CODE_OK);
|
||||
}
|
||||
|
@ -54,8 +51,7 @@ StatusCode StateMachineMakePtr::CreateStateMachine(std::shared_ptr<VStateMachine
|
|||
StatusCode StateMachineMakePtr::CreateStateMachine(std::shared_ptr<IStateMachine> &instance)
|
||||
{
|
||||
auto tmp = std::make_shared<StateMachineImpl>();
|
||||
if (tmp)
|
||||
{
|
||||
if (tmp) {
|
||||
instance = std::move(tmp);
|
||||
return CreateStatusCode(STATUS_CODE_OK);
|
||||
}
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
|
@ -14,8 +14,8 @@
|
|||
*/
|
||||
#ifndef STATE_MACHINE_MAKE_PTR_H
|
||||
#define STATE_MACHINE_MAKE_PTR_H
|
||||
#include "StatusCode.h"
|
||||
#include "IStateMachine.h"
|
||||
#include "StatusCode.h"
|
||||
#include <memory>
|
||||
class StateMachineMakePtr
|
||||
{
|
||||
|
|
|
@ -4,4 +4,3 @@ add_subdirectory(Config)
|
|||
add_subdirectory(StatusCode)
|
||||
add_subdirectory(Log)
|
||||
add_subdirectory(SharedData)
|
||||
add_subdirectory(SharedMemory)
|
||||
|
|
Loading…
Reference in New Issue
Block a user