diff --git a/frameworks/native/sensor/include/sensor_data_channel.h b/frameworks/native/sensor/include/sensor_data_channel.h index 782c68b4022b27c4e77260e964924660b11ac48d..0e767b1afcd2f274801011aaf5fae7959e589d83 100755 --- a/frameworks/native/sensor/include/sensor_data_channel.h +++ b/frameworks/native/sensor/include/sensor_data_channel.h @@ -28,7 +28,7 @@ namespace Sensors { typedef void (*DataChannelCB)(struct SensorEvent *events, int32_t num, void *data); class SensorDataChannel : public SensorBasicDataChannel { public: - SensorDataChannel(); + SensorDataChannel() = default; ~SensorDataChannel(); static int32_t HandleEvent(int32_t fd, int32_t events, void *data); int32_t CreateSensorDataChannel(DataChannelCB callBack, void *data); @@ -37,7 +37,7 @@ public: bool IsThreadStart(); int32_t RestoreSensorDataChannel(); int32_t test = 10; - DataChannelCB dataCB_; + DataChannelCB dataCB_ = nullptr; void *privateData_ = nullptr; private: diff --git a/frameworks/native/sensor/src/sensor_data_channel.cpp b/frameworks/native/sensor/src/sensor_data_channel.cpp index 641e75f9ca5bf051b429ab9d987484b7fc670b96..a9dff95745be7b94c4fdbb445fb1a8460d9aa2ed 100755 --- a/frameworks/native/sensor/src/sensor_data_channel.cpp +++ b/frameworks/native/sensor/src/sensor_data_channel.cpp @@ -43,11 +43,6 @@ constexpr HiLogLabel LABEL = { LOG_CORE, SensorsLogDomain::SENSOR_NATIVE, "Senso constexpr uint32_t STOP_EVENT_ID = 0; } // namespace -SensorDataChannel::SensorDataChannel() - : dataCB_(nullptr), - privateData_(nullptr) -{} - int32_t SensorDataChannel::CreateSensorDataChannel(DataChannelCB callBack, void *data) { if (callBack == nullptr) { @@ -86,19 +81,18 @@ int32_t SensorDataChannel::InnerSensorDataChannel() auto myRunner = AppExecFwk::EventRunner::Create(true); if (myRunner == nullptr) { HiLog::Error(LABEL, "%{public}s myRunner is null", __func__); - return -1; + return ERROR; } auto handler = std::make_shared(myRunner); if (handler == nullptr) { HiLog::Error(LABEL, "%{public}s handler is null", __func__); - return -1; + return ERROR; } - int32_t receiveFd = GetReceiveDataFd(); auto inResult = handler->AddFileDescriptorListener(receiveFd, AppExecFwk::FILE_DESCRIPTOR_INPUT_EVENT, listener); if (inResult != 0) { HiLog::Error(LABEL, "%{public}s AddFileDescriptorListener fail", __func__); - return -1; + return ERROR; } eventHandler_ = handler; eventRunner_ = myRunner; @@ -107,12 +101,12 @@ int32_t SensorDataChannel::InnerSensorDataChannel() bool sendEventResult = eventHandler_->SendEvent(STOP_EVENT_ID, param, delayTime); if (!sendEventResult) { HiLog::Error(LABEL, "%{public}s EventHandler SendEvent fail", __func__); - return -1; + return ERROR; } int32_t runResult = eventRunner_->Run(); if (!runResult) { HiLog::Error(LABEL, "%{public}s EventRunner run fail", __func__); - return -1; + return ERROR; } return ERR_OK; } @@ -122,7 +116,7 @@ int32_t SensorDataChannel::DestroySensorDataChannel() std::lock_guard eventRunnerLock(eventRunnerMutex_); if (eventHandler_ == nullptr || eventRunner_ == nullptr) { HiLog::Error(LABEL, "%{public}s handler or eventRunner is null", __func__); - return -1; + return ERROR; } int32_t receiveFd = GetReceiveDataFd(); eventHandler_->RemoveFileDescriptorListener(receiveFd); diff --git a/utils/src/sensor_basic_data_channel.cpp b/utils/src/sensor_basic_data_channel.cpp index 85f10db927523f14f78487df27ea719a178e495a..9969c127371d9466babcc83d50fae2037729fc3b 100755 --- a/utils/src/sensor_basic_data_channel.cpp +++ b/utils/src/sensor_basic_data_channel.cpp @@ -56,10 +56,19 @@ int32_t SensorBasicDataChannel::CreateSensorBasicChannel() return SENSOR_CHANNEL_SOCKET_CREATE_ERR; } // set socket attr - setsockopt(socketPair[0], SOL_SOCKET, SO_SNDBUF, &SENSOR_READ_DATA_SIZE, sizeof(SENSOR_READ_DATA_SIZE)); - setsockopt(socketPair[1], SOL_SOCKET, SO_RCVBUF, &SENSOR_READ_DATA_SIZE, sizeof(SENSOR_READ_DATA_SIZE)); + int32_t ret = setsockopt(socketPair[0], SOL_SOCKET, SO_SNDBUF, &SENSOR_READ_DATA_SIZE, + sizeof(SENSOR_READ_DATA_SIZE)); + if (ret != 0) { + HiLog::Error(LABEL, "%{public}s setsockopt socketpair 0 failed", __func__); + return SENSOR_CHANNEL_SOCKET_CREATE_ERR; + } + ret = setsockopt(socketPair[1], SOL_SOCKET, SO_RCVBUF, &SENSOR_READ_DATA_SIZE, sizeof(SENSOR_READ_DATA_SIZE)); + if (ret != 0) { + HiLog::Error(LABEL, "%{public}s setsockopt socketpair 1 failed", __func__); + return SENSOR_CHANNEL_SOCKET_CREATE_ERR; + } int32_t bufferSize = DEFAULT_CHANNEL_SIZE; - int32_t ret = setsockopt(socketPair[0], SOL_SOCKET, SO_RCVBUF, &bufferSize, sizeof(bufferSize)); + ret = setsockopt(socketPair[0], SOL_SOCKET, SO_RCVBUF, &bufferSize, sizeof(bufferSize)); if (ret != 0) { HiLog::Error(LABEL, "%{public}s setsockopt socketpair 0 failed", __func__); return SENSOR_CHANNEL_SOCKET_CREATE_ERR;