00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef __HOM_PtrOrNull_h__
00028 #define __HOM_PtrOrNull_h__
00029
00030 #include <string.h>
00031
00032 template <typename T>
00033 class HOM_PtrOrNull
00034 {
00035 public:
00036 HOM_PtrOrNull(T *pointer = NULL)
00037 : myPointer(pointer)
00038 {}
00039
00040 T *myPointer;
00041 };
00042
00043 #ifdef SWIG
00044
00045
00046 %define %add_ptr_or_null_typemap(Type)
00047 %typemap(in) HOM_PtrOrNull<Type> {
00048 void *result = NULL;
00049 int succeeded = SWIG_ConvertPtr($input, &result, SWIGTYPE_p_ ## Type, 0);
00050 $1 = HOM_PtrOrNull<Type>(
00051 SWIG_IsOK(succeeded) ? reinterpret_cast<Type *>(result) : NULL);
00052 }
00053 %enddef
00054 #endif
00055
00056 #endif