Merge remote-tracking branch 'origin/2.4' into merge-2.4
Conflicts: doc/tutorials/definitions/tocDefinitions.rst modules/core/include/opencv2/core/core.hpp modules/core/src/system.cpp modules/features2d/src/freak.cpp modules/ocl/include/opencv2/ocl/ocl.hpp modules/ocl/src/cl_context.cpp modules/ocl/test/test_api.cpp
This commit is contained in:
@@ -305,6 +305,32 @@ private:
|
||||
AutoLock& operator = (const AutoLock&);
|
||||
};
|
||||
|
||||
class TLSDataContainer
|
||||
{
|
||||
private:
|
||||
int key_;
|
||||
protected:
|
||||
CV_EXPORTS TLSDataContainer();
|
||||
CV_EXPORTS ~TLSDataContainer(); // virtual is not required
|
||||
public:
|
||||
virtual void* createDataInstance() const = 0;
|
||||
virtual void deleteDataInstance(void* data) const = 0;
|
||||
|
||||
CV_EXPORTS void* getData() const;
|
||||
};
|
||||
|
||||
template <typename T>
|
||||
class TLSData : protected TLSDataContainer
|
||||
{
|
||||
public:
|
||||
inline TLSData() {}
|
||||
inline ~TLSData() {}
|
||||
inline T* get() const { return (T*)getData(); }
|
||||
private:
|
||||
virtual void* createDataInstance() const { return new T; }
|
||||
virtual void deleteDataInstance(void* data) const { delete (T*)data; }
|
||||
};
|
||||
|
||||
// The CommandLineParser class is designed for command line arguments parsing
|
||||
|
||||
class CV_EXPORTS CommandLineParser
|
||||
|
Reference in New Issue
Block a user