PapillonCore.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2015-2018 Digital Barriers plc. All rights reserved.
3  * Contact: http://www.digitalbarriers.com/
4  *
5  * This file is part of the Papillon SDK.
6  *
7  * You can't use, modify or distribute any part of this file without
8  * the explicit written agreements of Digital Barriers.
9  */
10 
15 #pragma once
16 
17 #include <PapillonCommon.h>
18 
19 #include <PapillonSDK.h>
20 #include <PapillonVersion.h>
21 #include <PAlarm.h>
22 #include <PAnalytics.h>
23 #include <PBoxing.h>
24 #include <PByteArray.h>
25 #include <PByteStream.h>
26 #include <PClassifierInfo.h>
27 #include <PColour3i.h>
28 #include <PComparer.h>
29 #include <PConcurrentQueue.h>
31 #include <PConcurrentThread.h>
32 #include <PConfigurationFile.h>
33 #include <PDate.h>
34 #include <PDateTime.h>
35 #include <PDescriber.h>
36 #include <PDescription.h>
37 #include <PDescriptionList.h>
38 #include <PDescriptor.h>
39 #include <PDetection.h>
40 #include <PDetectionList.h>
41 #include <PDetector.h>
42 #include <PEvent.h>
43 #include <PExampleSet.h>
44 #include <PFaceMetaData.h>
45 #include <PFeatureMap.h>
46 #include <PFeaturePoint.h>
47 #include <PFeatureRectangle.h>
48 #include <PFile.h>
49 #include <PFileIO.h>
50 #include <PFileStream.h>
51 #include <PFileWatcher.h>
52 #include <PFrameToFrameTracker.h>
53 #include <PFrame.h>
54 #include <PGPSLocation.h>
55 #include <PGuid.h>
56 #include <PHash.h>
57 #include <PImage.h>
58 #include <PImageFilter.h>
59 #include <PImportExportFacesISO.h>
60 #include <PImportExportFacesNIST.h>
61 #include <PInputVideoStream.h>
62 #include <PLicensing.h>
63 #include <PList.h>
64 #include <PLog.h>
65 #include <PMap.h>
66 #include <PMapIterator.h>
67 #include <PMatchScore.h>
68 #include <PMath.h>
69 #include <PMemoryStream.h>
70 #include <PMutex.h>
71 #include <PMutexLocker.h>
72 #include <PObject.h>
73 #include <PObjectImpl.h>
74 #include <PObjectMonitoring.h>
75 #include <PObjectType.h>
76 #include <POption.h>
77 #include <POutputVideoStream.h>
78 #include <PPath.h>
79 #include <PPlugin.h>
80 #include <PPluginManager.h>
81 #include <PPoint2Df.h>
82 #include <PPoint2DfList.h>
83 #include <PPoint2Di.h>
84 #include <PPolygonf.h>
85 #include <PPolygoni.h>
86 #include <PProcess.h>
87 #include <PProperties.h>
88 #include <PReadLocker.h>
89 #include <PReadWriteLock.h>
90 #include <PRectanglef.h>
91 #include <PRectanglei.h>
92 #include <PResult.h>
93 #include <PSingleInstance.h>
94 #include <PSizef.h>
95 #include <PSizei.h>
96 #include <PSocket.h>
97 #include <PString.h>
98 #include <PStringList.h>
99 #include <PStringConstants.h>
100 #include <PSystemInfo.h>
101 #include <PTextFile.h>
102 #include <PTime.h>
103 #include <PTimer.h>
104 #include <PTrack.h>
105 #include <PUri.h>
106 #include <PUtils.h>
107 #include <PVector.h>
108 #include <PVersion.h>
109 #include <PVideoTools.h>
110 #include <PWriteLocker.h>
111 
112 #ifdef WITH_CORE_HTTP_CLASSES
113 # include <PHttpRequest.h>
114 # include <PHttpResponse.h>
115 #endif
116 
117 #ifdef WITH_CORE_STORE_CLASSES
118 # include <PDatabaseStore.h>
119 # include <PEntity.h>
120 # include <PSqlDatabase.h>
121 # include <PSqlQuery.h>
122 # include <PStore.h>
123 # include <PStoreEventListener.h>
124 # include <PStoreIterator.h>
125 #endif
126 
127 #ifdef WITH_CORE_FACEREC_CLASSES
128 # include <PEnrollment.h>
129 # include <PIdentifyResult.h>
130 # include <PIdentifyResults.h>
131 # include <PSearchList.h>
132 # include <PVerify.h>
133 # include <PWatchlist.h>
134 # include <PWatchlist2.h>
135 # include <PWatchlistOptions.h>
136 #endif
Class PPolygonf: a 2D closed polygon with float coordinates.
Class PList: an ordered collection (also known as a sequence) of heterogeneous Papillon objects...
Class PTimer: the highest precision chronometer available on the host.
Class PDetection: result of a detection performed by a PDetector object.
Class PStore: an interface to store an heterogeneous collection of Papillon objects into a container ...
Class PConcurrentThread: an object representing a thread: sequence of instructions that can be execut...
Class PPoint2Df: an immutable 2D-point with float coordinates.
Class PVector: a numeric vector for linear algebra.
Class PWatchlistOptions: holds common watchlist options.
Class PRectanglei: an axis-aligned rectangle with 32-bit int coordinates.
Class PPluginManager: the manager for all Papillon plugins.
Class PComparer: a generic comparer to compare two PDescription (typically two biometric templates)...
Class PHttpRequest: a class to ease handling of HTTP requests.
Class PClassifierInfo: a class holding information about a classifier.
Class PWriteLocker: a convenience class that simplifies locking and unlocking read-write locks for wr...
String constants.
Class PDetectionList: a collection of detections (see PDetection).
Class PDatabaseStore: a PStore with a database backend (a container to store an heterogeneous collect...
Class PHttpResponse: a class to ease processing HTTP responses.
Class POutputVideoStream: parent class for all output video streams; note that there is no output vid...
Class PFrameToFrameTracker: parent class for all frame to frame trackers; note that there is no track...
Class PGuid: an immutable Globally Unique Identifier (GUID).
Class PFileIO: generic functions to read/write Papillon objects from/to binary files.
Class PFeaturePoint: a sub-pixel accurate 2D location on an image.
Class PMutex: an object to facilitate protection against data races and allows thread-safe synchroniz...
Class PDescriptionList: a collection of detections (see PDetection).
The log system.
Enum PObjectType: all types of object detected by video analytics algorithms.
Class PPoint2Di: an immutable 2D-point with 32-bit int coordinates.
Class PConcurrentRawBufferQueue: a concurrent bounded queue of raw buffers.
Class PFile: some helper functions on files.
Class PAlarm: a service class to send alarms by email.
A singleton class to monitor Papillon Core.
Class PAnalytics: parent class for all video analytics algorithms which analyse a video stream and re...
Class PEnrollment: face recognition: an helper class to enroll people to a watchlist.
Class PReadLocker: a convenience class that simplifies locking and unlocking read-write locks for rea...
Class PStringList: a list of strings.
Class PProperties: a container of generic properties indexed by their name.
Class PMap: a generic associative container (map).
Class PPath: some helper functions to handle paths.
Class PFileWatcher: monitor files for changes.
Class PDecriber: parent class for all describers; note that there is no describers in Core...
Class PGPSLocation: a GPS location.
Class PSocket: a network socket which relies on 0-MQ distributed messaging library.
Class PWatchlist2: a collection of subjects typically used to detect a face from a list ok known peop...
Class PSingleInstance: to ensure that only one instance of an application is running.
Class PByteArray: a resizable array of bytes.
Class PSystemInfo: some helper functions to determine capabilities (CPU, RAM, GPU) of the host system...
Class PReadWriteLock: an object to facilitate protection against data races and allows thread-safe sy...
Class PMutexLocker: a convenience class that simplifies locking and unlocking mutexes.
Class PEntity: the class used to wrap any PObject and store it into a PStore (for example...
Class PImage: a 2D-image, mainly a buffer of pixels (available pixel formats are grey, BGR, RGB, RGBA, YUV, etc.)
functions to compute hash values for PString and PGuid to be able to use them as keys in std::unorder...
Class PEvent: any event detected by a video analytics.
Class PFileStream: a PByteStream (byte stream) whose backing store is a binary file.
Class PFrame: a PImage + PProperties to store optional properties (GUID of the source, timestamp, GPS location, etc.)
Class PString: an unicode character strings (use copy-on-write idiom).
Class PDescription: a container to hold a set of descriptors.
Class PSqlQuery: this class represents a SQL query and can execute and manipulate SQL statements...
Class PVersion: a software version number.
Class PStoreIterator: to iterate through a PStore container and retrieve registered objects...
Class PImageFilter: parent class for all image filters; note that there is no image filters in Core...
Class PConfigurationFile: provides a friendly interface for handling .ini configuration files...
Class PInputVideoStream: parent class for all input video streams; note that there is no input video ...
Class PLicensing: license manager used to protect Papillon software (singleton).
Class PDescriptor: a container of generic properties indexed by their name.
Class PVerify: a Face Recognition helper class to easily authenticate identities. ...
Class POption: a command line parser.
Class PDetector: parent class for all detectors; note that there is no detectors in Core...
Class PMatchScore: a score between two descriptors.
Class PStoreEventListener: an interface to be notified when an event occurs on a PStore.
Class PFeatureRectangle: a sub-pixel accurate 2D area on an image.
Class PVideoTools: some helper functions to easily manipulate video files.
Class PFeatureMap: a collection of PFeaturePoint.
Class PResult: a result returned by most of Papillon functions; this class is used to replace classic...
Class PBoxing: an immutable container to box primitive data types, like int, bool or double...
Class PDateTime: a date (Gregorian calendar) + a time + a time-zone.
Class PConcurrentQueue: a concurrent bounded queue of PObject.
Math toolbox.
Class PFaceMetaData: a class holding meta-data information about a face.
Class PColour3i: a Red-Green-Blue color (RGB), each channel encoded with one 32-bit int...
Class PUri: an Unified Resource Identifier.
Class PSqlDatabase: a connection to a database (typically SQLite3 or PostgreSQL). ...
Class PapillonSDK: contains functions to initialise and finalise the Papillon SDK.
Class PObject: the root class of all Papillon classes.
Class PTextFile: Read in a text-file into memory and give line-by-line access.
Class PTrack: Track object containing ID and extra information as confidence score.
Class PIdentifyResult: a result returned by an identification engine.
Class PProcess: A class to ease process spawning and management.
Class PSearchList: a watchlist optimised for searching; for example, it is used Face Recognition to q...
Class PExampleSet: a collection of detections (see PDetection) corresponding to the same physical obj...
Class PPoint2DfList: a list of 2D-point with float coordinates.
Some additional helper functions built on top of this SDK to be used to write examples and demos...
Class PDate: an immutable calendar date (Gregorian calendar).
Class PIdentifyResults: a collection of identification results (see PIdentifyResult).
Class PTime: an immutable time with millisecond precision.
class PRectanglef: an axis-aligned rectangle with float coordinates.
Class PByteStream: a generic view of a sequence of bytes.
Class PWatchlist: a collection of PDescription typically used to detect a face from a list ok known p...
Class PSizei: the size of an image or a rectangle represented with 2 int values.
Class PPolygoni: a 2D closed polygon with 32-bit int coordinates.
Class PPlugin: a Papillon plugin.
Class PMemoryStream: a byte stream whose backing store is memory.
Class PSizef: the size of an image or a rectangle represented with 2 float values.