1/****************************************************************************
2* Copyright (C) 2016 Intel Corporation.   All Rights Reserved.
3*
4* Permission is hereby granted, free of charge, to any person obtaining a
5* copy of this software and associated documentation files (the "Software"),
6* to deal in the Software without restriction, including without limitation
7* the rights to use, copy, modify, merge, publish, distribute, sublicense,
8* and/or sell copies of the Software, and to permit persons to whom the
9* Software is furnished to do so, subject to the following conditions:
10*
11* The above copyright notice and this permission notice (including the next
12* paragraph) shall be included in all copies or substantial portions of the
13* Software.
14*
15* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
18* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
21* IN THE SOFTWARE.
22*
23* @file archrast.h
24*
25* @brief Definitions for archrast.
26*
27******************************************************************************/
28#pragma once
29
30#include "common/os.h"
31#include "gen_ar_event.h"
32
33namespace ArchRast
34{
35    enum class AR_THREAD
36    {
37        API = 0,
38        WORKER = 1
39    };
40
41    HANDLE CreateThreadContext(AR_THREAD type);
42    void DestroyThreadContext(HANDLE hThreadContext);
43
44    // Dispatch event for this thread.
45    void Dispatch(HANDLE hThreadContext, Event& event);
46};
47
48