.. _program_listing_file__tmp_ws_src_rmf_traffic_rmf_traffic_include_rmf_traffic_agv_LaneClosure.hpp: Program Listing for File LaneClosure.hpp ======================================== |exhale_lsh| :ref:`Return to documentation for file ` (``/tmp/ws/src/rmf_traffic/rmf_traffic/include/rmf_traffic/agv/LaneClosure.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp /* * Copyright (C) 2021 Open Source Robotics Foundation * * 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. * See the License for the specific language governing permissions and * limitations under the License. * */ #ifndef RMF_TRAFFIC__AGV__LANECLOSURE_HPP #define RMF_TRAFFIC__AGV__LANECLOSURE_HPP #include #include namespace rmf_traffic { namespace agv { //============================================================================== class LaneClosure { public: LaneClosure(); bool is_open(std::size_t lane) const; bool is_closed(std::size_t lane) const; LaneClosure& open(std::size_t lane); LaneClosure& close(std::size_t lane); std::size_t hash() const; bool operator==(const LaneClosure& other) const; class Implementation; private: rmf_utils::impl_ptr _pimpl; }; } // namespace agv } // namespace rmf_traffic namespace std { //============================================================================== template<> struct hash { std::size_t operator()( const rmf_traffic::agv::LaneClosure& closure) const noexcept { return closure.hash(); } }; } // namespace std #endif // RMF_TRAFFIC__AGV__LANECLOSURE_HPP