blob: 63a43685d0ec8b5d6d4844f2c2126309f25605fa [file] [log] [blame]
///////////////////////////////////////////////////////////////////////////////
//
// 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
// David Byron, dbyron0@gmail.com
//
///////////////////////////////////////////////////////////////////////////////
#ifndef MP4V2_IMPL_MP4EXCEPTION_H
#define MP4V2_IMPL_MP4EXCEPTION_H
namespace mp4v2 { namespace impl {
///////////////////////////////////////////////////////////////////////////////
class MP4V2_EXPORT Exception
{
public:
explicit Exception( const std::string& what_,
const char *file_,
int line_,
const char *function_ );
virtual ~Exception();
virtual std::string msg() const;
public:
const std::string what;
const std::string file;
const int line;
const std::string function;
};
class MP4V2_EXPORT PlatformException : public Exception
{
public:
explicit PlatformException( const std::string& what_,
int errno_,
const char *file_,
int line_,
const char *function_ );
virtual ~PlatformException();
virtual std::string msg() const;
public:
const int m_errno;
};
///////////////////////////////////////////////////////////////////////////////
}} // namespace mp4v2::impl
#endif // MP4V2_IMPL_MP4EXCEPTION_H