summaryrefslogtreecommitdiffhomepage
path: root/FaceTrackNoIR/AutoClosePtr.h
diff options
context:
space:
mode:
authorWim Vriend <facetracknoir@gmail.com>2012-09-22 14:44:47 +0000
committerWim Vriend <facetracknoir@gmail.com>2012-09-22 14:44:47 +0000
commite883e08c569d50f1eb0bd800167dd06167ab9bda (patch)
tree04a0c8e2a33459a66adfb8b3047df9c278d11315 /FaceTrackNoIR/AutoClosePtr.h
parent55cca927c53418bb35eb0de14c6942a56f474390 (diff)
Removed Excel-server
git-svn-id: svn+ssh://svn.code.sf.net/p/facetracknoir/code@158 19e81ba0-9b1a-49c3-bd6c-561e1906d5fb
Diffstat (limited to 'FaceTrackNoIR/AutoClosePtr.h')
-rw-r--r--FaceTrackNoIR/AutoClosePtr.h89
1 files changed, 0 insertions, 89 deletions
diff --git a/FaceTrackNoIR/AutoClosePtr.h b/FaceTrackNoIR/AutoClosePtr.h
deleted file mode 100644
index 690d2c62..00000000
--- a/FaceTrackNoIR/AutoClosePtr.h
+++ /dev/null
@@ -1,89 +0,0 @@
-////////////////////////////////////////////////////////////////////////////////
-// Auto pointer template.
-
-#if !defined(AUTOCLOSEPTR_H)
-#define AUTOCLOSEPTR_H
-
-//////////////////////////////////////////////////////////////////////////////
-// T auto pointer (not suitable for containers).
-// This auto pointer uses T's member function to perform clean up, rather
-// than `operator Closeete'.
-//
-template<typename T, typename R, R (T::*Close)()>
-class AutoClosePtr
-{
-public:
- explicit AutoClosePtr(T* p = NULL)
- : m_p(p)
- { // construct from object pointer
- }
-
- AutoClosePtr(AutoClosePtr& Other)
- : m_p(Other.Release())
- { // construct from Other AutoClosePtr
- }
-
- AutoClosePtr& operator=(AutoClosePtr& Other)
- { // assign Other
- Reset(Other.Release());
- return (*this);
- }
-
- ~AutoClosePtr()
- { // close and destroy
- if(m_p)
- {
- (m_p->*Close)();
- m_p = NULL;
- }
- }
-
- T& operator*() const
- { // return T
- return (*m_p);
- }
-
- T** operator&()
- { // return the address of the wrapped pointer
- Reset();
- return &m_p;
- }
-
- T* operator->() const
- { // return wrapped pointer
- return Get();
- }
-
- operator bool() const
- { // check wrapped pointer for NULL
- return m_p != NULL;
- }
-
- T* Get() const
- { // return wrapped pointer
- return m_p;
- }
-
- T* Release()
- { // return wrapped pointer and give up ownership
- T* pTmp = m_p;
- m_p = NULL;
- return pTmp;
- }
-
- void Reset(T* p = NULL)
- { // destroy the object and store new pointer
- if(p != m_p)
- {
- if(m_p)
- (m_p->*Close)();
- }
-
- m_p = p;
- }
-
-private:
- T* m_p; // the wrapped raw pointer
-};
-
-#endif // AUTOCLOSEPTR_H \ No newline at end of file