#include "AtxInterfaces.h"
#include "AtxDefs.h"
#include "AtxTypes.h"
#include "AtxDebug.h"
Go to the source code of this file.
Defines | |
| #define | ATX_DESTROY_OBJECT(object) |
| Macro to destroy an object through the ATX_Destroyable interface. | |
| #define | ATX_IMPLEMENT_DESTROYABLE_INTERFACE(_class) |
Functions | |
|
ATX_END_INTERFACE_DEFINITION ATX_Result | ATX_Destroyable_Destroy (ATX_Destroyable *self) |
Variables | |
| ATX_Result(*) | Destroy (ATX_Destroyable *self) |
| Destroys the object instance. | |
| #define ATX_DESTROY_OBJECT | ( | object | ) |
Value:
do { \ if (object) { \ ATX_Destroyable* destroyable = ATX_CAST(object, ATX_Destroyable); \ ATX_ASSERT(destroyable != NULL); \ ATX_Destroyable_Destroy(destroyable); \ object = NULL; \ } \ } while(0)
This macro will first try to get an ATX_Destroyable intrerface for an object. If the object does not implement the ATX_Destroyable interface, an exception is thrown. If the object implements the ATX_Destroyble interface, the macro calls the Destroy() method. As a side effect, this macro clears its object reference argument, making it a NULL object reference.
| #define ATX_IMPLEMENT_DESTROYABLE_INTERFACE | ( | _class | ) |
Value:
ATX_IMPLEMENT_GET_INTERFACE_ADAPTER(_class, ATX_Destroyable) \ static const ATX_DestroyableInterface \ _class##_ATX_DestroyableInterface = { \ ATX_GET_INTERFACE_ADAPTER(_class, ATX_Destroyable), \ _class##_Destroy \ };
| ATX_Result(*) Destroy(ATX_Destroyable *self) |
Destroys the object instance.
After destroying an instance, that instance can no longer be used (clients can no longer call any of the methods on that instance)
| self | Pointer the the object on which this method is called |