Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

pqxx::internal::PQAlloc< T > Class Template Reference

Keep track of a libpq-allocated pointer to be free()d automatically. More...

#include <util.hxx>

List of all members.

Public Types

typedef T content_type

Public Member Functions

 PQAlloc ()
 PQAlloc (T *obj)
 Assume ownership of a pointer.
 ~PQAlloc () throw ()
PQAllocoperator= (T *obj) throw ()
 Assume ownership of a pointer, freeing the previous one (if any).
 operator bool () const throw ()
 Is this pointer non-null?
bool operator! () const throw ()
 Is this pointer null?
T * operator-> () const throw (PGSTD::logic_error)
 Dereference pointer.
T & operator * () const throw (PGSTD::logic_error)
 Dereference pointer.
T * c_ptr () const throw ()
 Obtain underlying pointer.
void close () throw ()
 Free and reset current pointer (if any).


Detailed Description

template<typename T>
class pqxx::internal::PQAlloc< T >

Keep track of a libpq-allocated pointer to be free()d automatically.

Ownership policy is simple: object dies when PQAlloc object's value does. If the available PostgreSQL development files supply PQfreemem() or PQfreeNotify(), this is used to free the memory. If not, free() is used instead. This matters on Windows, where memory allocated by a DLL must be freed by the same DLL.


Member Typedef Documentation

template<typename T>
typedef T pqxx::internal::PQAlloc< T >::content_type
 


Constructor & Destructor Documentation

template<typename T>
pqxx::internal::PQAlloc< T >::PQAlloc  ) 
 

template<typename T>
pqxx::internal::PQAlloc< T >::PQAlloc T *  obj  )  [explicit]
 

Assume ownership of a pointer.

template<typename T>
pqxx::internal::PQAlloc< T >::~PQAlloc  )  throw ()
 


Member Function Documentation

template<typename T>
T* pqxx::internal::PQAlloc< T >::c_ptr  )  const throw ()
 

Obtain underlying pointer.

Ownership of the pointer's memory remains with the PQAlloc object

Reimplemented in pqxx::binarystring.

template<typename T>
void pqxx::internal::PQAlloc< T >::close  )  throw ()
 

Free and reset current pointer (if any).

template<typename T>
T& pqxx::internal::PQAlloc< T >::operator *  )  const throw (PGSTD::logic_error)
 

Dereference pointer.

Throws a logic_error if the pointer is null.

template<typename T>
pqxx::internal::PQAlloc< T >::operator bool  )  const throw ()
 

Is this pointer non-null?

template<typename T>
bool pqxx::internal::PQAlloc< T >::operator!  )  const throw ()
 

Is this pointer null?

template<typename T>
T* pqxx::internal::PQAlloc< T >::operator->  )  const throw (PGSTD::logic_error)
 

Dereference pointer.

Throws a logic_error if the pointer is null.

template<typename T>
PQAlloc& pqxx::internal::PQAlloc< T >::operator= T *  obj  )  throw ()
 

Assume ownership of a pointer, freeing the previous one (if any).

If the new and the old pointer are identical, no action is performed.


The documentation for this class was generated from the following file:
Generated on Sat Aug 21 03:39:35 2004 for libpqxx by doxygen 1.3.8