Ocean
Ocean Base Library

The Ocean Base Library provides all base functionalities needed in the Ocean framework. More...

Collaboration diagram for Ocean Base Library:

Modules

 Ocean Base JNI Library
 The Ocean Base JNI Library provides a Java Native Interface for Android.
 

Data Structures

class  Ocean::Accessor
 This class implements a base class for all accessors. More...
 
class  Ocean::ConstAccessor< T, TKey >
 This class implements a base class for accessors allowing a constant reference access. More...
 
class  Ocean::NonconstAccessor< T, TKey >
 This class implements a base class for accessors allowing a non-constant reference access. More...
 
class  Ocean::TemporaryAccessor< T, TKey >
 This class implements a base class for all accessors allowing to access temporary elements. More...
 
class  Ocean::ConstIndexedAccessor< T >
 This class implements a base class for all indexed-based accessors allowing a constant reference access only. More...
 
class  Ocean::NonconstIndexedAccessor< T >
 This class implements a base class for all indexed-based accessors allowing a non-constant reference access. More...
 
class  Ocean::TemporaryIndexedAccessor< T >
 This class implements a base class for all indexed-based accessors allowing to access temporary elements. More...
 
class  Ocean::ConstArrayAccessor< T >
 This class implements an accessor providing direct access to a constant array of elements. More...
 
class  Ocean::SharedPointerConstArrayAccessor< T >
 This class implements an accessor providing direct access to std::shared_ptr<T> elements returned as const T* pointers. More...
 
class  Ocean::ConstTemplateArrayAccessor< T >
 This class implements an accessor providing direct access to a constant array of elements. More...
 
class  Ocean::NonconstArrayAccessor< T >
 This class implements an accessor providing direct access to an array of elements. More...
 
class  Ocean::NonconstTemplateArrayAccessor< T >
 This class implements an accessor providing direct access to an array of elements. More...
 
class  Ocean::ConstElementAccessor< T >
 This class implements an accessor providing direct access to a constant array of elements while all elements are identical (all elements point to one unique object). More...
 
class  Ocean::ConstMapAccessor< T, TKey >
 This class implements an accessor providing direct access to a constant (unordered) map of elements. More...
 
class  Ocean::NonconstMapAccessor< T, TKey >
 This class implements an accessor providing direct access to an (unordered) map of elements. More...
 
class  Ocean::ConstArraySubsetAccessor< T, TIndex >
 This class implements an indexed-based constant accessor providing access to a subset of elements stored in an array. More...
 
class  Ocean::ConstTemplateArraySubsetAccessor< T, TIndex >
 This class implements an indexed-based constant accessor providing access to a subset of elements stored in an array. More...
 
class  Ocean::ConstIndexedAccessorSubsetAccessor< T, TIndex >
 This class implements an indexed-based constant accessor providing access to a subset of elements stored in a specified indexed-based child accessor. More...
 
class  Ocean::ConstCallbackIndexedAccessor< T >
 This class implements an accessor providing access to a elements by using a callback function. More...
 
class  Ocean::ApplicationInterface
 This class implements a very light application interface. More...
 
class  Ocean::Binary
 This class implements functions for binaries like functions allowing to hide information in the binary code (in the release build). More...
 
class  Ocean::Build
 This class provides compiler build support. More...
 
class  Ocean::NullClass
 Definition of a class holding no objects. More...
 
class  Ocean::MemberFunctionPointerMaker< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >
 This class implements a helper class providing a definition of a member function pointer only. More...
 
class  Ocean::StaticFunctionPointerMaker< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >
 This class is a helper class providing a definition of a static function pointer only. More...
 
class  Ocean::MemberFunctionCaller< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >
 This class implements a helper class providing a functionality to call a member function defined by the owner class and a local function pointer. More...
 
class  Ocean::StaticFunctionCaller< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >
 This class implements a helper class providing a functionality to call a static function defined by a function pointer. More...
 
class  Ocean::FunctionBase< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >
 This class is the base class for an unparameterized function container. More...
 
class  Ocean::MemberFunction< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >
 This class implements an unparameterized member function container. More...
 
class  Ocean::StaticFunction< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >
 This class implements an unparameterized static function container. More...
 
class  Ocean::Callback< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >
 This class implements a container for callback functions. More...
 
class  Ocean::Callbacks< T >
 This class implements a vector holding several callbacks with the same type. More...
 
class  Ocean::ConcurrentCallbacks< T >
 This class implements an extended callbacks object and is also thread-safe. More...
 
class  Ocean::ParameterCounter< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >
 This class implements a helper class providing the number of parameters of a parameterized function. More...
 
class  Ocean::FunctionParameterAccessor< tIsReference >
 This class implements a simple helper class allowing to access the value of an arbitrary data type. More...
 
class  Ocean::ParameterizedFunctionBase< RT >
 This class is the base class for a parameterized function container. More...
 
class  Ocean::ParameterizedFunction< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >
 This class implements an parameterized function container. More...
 
class  Ocean::ParameterizedMemberFunction< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >
 This class implements an parameterized member function container. More...
 
class  Ocean::ParameterizedMemberFunctionConst< CT, RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >
 This class implements an parameterized const member function container. More...
 
class  Ocean::ParameterizedStaticFunction< RT, PT0, PT1, PT2, PT3, PT4, PT5, PT6, PT7, PT8, PT9, PT10, PT11, PT12, PT13, PT14, PT15, PT16, PT17, PT18, PT19 >
 This class implements an parameterized static function container. More...
 
class  Ocean::Caller< RT >
 This class implements a callback function container using defined function parameters. More...
 
class  Ocean::CommandArguments
 This class implements a manager for command arguments. More...
 
class  Ocean::Config
 This class implements an application or module configuration toolkit. More...
 
class  Ocean::DataType< T, tElements >
 Template class allowing to define an array of data types. More...
 
class  Ocean::Identity< T >
 This class implements a helper class allowing to define the identity data type of a given type. More...
 
class  Ocean::SquareValueTyper< T >
 This class is a helper class allowing to define the square difference data type of a given type. More...
 
class  Ocean::DifferenceValueTyper< T >
 This class is a helper class allowing to define the signed difference data type of a given type. More...
 
class  Ocean::AbsoluteDifferenceValueTyper< T >
 This class is a helper class allowing to define the resulting data type for an absolute difference operation. More...
 
class  Ocean::NextLargerTyper< T >
 This class is a helper class allowing to determine the next larger data type for a given data type. More...
 
class  Ocean::SignedTyper< T >
 This class is a helper class allowing to determine the signed data type for a given data type if existing, otherwise the identity data type. More...
 
class  Ocean::UnsignedTyper< T >
 This class is a helper class allowing to determine the unsigned data type for a given data type if existing, otherwise the identity data type. More...
 
struct  Ocean::FloatTyper< T >
 This struct is a helper struct providing a floating point data type best matching for a given data type. More...
 
class  Ocean::NotVoidTyper< T >
 This struct implements a helper struct allowing to use a data type instead of void. More...
 
class  Ocean::TypeNamer
 This class implements a helper class allowing to determine unique names for most of native C++ data types. More...
 
class  Ocean::TypeMapperBySize< tBytes >
 This class provides a unique data type for any data type specified by the number of bytes. More...
 
class  Ocean::TypeMapper< T >
 This class provides a unique data type for any data type. More...
 
class  Ocean::MapTyper< tOrderedKeys >
 Helper class allowing to define an ordered or unordered map based on the template parameter 'tOrderedKeys'. More...
 
class  Ocean::Float16
 Definition of a 16-bit float type. More...
 
class  Ocean::DateTime
 This class provides basic functionalities for date and time handling. More...
 
class  Ocean::DebugElements
 This class implements the base class for a container for debug elements. More...
 
class  Ocean::Event
 This class implements the base class for all event classes. More...
 
class  Ocean::ScopedEvent< T >
 This class implements a scoped event. More...
 
class  Ocean::EventManager
 This class implements a central manager for events that can be pushed and received from/in individual components of an application or a software package. More...
 
class  Ocean::OceanException
 Definition of a base exception for the entire Ocean framework. More...
 
class  Ocean::NotImplementedException
 Definition of a base exception for not implemented code. More...
 
class  Ocean::MissingImplementationException
 Definition of a base exception for missing implementations. More...
 
class  Ocean::NotSupportedException
 Definition of a base exception for not supported functionalities. More...
 
class  Ocean::OutOfMemoryException
 Definition of a base exception if an out of memory problem occurs. More...
 
class  Ocean::FrameType
 Definition of a frame type composed by the frame dimension, pixel format and pixel origin. More...
 
class  Ocean::Frame
 This class implements Ocean's image class. More...
 
class  Ocean::HashMap< TKey, T >
 This class implements a hash map. More...
 
class  Ocean::HashSet< T >
 This class implements a hash set. More...
 
class  Ocean::HighPerformanceTimer
 This class implements a high performance timer. More...
 
class  Ocean::HighPerformanceStatistic
 This class implements a simple module gathering high performance timer statistics. More...
 
class  Ocean::HighPerformanceStatistic::ScopedStatistic
 This class defines a scoped high performance statistic module. More...
 
class  Ocean::HighPerformanceBenchmark
 The HighPerformanceBenchmark object allows to benchmark algorithms with individual categories. More...
 
class  Ocean::HighPerformanceBenchmark::Category
 This class defines a hierarchical category This class is used to group categories based on their names into a hierarchy. More...
 
class  Ocean::KdTree< T >
 This class implements a k-d tree. More...
 
class  Ocean::Lock
 This class implements a recursive lock object. More...
 
class  Ocean::TemplatedLock< tActive >
 This class implements a template-based recursive lock object. More...
 
class  Ocean::TemplatedLock< false >
 Specialization of the TemplatedLock class. More...
 
class  Ocean::ScopedLock
 This class implements a scoped lock object for recursive lock objects. More...
 
class  Ocean::TemplatedScopedLock< tActive >
 This class implements a recursive scoped lock object that is activated by a boolean template parameter. More...
 
class  Ocean::TemplatedScopedLock< false >
 Specialization of the TemplatedScopedLock class. More...
 
class  Ocean::TemporaryScopedLock
 This class implements a recursive scoped lock object allowing to release the lock before the scoped object itself is released. More...
 
class  Ocean::OptionalScopedLock
 This class implements an optional recursive scoped lock object locking the lock object only if it's defined. More...
 
class  Ocean::Maintenance
 This class implements a maintenance manager. More...
 
class  Ocean::Median
 This class implements a median determination value. More...
 
class  Ocean::Memory
 This class implements an object able to allocate memory. More...
 
class  Ocean::Messenger
 This class implements a messenger for information, warning or error messages. More...
 
class  Ocean::MessageObject< tActive >
 Messenger object, one object for each message. More...
 
class  Ocean::MessageObject< false >
 Specialization of MessageObject. More...
 
class  Ocean::Log
 This class provides access to three different Message objects, e.g., for regular information, warnings, or errors. More...
 
class  Ocean::ObjectRef< T >
 This template class implements a object reference with an internal reference counter. More...
 
class  Ocean::OceanManager
 This class implements the basic manager for the Ocean framework. More...
 
class  Ocean::PluginManager
 This class implements a manager for all plugins available for the Ocean framework. More...
 
class  Ocean::ProcessorInstructionChecker< tHighestInstructions, tNecessaryInstruction >
 This helper class allows to determine a compile-time known boolean statement whether a set of available instruction contains (included) a specified (minimal requirement) instruction. More...
 
class  Ocean::Processor
 This class implements basic functions relating the system processor. More...
 
class  Ocean::ProcessorInstructionChecker< tHighestInstructions, PI_SSE >
 Specialization for one specific instruction. More...
 
class  Ocean::ProcessorInstructionChecker< tHighestInstructions, PI_SSE_2 >
 Specialization for one specific instruction. More...
 
class  Ocean::ProcessorInstructionChecker< tHighestInstructions, PI_SSE_3 >
 Specialization for one specific instruction. More...
 
class  Ocean::ProcessorInstructionChecker< tHighestInstructions, PI_SSSE_3 >
 Specialization for one specific instruction. More...
 
class  Ocean::ProcessorInstructionChecker< tHighestInstructions, PI_SSE_4_1 >
 Specialization for one specific instruction. More...
 
class  Ocean::ProcessorInstructionChecker< tHighestInstructions, PI_SSE_4_2 >
 Specialization for one specific instruction. More...
 
class  Ocean::ProcessorInstructionChecker< tHighestInstructions, PI_AVX >
 Specialization for one specific instruction. More...
 
class  Ocean::ProcessorInstructionChecker< tHighestInstructions, PI_AVX_2 >
 Specialization for one specific instruction. More...
 
class  Ocean::ProcessorInstructionChecker< tHighestInstructions, PI_AVX_512 >
 Specialization for one specific instruction. More...
 
class  Ocean::ProcessorInstructionChecker< tHighestInstructions, PI_NEON >
 Specialization for one specific instruction. More...
 
class  Ocean::RandomGenerator
 This class implements a generator for random numbers. More...
 
class  Ocean::RandomI
 This class provides base random functions and several random functions for integer data types. More...
 
class  Ocean::RingMapT< TKey, T, tThreadsafe, tOrderedKeys >
 This class implements a data storage map that stores the data elements in a ring manner. More...
 
class  Ocean::Scheduler
 This class represents a round robin scheduler. More...
 
class  Ocean::ScopedFunctionT< T >
 This class holds a function which will be invoked once the object is disposed. More...
 
class  Ocean::ScopedObjectT< T, TReleaseValue, TReleaseFunction >
 This class wraps an unmanaged object (or reference) which needs to be released after usage. More...
 
class  Ocean::ScopedObjectCompileTimeT< T, TReleaseValue, TReleaseReturn, tReleaseFunction, tExpectedReturnValue, tCheckReturnValue, tInvalidValue >
 This class wraps an unmanaged object (or reference) which needs to be released after usage. More...
 
class  Ocean::ScopedSubscriptionT< T, TOwner >
 This class implements a subscription object which can be used unique subscriptions to e.g., callback functions. More...
 
class  Ocean::ScopedSubscriptionHandler
 This class implements the base class for all subscription handlers. More...
 
class  Ocean::ScopedSubscriptionCallbackHandlerT< TCallbackFunction, TOwner, tThreadSafe >
 This class implements a handler for scoped subscriptions to callback functions. More...
 
class  Ocean::ScopedValueT< T >
 This class implements a scoped value that allows to change a specified value at the end of a scope. More...
 
class  Ocean::SegmentUnion< T >
 This class implements a functionality to determine the union of individual segments. More...
 
class  Ocean::SharedLock
 This class implements a lock shared over individual processes (a system-wide lock). More...
 
class  Ocean::ScopedSharedLock
 This class defines a scoped lock object for shared locks. More...
 
class  Ocean::SharedMemory
 This class implements a shared memory object allowing access to a shared buffer. More...
 
class  Ocean::ShiftVector< T >
 This class implements a vector with shifted elements. More...
 
class  Ocean::Signal
 This class implements a signal. More...
 
class  Ocean::Signals
 This class implements a signal array. More...
 
class  Ocean::Singleton< T >
 This template class is the base class for all singleton objects. More...
 
class  Ocean::SmartObjectRef< T, TBase >
 This template class implements a smart object reference which is a specialization of an ObjectRef object. More...
 
class  Ocean::StackHeapVector< T, tStackCapacity >
 Vector like data structure combining stack and heap memory. More...
 
class  Ocean::StaticBuffer< T, tCapacity >
 This class implements a static buffer that has a fixed capacity. More...
 
class  Ocean::StaticVector< T, tCapacity >
 This class implements a static vector that has a fixed capacity. More...
 
class  Ocean::String
 This class provides string convert functionalities. More...
 
class  Ocean::StringApple
 This class provides function allowing to convert Apple-platform specific string objects. More...
 
class  Ocean::Subset
 This class implements subset functions. More...
 
class  Ocean::TaskQueue
 This class implements a queue for tasks. More...
 
class  Ocean::Thread
 This class implements a thread. More...
 
class  Ocean::ThreadPool
 This class implements a pool holding re-usable thread objects for individual use. More...
 
class  Ocean::ThreadPoolSingleton
 This class wraps the ThreadPool into a singleton for global usage. More...
 
class  Ocean::Timestamp
 This class implements a timestamp. More...
 
class  Ocean::Triple< T1, T2, T3 >
 This class implements a triple object able to hold three individual elements. More...
 
class  Ocean::Utilities
 This class implements basic utility functions. More...
 
class  Ocean::Value
 This class implements a type independent value. More...
 
class  Ocean::Version
 This class provides version numbers for Ocean. More...
 
class  Ocean::Worker
 This class implements a worker able to distribute function calls over different threads. More...
 
class  Ocean::WorkerPool
 This class implements a pool holding worker objects for individual use. More...
 

Typedefs

typedef uint32_t Ocean::Index32
 Definition of a 32 bit index value. More...
 
typedef uint64_t Ocean::Index64
 Definition of a 64 bit index value. More...
 
typedef std::vector< Index32Ocean::Indices32
 Definition of a vector holding 32 bit index values. More...
 
typedef std::vector< Indices32Ocean::IndexGroups32
 Definition of a vector holding 32 bit indices, so we have groups of indices. More...
 
typedef std::vector< Index64Ocean::Indices64
 Definition of a vector holding 64 bit index values. More...
 
typedef std::set< Index32Ocean::IndexSet32
 Definition of a set holding 32 bit indices. More...
 
typedef std::set< Index64Ocean::IndexSet64
 Definition of a set holding 64 bit indices. More...
 
typedef std::unordered_set< Index32Ocean::UnorderedIndexSet32
 Definition of an unordered_set holding 32 bit indices. More...
 
typedef std::unordered_set< Index64Ocean::UnorderedIndexSet64
 Definition of an unordered_set holding 64 bit indices. More...
 
typedef std::pair< Index32, Index32Ocean::IndexPair32
 Definition of a pair holding 32 bit indices. More...
 
typedef std::vector< IndexPair32Ocean::IndexPairs32
 Definition of a vector holding 32 bit index pairs. More...
 
typedef std::pair< Index64, Index64Ocean::IndexPair64
 Definition of a pair holding 64 bit indices. More...
 
typedef std::vector< IndexPair64Ocean::IndexPairs64
 Definition of a vector holding 64 bit index pairs. More...
 
typedef std::vector< std::string > Ocean::Strings
 Definition of a vector holding strings. More...
 
typedef std::vector< std::wstring > Ocean::WStrings
 Definition of a vector holding strings. More...
 
typedef ObjectRef< EventOcean::EventRef
 Definition of an object reference holding an event object. More...
 
typedef std::exception Ocean::Exception
 Definition of the base exception. More...
 
using Ocean::Frames = std::vector< Frame >
 Definition of a vector holding padding frames. More...
 
using Ocean::FrameRef = ObjectRef< Frame >
 Definition of an object reference for frame objects. More...
 
using Ocean::FrameRefs = std::vector< FrameRef >
 Definition of a vector holding frame references. More...
 
typedef ScopedFunctionT< std::function< void()> > Ocean::ScopedFunctionVoid
 Definition of a scoped function with void return parameter. More...
 
template<typename T , void(*)(T) tReleaseFunction>
using Ocean::ScopedObjectCompileTimeVoidT = ScopedObjectCompileTimeT< T, T, void, tReleaseFunction >
 Template specialization for ScopedObjectCompileTimeT with void return value. More...
 
typedef std::vector< TimestampOcean::Timestamps
 Definition of a vector holding Timestamp objects. More...
 

Enumerations

enum  Ocean::ProcessorInstructions : uint32_t {
  Ocean::PI_NONE = 0u , Ocean::PI_SSE = 1u << 0u , Ocean::PI_SSE_2 = 1u << 1u , Ocean::PI_SSE_3 = 1u << 2u ,
  Ocean::PI_SSSE_3 = 1u << 3u , Ocean::PI_SSE_4_1 = 1u << 4u , Ocean::PI_SSE_4_2 = 1u << 5u , Ocean::PI_SSE_ANY = PI_SSE | PI_SSE_2 | PI_SSE_3 | PI_SSSE_3 | PI_SSE_4_1 | PI_SSE_4_2 ,
  Ocean::PI_AVX = 1u << 6u , Ocean::PI_AVX_2 = 1u << 7u , Ocean::PI_AVX_512 = 1u << 8u , Ocean::PI_AVX_ANY = PI_AVX | PI_AVX_2 | PI_AVX_512 ,
  Ocean::PI_NEON = 1 << 9u , Ocean::PI_NEON_ANY = PI_NEON , Ocean::PI_AES = 1 << 10u , Ocean::PI_GROUP_SSE_2 = PI_SSE | PI_SSE_2 ,
  Ocean::PI_GROUP_SSE_4_1 = PI_SSE | PI_SSE_2 | PI_SSE_3 | PI_SSSE_3 | PI_SSE_4_1 , Ocean::PI_GROUP_AVX_2 = PI_AVX | PI_AVX_2 , Ocean::PI_GROUP_AVX_2_SSE_2 = PI_GROUP_SSE_2 | PI_GROUP_AVX_2 , Ocean::PI_GROUP_NEON = PI_NEON ,
  Ocean::PI_GROUP_AVX_2_SSE_4_1 = PI_GROUP_SSE_4_1 | PI_GROUP_AVX_2
}
 Definition of individual processor instruction types. More...
 

Functions

OCEAN_BASE_EXPORT void Ocean::assertErrorMessage (const char *file, const int line, const char *message)
 Error message function for redirected asserts. More...
 
template<typename T >
constexpr bool Ocean::oceanFalse ()
 This function is a helper function returning false any time. More...
 
std::wstring Ocean::decryptString32 (const wchar_t *value, const unsigned int sizePlusTwo, const wchar_t *key1, const wchar_t *key2)
 This function is part of the HIDE_STRING_32 define used internally. More...
 
template<typename T >
Ocean::minmax (const T &lowerBoundary, const T &value, const T &upperBoundary)
 This function fits a given parameter into a specified value range. More...
 
template<typename T >
Ocean::modulo (const T &value, const T &ring)
 Returns the modulo value of a given parameter within a ring allowing positive and negative parameters. More...
 
template<typename T >
Ocean::ringDistance (const T &value0, const T &value1, const T &ring)
 Returns the distance between two values inside defined ring. More...
 
unsigned int Ocean::sqr (const char value)
 Returns the square value of a given value. More...
 
unsigned int Ocean::sqr (const unsigned char value)
 Returns the square value of a given value. More...
 
unsigned int Ocean::sqr (const short value)
 Returns the square value of a given value. More...
 
unsigned int Ocean::sqr (const unsigned short value)
 Returns the square value of a given value. More...
 
unsigned int Ocean::sqr (const int value)
 Returns the square value of a given value. More...
 
unsigned int Ocean::sqr (const unsigned int value)
 Returns the square value of a given value. More...
 
unsigned long Ocean::sqr (const long value)
 Returns the square value of a given value. More...
 
unsigned long Ocean::sqr (const unsigned long value)
 Returns the square value of a given value. More...
 
unsigned long long Ocean::sqr (const long long value)
 Returns the square value of a given value. More...
 
unsigned long long Ocean::sqr (const unsigned long long value)
 Returns the square value of a given value. More...
 
float Ocean::sqr (const float value)
 Returns the square value of a given value. More...
 
double Ocean::sqr (const double value)
 Returns the square value of a given value. More...
 
unsigned int Ocean::sqrDistance (const char first, const char second)
 Returns the square distance between two values. More...
 
unsigned int Ocean::sqrDistance (const unsigned char first, const unsigned char second)
 Returns the square distance between two values. More...
 
unsigned int Ocean::sqrDistance (const short first, const short second)
 Returns the square distance between two values. More...
 
unsigned int Ocean::sqrDistance (const unsigned short first, const unsigned short second)
 Returns the square distance between two values. More...
 
unsigned int Ocean::sqrDistance (const int first, const int second)
 Returns the square distance between two values. More...
 
unsigned int Ocean::sqrDistance (const unsigned int first, const unsigned int second)
 Returns the square distance between two values. More...
 
unsigned long long Ocean::sqrDistance (const long long first, const long long second)
 Returns the square distance between two values. More...
 
unsigned long long Ocean::sqrDistance (const unsigned long long first, const unsigned long long second)
 Returns the square distance between two values. More...
 
float Ocean::sqrDistance (const float first, const float second)
 Returns the square distance between two values. More...
 
double Ocean::sqrDistance (const double first, const double second)
 Returns the square distance between two values. More...
 
unsigned char Ocean::absDistance (const char first, const char second)
 Returns the absolute distance between two values. More...
 
unsigned char Ocean::absDistance (const unsigned char first, const unsigned char second)
 Returns the absolute distance between two values. More...
 
unsigned short Ocean::absDistance (const short first, const short second)
 Returns the absolute distance between two values. More...
 
unsigned short Ocean::absDistance (const unsigned short first, const unsigned short second)
 Returns the absolute distance between two values. More...
 
unsigned int Ocean::absDistance (const int first, const int second)
 Returns the absolute distance between two values. More...
 
unsigned int Ocean::absDistance (const unsigned int first, const unsigned int second)
 Returns the absolute distance between two values. More...
 
unsigned long long Ocean::absDistance (const long long first, const long long second)
 Returns the absolute distance between two values. More...
 
unsigned long long Ocean::absDistance (const unsigned long long first, const unsigned long long second)
 Returns the absolute distance between two values. More...
 
static unsigned int Ocean::mirrorValue (const int value, const unsigned int size)
 Mirrors a given value if necessary. More...
 
template<typename T >
static size_t Ocean::countElements (const std::vector< std::vector< T >> &vectors)
 Determines the entire number of elements that are stored in a vector holding a vector of elements. More...
 
template<typename T >
static std::vector< T > Ocean::concatenate (const std::vector< std::vector< T >> &vectors)
 Concatenates a given set of vectors to one vector. More...
 
template<typename T >
static void Ocean::createIndices (const size_t numberIndices, const T &startIndex, std::vector< T > &indices)
 Fills a vector with increasing index values. More...
 
template<typename T >
static std::vector< T > Ocean::createIndices (const size_t numberIndices, const T &startIndex)
 Returns a vector with increasing index values. More...
 
static unsigned int Ocean::CV::FrameFilterSeparable::mirroredBorderLocationLeft (const int value)
 Mirrors a given value at the left border if necessary. More...
 
static unsigned int Ocean::CV::FrameFilterSeparable::mirroredBorderLocationRight (const unsigned int value, const unsigned int size)
 Mirrors a given value at the right border if necessary. More...
 
static unsigned int Ocean::CV::FrameShrinker::mirroredBorderLocationLeft (const int value)
 Mirrors a given value at the left border if necessary. More...
 
static unsigned int Ocean::CV::FrameShrinker::mirroredBorderLocationRight (const unsigned int value, const unsigned int size)
 Mirrors a given value at the right border if necessary. More...
 

Detailed Description

The Ocean Base Library provides all base functionalities needed in the Ocean framework.

The library is platform independent.

The DateTime, Timestamp and HighPerformanceTimer classes provide date and time functionalities.

The Thread, Lock, Signal, Thread, ThreadPool, Worker and WorkerPool classes provide threading, mutex, signal and critical section functionalities.

Callback and Caller realize callback functions and the Scheduler can be applied to implement regular timer events.

The StaticBuffer, StaticVector, ShiftVector, KdTree, HashSet, HasMap, RingMap and Triple classes provide possibilities to store and access data elements within individual structures.

The RandomI and RandomGenerator classes provide capabilities to create random numbers.

The ObjectRef and SmartObjectRef classes encapsulate individual objects by object references with reference counters.

Use the Frame class to store arbitrary 2D (image) information.

Singletons can be realized by application of the Singleton class.

Several helper classes exist providing template-based solutions to e.g., create data types with specific size or to create data types larger than a specific data type. Some of this classes are: DataType, SquareValueTyper, DifferenceValueTyper, NextLargerTyper, UnsignedTyper, TypeNamer.

Typedef Documentation

◆ EventRef

Definition of an object reference holding an event object.

See also
Event.

◆ Exception

typedef std::exception Ocean::Exception

Definition of the base exception.

◆ FrameRef

using Ocean::FrameRef = typedef ObjectRef<Frame>

Definition of an object reference for frame objects.

◆ FrameRefs

using Ocean::FrameRefs = typedef std::vector<FrameRef>

Definition of a vector holding frame references.

◆ Frames

using Ocean::Frames = typedef std::vector<Frame>

Definition of a vector holding padding frames.

See also
Frame.

◆ Index32

typedef uint32_t Ocean::Index32

Definition of a 32 bit index value.

◆ Index64

typedef uint64_t Ocean::Index64

Definition of a 64 bit index value.

◆ IndexGroups32

typedef std::vector<Indices32> Ocean::IndexGroups32

Definition of a vector holding 32 bit indices, so we have groups of indices.

◆ IndexPair32

typedef std::pair<Index32, Index32> Ocean::IndexPair32

Definition of a pair holding 32 bit indices.

◆ IndexPair64

typedef std::pair<Index64, Index64> Ocean::IndexPair64

Definition of a pair holding 64 bit indices.

◆ IndexPairs32

typedef std::vector<IndexPair32> Ocean::IndexPairs32

Definition of a vector holding 32 bit index pairs.

◆ IndexPairs64

typedef std::vector<IndexPair64> Ocean::IndexPairs64

Definition of a vector holding 64 bit index pairs.

◆ IndexSet32

typedef std::set<Index32> Ocean::IndexSet32

Definition of a set holding 32 bit indices.

◆ IndexSet64

typedef std::set<Index64> Ocean::IndexSet64

Definition of a set holding 64 bit indices.

◆ Indices32

typedef std::vector<Index32> Ocean::Indices32

Definition of a vector holding 32 bit index values.

◆ Indices64

typedef std::vector<Index64> Ocean::Indices64

Definition of a vector holding 64 bit index values.

◆ ScopedFunctionVoid

typedef ScopedFunctionT<std::function<void()> > Ocean::ScopedFunctionVoid

Definition of a scoped function with void return parameter.

◆ ScopedObjectCompileTimeVoidT

template<typename T , void(*)(T) tReleaseFunction>
using Ocean::ScopedObjectCompileTimeVoidT = typedef ScopedObjectCompileTimeT<T, T, void, tReleaseFunction>

Template specialization for ScopedObjectCompileTimeT with void return value.

Template Parameters
TThe data type of the wrapped object
tReleaseFunctionThe data type of the release function
See also
ScopedObjectCompileTimeT.

◆ Strings

typedef std::vector<std::string> Ocean::Strings

Definition of a vector holding strings.

◆ Timestamps

typedef std::vector<Timestamp> Ocean::Timestamps

Definition of a vector holding Timestamp objects.

See also
Timestamp

◆ UnorderedIndexSet32

typedef std::unordered_set<Index32> Ocean::UnorderedIndexSet32

Definition of an unordered_set holding 32 bit indices.

◆ UnorderedIndexSet64

typedef std::unordered_set<Index64> Ocean::UnorderedIndexSet64

Definition of an unordered_set holding 64 bit indices.

◆ WStrings

typedef std::vector<std::wstring> Ocean::WStrings

Definition of a vector holding strings.

Enumeration Type Documentation

◆ ProcessorInstructions

Definition of individual processor instruction types.

Enumerator
PI_NONE 

Unknown processor instruction set.

PI_SSE 

SEE instructions.

PI_SSE_2 

SEE2 instructions.

PI_SSE_3 

SSE3 instructions.

PI_SSSE_3 

SSSE3 instructions.

PI_SSE_4_1 

SSE_4.1 instructions.

PI_SSE_4_2 

SSE 4.2 instructions.

PI_SSE_ANY 

Any SSE instructions.

PI_AVX 

AVX instructions.

PI_AVX_2 

AVX2 instructions.

PI_AVX_512 

AVX 512 instructions.

PI_AVX_ANY 

Any AVX instructions.

PI_NEON 

NEON instructions.

PI_NEON_ANY 

Any NEON instructions.

PI_AES 

AES instructions.

PI_GROUP_SSE_2 

All SSE instructions between (including) SSE and SSE2.

PI_GROUP_SSE_4_1 

All SSE instructions between (including) SSE and SSE4.1.

PI_GROUP_AVX_2 

All AVX instructions between (including) AVX and AVX2.

PI_GROUP_AVX_2_SSE_2 

All AVX instructions between (including) AVX and AVX2 and SSE instructions between (including) SSE and SSE2, e.g., for processors supporting SSSE3 but not SSE3.

PI_GROUP_NEON 

All NEON instructions (which is currently NEON only).

PI_GROUP_AVX_2_SSE_4_1 

All AVX instructions between (including) AVX and AVX2 and SSE instructions between (including) SSE and SSE4.1.

Function Documentation

◆ absDistance() [1/8]

unsigned char Ocean::absDistance ( const char  first,
const char  second 
)
inline

Returns the absolute distance between two values.

Parameters
firstThe first value
secondThe second value
Returns
Square distance

◆ absDistance() [2/8]

unsigned int Ocean::absDistance ( const int  first,
const int  second 
)
inline

Returns the absolute distance between two values.

Parameters
firstThe first value
secondThe second value
Returns
Square distance

◆ absDistance() [3/8]

unsigned long long Ocean::absDistance ( const long long  first,
const long long  second 
)
inline

Returns the absolute distance between two values.

Parameters
firstThe first value
secondThe second value
Returns
Square distance

◆ absDistance() [4/8]

unsigned short Ocean::absDistance ( const short  first,
const short  second 
)
inline

Returns the absolute distance between two values.

Parameters
firstThe first value
secondThe second value
Returns
Square distance

◆ absDistance() [5/8]

unsigned char Ocean::absDistance ( const unsigned char  first,
const unsigned char  second 
)
inline

Returns the absolute distance between two values.

Parameters
firstThe first value
secondThe second value
Returns
Square distance

◆ absDistance() [6/8]

unsigned int Ocean::absDistance ( const unsigned int  first,
const unsigned int  second 
)
inline

Returns the absolute distance between two values.

Parameters
firstThe first value
secondThe second value
Returns
Square distance

◆ absDistance() [7/8]

unsigned long long Ocean::absDistance ( const unsigned long long  first,
const unsigned long long  second 
)
inline

Returns the absolute distance between two values.

Parameters
firstThe first value
secondThe second value
Returns
Square distance

◆ absDistance() [8/8]

unsigned short Ocean::absDistance ( const unsigned short  first,
const unsigned short  second 
)
inline

Returns the absolute distance between two values.

Parameters
firstThe first value
secondThe second value
Returns
Square distance

◆ assertErrorMessage()

OCEAN_BASE_EXPORT void Ocean::assertErrorMessage ( const char *  file,
const int  line,
const char *  message 
)

Error message function for redirected asserts.

Parameters
fileSource file in that the assert occurred
lineNumber of the line in that the assert occurred
messageThe message to be redirected

◆ concatenate()

template<typename T >
static std::vector<T> Ocean::concatenate ( const std::vector< std::vector< T >> &  vectors)
inlinestatic

Concatenates a given set of vectors to one vector.

Parameters
vectorsSet of given vectors
Returns
Resulting unique vector
Template Parameters
TData type of the vector elements

◆ countElements()

template<typename T >
static size_t Ocean::countElements ( const std::vector< std::vector< T >> &  vectors)
inlinestatic

Determines the entire number of elements that are stored in a vector holding a vector of elements.

Parameters
vectorsSet of given vector
Returns
Resulting entire number of elements
Template Parameters
TData type of the vector elements

◆ createIndices() [1/2]

template<typename T >
static std::vector<T> Ocean::createIndices ( const size_t  numberIndices,
const T &  startIndex 
)
inlinestatic

Returns a vector with increasing index values.

Parameters
numberIndicesNumber of indices that will be created, with range [1, infinity)
startIndexStart index value, successive indices will be incremented, with range [0, infinity)
Returns
The resulting index vector
Template Parameters
TData type of the index elements

◆ createIndices() [2/2]

template<typename T >
static void Ocean::createIndices ( const size_t  numberIndices,
const T &  startIndex,
std::vector< T > &  indices 
)
inlinestatic

Fills a vector with increasing index values.

Parameters
numberIndicesNumber of indices that will be created, with range [1, infinity)
startIndexStart index value, successive indices will be incremented, with range [0, infinity)
indicesThe vector receiving the indices
Template Parameters
TData type of the index elements

◆ decryptString32()

std::wstring Ocean::decryptString32 ( const wchar_t *  value,
const unsigned int  sizePlusTwo,
const wchar_t *  key1,
const wchar_t *  key2 
)
inline

This function is part of the HIDE_STRING_32 define used internally.

See also
HIDE_STRING_32.

◆ minmax()

template<typename T >
T Ocean::minmax ( const T &  lowerBoundary,
const T &  value,
const T &  upperBoundary 
)
inline

This function fits a given parameter into a specified value range.

If the given parameter is lesser the lower boundary, the lower boundary value is returned. If the given parameter is higher the upper boundary, the upper boundary value is returned.

Parameters
lowerBoundaryLower boundary value, with range (-infinity, upperBoundary]
valueThe value to be fitted
upperBoundaryUpper boundary value, with range [lowerBoundary, infinity)
Returns
Value fitting into the given range
Template Parameters
TData type of the values

◆ mirroredBorderLocationLeft() [1/2]

unsigned int Ocean::CV::FrameFilterSeparable::mirroredBorderLocationLeft ( const int  value)
inlinestaticprotected

Mirrors a given value at the left border if necessary.

The function provides a result as below:

Original: -3 -2 -1 |  0  1  2  3  4  5  6
  Result:  2  1  0 |  0  1  2  3  4  5  6
Parameters
valueThe value to be mirrored, with range (-infinity, infinity)
Returns
Mirrored value

◆ mirroredBorderLocationLeft() [2/2]

unsigned int Ocean::CV::FrameShrinker::mirroredBorderLocationLeft ( const int  value)
inlinestaticprotected

Mirrors a given value at the left border if necessary.

The function provides a result as below:

Original: -3 -2 -1 |  0  1  2  3  4  5  6
  Result:  2  1  0 |  0  1  2  3  4  5  6
Parameters
valueThe value to be mirrored, with range (-infinity, infinity)
Returns
Mirrored value

◆ mirroredBorderLocationRight() [1/2]

unsigned int Ocean::CV::FrameFilterSeparable::mirroredBorderLocationRight ( const unsigned int  value,
const unsigned int  size 
)
inlinestaticprotected

Mirrors a given value at the right border if necessary.

The values is mirrored according to a given size parameter.
The function provides a result as below:

Original: 4  5  6 ... s-2  s-1 |   s  s+1  s+2
  Result: 4  5  6 ... s-2  s-1 | s-1  s-2  s-3
Parameters
valueThe value to be mirrored, with range [0, 2*size)
sizeSpecified size defining the upper mirror border, with range [1, 2147483647]
Returns
Mirrored value

◆ mirroredBorderLocationRight() [2/2]

unsigned int Ocean::CV::FrameShrinker::mirroredBorderLocationRight ( const unsigned int  value,
const unsigned int  size 
)
inlinestaticprotected

Mirrors a given value at the right border if necessary.

The values is mirrored according to a given size parameter.
The function provides a result as below:

Original: 4  5  6 ... s-2  s-1 |   s  s+1  s+2
  Result: 4  5  6 ... s-2  s-1 | s-1  s-2  s-3
Parameters
valueThe value to be mirrored, with range [0, 2*size)
sizeSpecified size defining the upper mirror border, with range [1, 2147483647]
Returns
Mirrored value

◆ mirrorValue()

unsigned int Ocean::mirrorValue ( const int  value,
const unsigned int  size 
)
inlinestatic

Mirrors a given value if necessary.

The values is mirrored according to a given size parameter.
The function provides a result as below:

Original: -3 -2 -1 |  0  1  2  3  4  5  6 ... s-2  s-1 |   s  s+1  s+2
  Result:  2  1  0 |  0  1  2  3  4  5  6 ... s-2  s-1 | s-1  s-2  s-3
Parameters
valueThe value to be mirrored, with range [-size, 2*size]
sizeSpecified size defining the upper mirror border, with range [1, 2147483647]
Returns
Mirrored value

◆ modulo()

template<typename T >
T Ocean::modulo ( const T &  value,
const T &  ring 
)
inline

Returns the modulo value of a given parameter within a ring allowing positive and negative parameters.

The function provides a modulo result for a ring size of 5 as below:

Original: -7 -6  | -5 -4 -3 -2 -1  |  0  1  2  3  4  |  5  6  7  9 ...
  Result:  3  4  |  0  1  2  3  4  |  0  1  2  3  4  |  0  1  2  3 ...
Parameters
valueParameter to return the module value for
ringThe ring size, must be positive with range [1, infinity)
Returns
Resulting modulo value
Template Parameters
TData type of the values

◆ oceanFalse()

template<typename T >
constexpr bool Ocean::oceanFalse ( )
inlineconstexpr

This function is a helper function returning false any time.

Returns
False, any the time
Template Parameters
TTemplate parameter that can be used, however it does not have any impact

◆ ringDistance()

template<typename T >
T Ocean::ringDistance ( const T &  value0,
const T &  value1,
const T &  ring 
)
inline

Returns the distance between two values inside defined ring.

Parameters
value0First value inside the ring, with range [0, ring)
value1Second value inside the ring, with range [0, ring)
ringThe ring size, must be positive
Returns
Resulting distance
Template Parameters
TData type of the values

◆ sqr() [1/12]

unsigned int Ocean::sqr ( const char  value)
inline

Returns the square value of a given value.

Parameters
valueThe value to be squared
Returns
Squared value

◆ sqr() [2/12]

double Ocean::sqr ( const double  value)
inline

Returns the square value of a given value.

Parameters
valueThe value to be squared
Returns
Squared value

◆ sqr() [3/12]

float Ocean::sqr ( const float  value)
inline

Returns the square value of a given value.

Parameters
valueThe value to be squared
Returns
Squared value

◆ sqr() [4/12]

unsigned int Ocean::sqr ( const int  value)
inline

Returns the square value of a given value.

Parameters
valueThe value to be squared
Returns
Squared value

◆ sqr() [5/12]

unsigned long long Ocean::sqr ( const long long  value)
inline

Returns the square value of a given value.

Parameters
valueThe value to be squared
Returns
Squared value

◆ sqr() [6/12]

unsigned long Ocean::sqr ( const long  value)
inline

Returns the square value of a given value.

Parameters
valueThe value to be squared
Returns
Squared value

◆ sqr() [7/12]

unsigned int Ocean::sqr ( const short  value)
inline

Returns the square value of a given value.

Parameters
valueThe value to be squared
Returns
Squared value

◆ sqr() [8/12]

unsigned int Ocean::sqr ( const unsigned char  value)
inline

Returns the square value of a given value.

Parameters
valueThe value to be squared
Returns
Squared value

◆ sqr() [9/12]

unsigned int Ocean::sqr ( const unsigned int  value)
inline

Returns the square value of a given value.

Parameters
valueThe value to be squared
Returns
Squared value

◆ sqr() [10/12]

unsigned long long Ocean::sqr ( const unsigned long long  value)
inline

Returns the square value of a given value.

Parameters
valueThe value to be squared
Returns
Squared value

◆ sqr() [11/12]

unsigned long Ocean::sqr ( const unsigned long  value)
inline

Returns the square value of a given value.

Parameters
valueThe value to be squared
Returns
Squared value

◆ sqr() [12/12]

unsigned int Ocean::sqr ( const unsigned short  value)
inline

Returns the square value of a given value.

Parameters
valueThe value to be squared
Returns
Squared value

◆ sqrDistance() [1/10]

unsigned int Ocean::sqrDistance ( const char  first,
const char  second 
)
inline

Returns the square distance between two values.

Parameters
firstThe first value
secondThe second value
Returns
Square distance

◆ sqrDistance() [2/10]

double Ocean::sqrDistance ( const double  first,
const double  second 
)
inline

Returns the square distance between two values.

Parameters
firstThe first value
secondThe second value
Returns
Square distance

◆ sqrDistance() [3/10]

float Ocean::sqrDistance ( const float  first,
const float  second 
)
inline

Returns the square distance between two values.

Parameters
firstThe first value
secondThe second value
Returns
Square distance

◆ sqrDistance() [4/10]

unsigned int Ocean::sqrDistance ( const int  first,
const int  second 
)
inline

Returns the square distance between two values.

Parameters
firstThe first value
secondThe second value
Returns
Square distance

◆ sqrDistance() [5/10]

unsigned long long Ocean::sqrDistance ( const long long  first,
const long long  second 
)
inline

Returns the square distance between two values.

Parameters
firstThe first value
secondThe second value
Returns
Square distance

◆ sqrDistance() [6/10]

unsigned int Ocean::sqrDistance ( const short  first,
const short  second 
)
inline

Returns the square distance between two values.

Parameters
firstThe first value
secondThe second value
Returns
Square distance

◆ sqrDistance() [7/10]

unsigned int Ocean::sqrDistance ( const unsigned char  first,
const unsigned char  second 
)
inline

Returns the square distance between two values.

Parameters
firstThe first value
secondThe second value
Returns
Square distance

◆ sqrDistance() [8/10]

unsigned int Ocean::sqrDistance ( const unsigned int  first,
const unsigned int  second 
)
inline

Returns the square distance between two values.

Parameters
firstThe first value
secondThe second value
Returns
Square distance

◆ sqrDistance() [9/10]

unsigned long long Ocean::sqrDistance ( const unsigned long long  first,
const unsigned long long  second 
)
inline

Returns the square distance between two values.

Parameters
firstThe first value
secondThe second value
Returns
Square distance

◆ sqrDistance() [10/10]

unsigned int Ocean::sqrDistance ( const unsigned short  first,
const unsigned short  second 
)
inline

Returns the square distance between two values.

Parameters
firstThe first value
secondThe second value
Returns
Square distance