// Copyright 2019 The Cobalt Authors. All Rights Reserved.
//
// 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 STARBOARD_QUEUE_H_
#define STARBOARD_QUEUE_H_

#include "starboard/configuration.h"

#if SB_API_VERSION < 11
#if defined(__cplusplus)
extern "C++" {
#include "starboard/common/queue.h"
}  // extern "C++"
#endif  // defined(__cplusplus)
#else   // SB_API_VERSION > 11
#error "File moved to //starboard/common/queue.h."
#endif  // SB_API_VERSION < 11

#endif  // STARBOARD_QUEUE_H_
