01:
02:
03:
04:
05:
06:
07:
08:
09:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:































































































/*
* This file is part of the Omni C++ framework
*
* Copyright (c) 2016, Zeriph Enterprises, LLC
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* - Neither the name of Zeriph, Zeriph Enterprises, LLC, nor the names
* of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY ZERIPH AND CONTRIBUTORS "AS IS" AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL ZERIPH AND CONTRIBUTORS BE LIABLE FOR ANY
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#if !defined(OMNI_FRAMEWORK_HPP)
#define OMNI_FRAMEWORK_HPP 1
/*
    The Omni framework is copyright Zeriph Enterprises LLC. The Zeriph name is trademarked
    Zeriph Enterprises LLC. For more licensing information, please see the included license.txt
    file or visit http://www.zeriph.com/legal.html
*/

/* Use this header to have access to the complete framework, example:

#include <omni/framework>

void some_thread(void *p)
{
    do (some_code) {
        here
        omni::sleep(1000);
    }
}

int main(int argc, char *argv[]) {
    omni::application::set_args(argc, argv);
    omni::thread t(&some_thread);
    t.start();
    omni::application::run();
}

*/

#include <omni/defs/global.hpp> // os.hpp, helper.hpp, omni_ver.hpp, debug.hpp, exception.hpp
#include <omni/defs/class_macros.hpp>
#if defined(OMNI_COMPILE_FLAGS)
    #include <omni/defs/compile_flags.hpp>
#endif

// delegates
#include <omni/delegates.hpp>

// generic objects
#include <omni/base_types.hpp> // char_t.hpp, string_t.hpp, seq_t.hpp, info.hpp, generic_ptr.hpp, smart_ptr.hpp, property.hpp, object.hpp

// strings/constants
#include <omni/string/util.hpp>
#include <omni/ostream.hpp>
#include <omni/strings.hpp> // cstring.hpp, wstring.hpp
#include <omni/constants.hpp> // cconsts.hpp, wconsts.hpp

// system/environment
#include <omni/environment.hpp>
#include <omni/system.hpp>
#include <omni/application.hpp>
#include <omni/argparser.hpp>
#include <omni/util/bits.hpp>
#include <omni/util/version.hpp>

// chrono
#include <omni/chrono_types.hpp> // chrono_t.hpp, time.hpp, span.hpp, stopwatch.hpp, timer.hpp

// threading/locks
// types: mutex_t.hpp, lock_t.hpp, thread_t.hpp, runnable_t.hpp
// threading: basic_thread.hpp, thread.hpp, threadpool.hpp, runnable.hpp
// locks: basic_lock.hpp, mutex.hpp, binary_semaphore.hpp, semaphore.hpp, conditional.hpp, spin.hpp
#include <omni/sync_types.hpp>
    
#endif // OMNI_FRAMEWORK_HPP