// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
// =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
//
// ThreadInternalContext.h
//
// Header file containing the metaphor for an thread based internal execution context/stack.
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
#pragma once
namespace Concurrency
{
namespace details
{
class ThreadInternalContext : public InternalContextBase
{
public:
//
// Public Methods
//
///
/// Construct an internal thread based context.
///
ThreadInternalContext(SchedulerBase *pScheduler) :
InternalContextBase(pScheduler)
{
}
///
/// Destroys an internal thread based context.
///
virtual ~ThreadInternalContext()
{
}
///
/// Returns the type of context
///
virtual ContextKind GetContextKind() const { return ThreadContext; }
private:
friend class ThreadScheduler;
};
} // namespace details
} // namespace Concurrency