192a12a34Sopenharmony_ci/* 292a12a34Sopenharmony_ci * Copyright (c) 2020 Huawei Device Co., Ltd. 392a12a34Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 492a12a34Sopenharmony_ci * you may not use this file except in compliance with the License. 592a12a34Sopenharmony_ci * You may obtain a copy of the License at 692a12a34Sopenharmony_ci * 792a12a34Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 892a12a34Sopenharmony_ci * 992a12a34Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1092a12a34Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1192a12a34Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1292a12a34Sopenharmony_ci * See the License for the specific language governing permissions and 1392a12a34Sopenharmony_ci * limitations under the License. 1492a12a34Sopenharmony_ci */ 1592a12a34Sopenharmony_ci 1692a12a34Sopenharmony_ci#ifndef OHOS_NOCOPYABLE_H 1792a12a34Sopenharmony_ci#define OHOS_NOCOPYABLE_H 1892a12a34Sopenharmony_ci 1992a12a34Sopenharmony_cinamespace OHOS { 2092a12a34Sopenharmony_ci#define DISALLOW_COPY_AND_MOVE(className) \ 2192a12a34Sopenharmony_ci DISALLOW_COPY(className); \ 2292a12a34Sopenharmony_ci DISALLOW_MOVE(className) 2392a12a34Sopenharmony_ci 2492a12a34Sopenharmony_ci#define DISALLOW_COPY(className) \ 2592a12a34Sopenharmony_ci className(const className&) = delete; \ 2692a12a34Sopenharmony_ci className& operator= (const className&) = delete 2792a12a34Sopenharmony_ci 2892a12a34Sopenharmony_ci#define DISALLOW_MOVE(className) \ 2992a12a34Sopenharmony_ci className(className&&) = delete; \ 3092a12a34Sopenharmony_ci className& operator= (className&&) = delete 3192a12a34Sopenharmony_ci 3292a12a34Sopenharmony_ci 3392a12a34Sopenharmony_ciclass NoCopyable { 3492a12a34Sopenharmony_ciprotected: 3592a12a34Sopenharmony_ci NoCopyable() {}; 3692a12a34Sopenharmony_ci virtual ~NoCopyable() {}; 3792a12a34Sopenharmony_ci 3892a12a34Sopenharmony_ciprivate: 3992a12a34Sopenharmony_ci DISALLOW_COPY_AND_MOVE(NoCopyable); 4092a12a34Sopenharmony_ci}; 4192a12a34Sopenharmony_ci} // namespace OHOS 4292a12a34Sopenharmony_ci#endif // OHOS_NOCOPYABLE_H