CyberEngineMkIII
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Conventions

Table of Contents

Introduction

Coding Covention

Default Constructors and Destructor

The default C++ extended constructors apply. The copy constructor will copy an object verbatim. The move constructor and assignment operator will move the object without affecting it's state. The destructor will clean up an object and may perform other operations as specified

Interop Construction

Todo:
Write the interstructors documenatation

RAII and Strong Guarantee

All unit control paths should be able to shut down correctly in the event an exception unwinds the stack. This usually means flagging down and waiting for threads, running IO functions to save any data, and cleaning up owned objects. They should also provide the C++ strong guarantee, meaning that if an exception is throw, data will remain in a valid state. All engine functions provide both these guarantees.

Thread Specification

A function will always note the thread safety of a function or the thread on which a function will run in the case of a callback. The specification types are as follows

Shared Inline
Thread Safety
Callback Thread

Note that function specific documentation overrides what is written here

Thread Safety

This specification is for an engine call that uses an interface class' vtable. It designates which threads can call the function, and at what time

Some common language:

Callback Thread

Functions within this group are usually inlines from the headers or implementations of abstract classes. These document exactly which thread the function will be called from within the engine.

The thread that owns the Context is the thread that had SetupContext called on it for that context. That thread will call this function

Shared Inline

All functions within this group have their sources available in the CyberEngineMkIII headers. A developer can determine the amount of thread safety possible