119e95205Sopenharmony_ci/*
219e95205Sopenharmony_ci * Copyright (C) 2021 Huawei Device Co., Ltd.
319e95205Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
419e95205Sopenharmony_ci * you may not use this file except in compliance with the License.
519e95205Sopenharmony_ci * You may obtain a copy of the License at
619e95205Sopenharmony_ci *
719e95205Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
819e95205Sopenharmony_ci *
919e95205Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1019e95205Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1119e95205Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1219e95205Sopenharmony_ci * See the License for the specific language governing permissions and
1319e95205Sopenharmony_ci * limitations under the License.
1419e95205Sopenharmony_ci */
1519e95205Sopenharmony_ci
1619e95205Sopenharmony_ci#ifndef MESSAGE_H
1719e95205Sopenharmony_ci#define MESSAGE_H
1819e95205Sopenharmony_ci
1919e95205Sopenharmony_cinamespace utility {
2019e95205Sopenharmony_cistruct Message {
2119e95205Sopenharmony_cipublic:
2219e95205Sopenharmony_ci    /**
2319e95205Sopenharmony_ci     * @brief Construct a new Message object.
2419e95205Sopenharmony_ci     *
2519e95205Sopenharmony_ci     * @param what Message Identifier.
2619e95205Sopenharmony_ci     * @param arg1 Message first arg.
2719e95205Sopenharmony_ci     * @param arg2 Message second arg.
2819e95205Sopenharmony_ci     * @since 6
2919e95205Sopenharmony_ci     */
3019e95205Sopenharmony_ci    Message(int what, int arg1 = 0, void *arg2 = nullptr) : what_(what), arg1_(arg1), arg2_(arg2){};
3119e95205Sopenharmony_ci
3219e95205Sopenharmony_ci    /**
3319e95205Sopenharmony_ci     * @brief Construct a new Message object.
3419e95205Sopenharmony_ci     *
3519e95205Sopenharmony_ci     * @since 6
3619e95205Sopenharmony_ci     */
3719e95205Sopenharmony_ci    Message() = default;
3819e95205Sopenharmony_ci
3919e95205Sopenharmony_ci    /**
4019e95205Sopenharmony_ci     * @brief Destroy the Message object.
4119e95205Sopenharmony_ci     *
4219e95205Sopenharmony_ci     * @since 6
4319e95205Sopenharmony_ci     */
4419e95205Sopenharmony_ci    ~Message() = default;
4519e95205Sopenharmony_ci
4619e95205Sopenharmony_ci    int what_ = 0;
4719e95205Sopenharmony_ci    int arg1_ = 0;
4819e95205Sopenharmony_ci    void *arg2_ = nullptr;
4919e95205Sopenharmony_ci};
5019e95205Sopenharmony_ci}  // namespace utility
5119e95205Sopenharmony_ci
5219e95205Sopenharmony_ci#endif  // MESSAGE_H