00001 #ifndef POINTER_WRAPPER_H 00002 #define POINTER_WRAPPER_H 00003 00004 #include "iokernel_forwarders.h" 00005 00006 class PointerWrapper { 00007 public: 00008 PointerWrapper(const ObjectWrapper &obj); 00009 PointerWrapper(Address address, const PointerMetaClass *meta_class); 00010 PointerWrapper(const PointerWrapper &other); 00011 00012 PointerWrapper &operator=(const PointerWrapper &other); 00013 00014 ObjectWrapper get_object() const; 00015 ObjectWrapper dereference() const; 00016 00017 bool is_null() const; 00018 00019 const PointerMetaClass *get_meta_class() const; 00020 Address get_address() const; 00021 00022 static bool is_pointer(const ObjectWrapper &obj); 00023 00024 private: 00025 const PointerMetaClass *_meta_class; 00026 Address _address; 00027 }; 00028 00029 #endif /* POINTER_WRAPPER_H */