Add a bunch of APNs
Fork of C027_Support by
Diff: Pipe.h
- Revision:
- 5:5362073f2689
- Parent:
- 2:b6012cd91657
- Child:
- 7:9aa830f5811e
diff -r c959dd4c5fe8 -r 5362073f2689 Pipe.h --- a/Pipe.h Fri Oct 25 17:50:17 2013 +0000 +++ b/Pipe.h Sat Nov 02 16:08:20 2013 +0000 @@ -12,17 +12,18 @@ return i; } public: - Pipe(int n) + Pipe(int n, T* p = NULL) { + a = p ? NULL : new T[n]; r = 0; w = 0; - n ++; // we add one more element to be able to identify empty from full - b = new T[n]; + b = p ? p : a; s = n; } virtual ~Pipe() { - delete [] b; + if (a) + delete [] a; } // writing thread bool writeable(void) // = not full @@ -123,6 +124,7 @@ private: // buffer T* b; //!< buffer + T* a; //!< allocated buffer int s; //!< size of buffer (s - 1) elements can be stored volatile int w; //! write index volatile int r; //! read index