#ifndef MP4V2_PLATFORM_PLATFORM_H
#define MP4V2_PLATFORM_PLATFORM_H
///////////////////////////////////////////////////////////////////////////////
//
//  The contents of this file are subject to the Mozilla Public License
//  Version 1.1 (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.mozilla.org/MPL/
//
//  Software distributed under the License is distributed on an "AS IS"
//  basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
//  License for the specific language governing rights and limitations
//  under the License.
//
//  The Original Code is MP4v2.
//
//  The Initial Developer of the Original Code is Kona Blend.
//  Portions created by Kona Blend are Copyright (C) 2008.
//  All Rights Reserved.
//
//  Contributors:
//      Kona Blend, kona8lend@@gmail.com
//
///////////////////////////////////////////////////////////////////////////////

/// @namespace mp4v2::platform (private) Platform abstraction.
/// <b>WARNING: THIS IS A PRIVATE NAMESPACE. NOT FOR PUBLIC CONSUMPTION.</b>
///
/// This namespace implements platform abstractions that are useful for
/// keeping the code base portable.

/// @namespace mp4v2::platform::io (private) I/O.
/// <b>WARNING: THIS IS A PRIVATE NAMESPACE. NOT FOR PUBLIC CONSUMPTION.</b>

/// @namespace mp4v2::platform::number (private) Number.
/// <b>WARNING: THIS IS A PRIVATE NAMESPACE. NOT FOR PUBLIC CONSUMPTION.</b>

/// @namespace mp4v2::platform::sys (private) System.
/// <b>WARNING: THIS IS A PRIVATE NAMESPACE. NOT FOR PUBLIC CONSUMPTION.</b>

///////////////////////////////////////////////////////////////////////////////

#if defined( _WIN32 )
#   include "libplatform/platform_win32.h"
#else
#   include "libplatform/platform_posix.h"
#endif

///////////////////////////////////////////////////////////////////////////////

#include "libplatform/warning.h"
#include "libplatform/endian.h"

#include "libplatform/io/File.h"
#include "libplatform/io/FileSystem.h"

#include "libplatform/number/random.h"
#include "libplatform/process/process.h"
#include "libplatform/prog/option.h"
#include "libplatform/sys/error.h"
#include "libplatform/time/time.h"

///////////////////////////////////////////////////////////////////////////////

#endif // MP4V2_PLATFORM_PLATFORM_H
