FLImaging 6.5.8.1
FLBase.h
1#pragma once
2
11#include <stdint.h>
12#include <type_traits>
13#include <typeinfo>
14
15#include "FLLibTags.h"
16#include "DefinitionsBase.h"
17
19namespace FLImaging
20{
22 namespace Base
23 {
24 class CFLBaseInternal;
25 class CProcessingUnitBase;
26 class CBroadcastMessage;
27
35 class FL_EXPORT CFLBase
36 {
37 SupportToDuplicateAbstractObject(CFLBase);
38
39 public:
48
56 virtual ~CFLBase();
57
58
66 void Lock() const;
67
77 bool TryLock() const;
78
86 void Unlock() const;
87
99 virtual const CProcessingUnitBase* GetProcessingUnit() const;
100
117
134
142 virtual void ResetProcessingUnit();
143
153 virtual bool IsValid() const;
154
166 template <class T>
167 bool IsValid(T& tValue) const;
168
180 template <class T>
181 bool IsValid(T* pTValue) const;
182
192 template <class T>
193 void GenerateMin(T& tValue) const;
194
204 template <class T>
205 void GenerateMin(T* pTValue) const;
206
216 template <class T>
217 void GenerateMinInt32(T& tValue) const;
218
228 template <class T>
229 void GenerateMinInt32(T* pTValue) const;
230
240 template <class T>
241 void GenerateMinInt31(T& tValue) const;
242
252 template <class T>
253 void GenerateMinInt31(T* pTValue) const;
254
264 template <class T>
265 void GenerateMax(T& tValue) const;
266
276 template <class T>
277 void GenerateMax(T* pTValue) const;
278
288 template <class T>
289 void GenerateMaxInt32(T& tValue) const;
290
300 template <class T>
301 void GenerateMaxInt32(T* pTValue) const;
302
312 template <class T>
313 void GenerateMaxInt31(T& tValue) const;
314
324 template <class T>
325 void GenerateMaxInt31(T* pTValue) const;
326
336 template <class T>
337 void GenerateInvalid(T& tValue) const;
338
348 template <class T>
349 void GenerateInvalid(T* pTValue) const;
350
362 virtual void OnReceiveBroadcast(const CBroadcastMessage* pMessage);
363
373 virtual int64_t GetClassType() const = 0;
374
384 const char* GetClassNameWithNamespace() const;
385
395 const char* GetClassNameWithoutNamespace() const;
396
406 virtual uint32_t GetClassHash() const;
407
417 virtual bool IsLicenseAvailable() const;
418
432 const CResult ShareSynchronizationObject(const CFLBase* pSrcObject) const;
433
444
458 virtual void Throw(const CResult& res, const wchar_t* pWcsExtraMessage = nullptr) const;
459
473 virtual void Throw(const std::exception& res, const wchar_t* pWcsExtraMessage) const;
474
476 // For CLR
477 virtual size_t GetHandle() const;
478 virtual void SetHandle(size_t stHandle);
479
480 virtual size_t GetHandleType() const;
481 virtual void SetHandleType(size_t stHandleType);
483
484
485 private:
486
487 volatile CFLBaseInternal* m_pInternal;
488 };
489 }
490}
브로드캐스트 메시지 클래스
Definition BroadcastMessage.h:27
FLImaging의 최상위 기저 클래스
Definition FLBase.h:36
virtual uint32_t GetClassHash() const
실제 인스턴스의 클래스 해쉬 값을 반환합니다. 같은 클래스에 대해서는 인스턴스가 달라도 동일한 값을 가지게 됩니다.
const CResult ShareSynchronizationObject(const CFLBase *pSrcObject) const
원본 객체의 동기화 객체를 공유
bool IsSharedSynchronizationObject() const
공유 동기화 객체를 사용 중인지 여부
void GenerateMaxInt31(T &tValue) const
부호있는 31비트 정수 최댓값 생성
virtual void ResetProcessingUnit()
설정된 ProcessingUnit을 해제
void GenerateMin(T *pTValue) const
해당 타입의 최소값 생성
const char * GetClassNameWithoutNamespace() const
실제 인스턴스의 namespace를 포함하지 않은 클래스 명을 반환한다.
virtual bool IsLicenseAvailable() const
현재 보유한 라이선스로 해당 알고리즘을 사용할 수 있는지에 대한 여부를 반환 합니다.
void Unlock() const
객체를 Unlock
void GenerateMaxInt31(T *pTValue) const
부호있는 31비트 정수 최댓값 생성
virtual const CProcessingUnitBase * GetProcessingUnit() const
설정된 ProcessingUnit을 반환
void Lock() const
객체에 Lock을 설정
bool IsValid(T &tValue) const
입력 값 유효성 확인
virtual void Throw(const std::exception &res, const wchar_t *pWcsExtraMessage) const
예외를 발생 시킵니다. 발생 시킨 객체의 정보와 오류 코드가 로그에 기록 됩니다.
void GenerateMaxInt32(T *pTValue) const
부호있는 32비트 정수 최댓값 생성
void GenerateInvalid(T *pTValue) const
Invalid값 생성
void GenerateMinInt32(T *pTValue) const
부호있는 32비트 정수 최소값 생성
void GenerateInvalid(T &tValue) const
Invalid값 생성
virtual const CResult SetProcessingUnit(const CProcessingUnitBase *pPub)
ProcessingUnit을 설정
virtual int64_t GetClassType() const =0
Class의 Type 값을 반환한다. 반환되는 값 자체는 의미가 없으나 같은 종류의 클래스인 경우 같은 값이 나오게 되어 비교가 가능하다.
virtual void Throw(const CResult &res, const wchar_t *pWcsExtraMessage=nullptr) const
예외를 발생 시킵니다. 발생 시킨 객체의 정보와 오류 코드가 로그에 기록 됩니다.
virtual void OnReceiveBroadcast(const CBroadcastMessage *pMessage)
Callback 함수. BroadcastMessage를 수신받는 함수
const char * GetClassNameWithNamespace() const
실제 인스턴스의 namespace를 포함한 클래스 명을 반환한다.
void GenerateMax(T *pTValue) const
해당 타입의 최댓값 생성
virtual ~CFLBase()
소멸자
void GenerateMaxInt32(T &tValue) const
부호있는 32비트 정수 최댓값 생성
void GenerateMinInt31(T &tValue) const
부호있는 31비트 정수 최소값 생성
void GenerateMinInt32(T &tValue) const
부호있는 32비트 정수 최소값 생성
bool IsValid(T *pTValue) const
입력 값 유효성 확인
virtual const CResult SetProcessingUnit(const CProcessingUnitBase &pub)
ProcessingUnit을 설정
bool TryLock() const
객체에 Lock을 시도 합니다.
void GenerateMin(T &tValue) const
해당 타입의 최소값 생성
void GenerateMax(T &tValue) const
해당 타입의 최댓값 생성
virtual bool IsValid() const
객체 유효성 확인
CFLBase()
기본 생성자
void GenerateMinInt31(T *pTValue) const
부호있는 31비트 정수 최소값 생성
프로세싱 유닛 기초 클래스
Definition ProcessingUnitBase.h:27
FLImaging 모듈의 수행 결과 객체
Definition ResultsDef.h:1514