#ifndef XMPCommonErrorCodes_I_h__
#define XMPCommonErrorCodes_I_h__ 1

// =================================================================================================
// Copyright Adobe
// Copyright 2015 Adobe
// All Rights Reserved
//
// NOTICE:  Adobe permits you to use, modify, and distribute this file in accordance with the terms
// of the Adobe license agreement accompanying it. 
// =================================================================================================

#include "XMPCommon/XMPCommonDefines_I.h"
#include "XMPCommon/XMPCommonErrorCodes.h"

namespace AdobeXMPCommon_Int {

	//!
	//! Indicates various types of errors related to mutex.
	//!
	typedef enum {
		//! Represents no error in operation on mutex.
		kMTECNone					= 0,

		//! Represents an error while interacting with mutex due to memory crunch.
		kMTECMemoryCrunch			= 1,

		//! Represents an error while interacting with mutex due to resource crunch other than memory.
		kMTECResourceCrunch			= 2,

		//! Represents an error while interacting with mutex due to permission issues.
		kMTECPermission				= 3,

		//! Represents an error related to lock operation called on already locked mutex.
		kMTECAlreadyLocked			= 4,

		//! Represents an error because of operation being called on already un-initialized mutex.
		kMTECUninitialized			= 5,

		// Add new errors here

		//! Maximum value this enum can hold, should be treated as invalid value.
		kMTECMaxValue				= 0xFFFFFFFF
	} eMultiThreadingErrorCode;
}

#endif  // XMPCommonErrorCodes_I_h__
