aqhome: more work on new event/ipc interface.
This commit is contained in:
@@ -49,6 +49,7 @@ AQH_OBJECT *AQH_Object_new(AQH_EVENT_LOOP *eventLoop)
|
||||
AQH_OBJECT *o;
|
||||
|
||||
GWEN_NEW_OBJECT(AQH_OBJECT, o);
|
||||
o->refCount=1;
|
||||
GWEN_INHERIT_INIT(AQH_OBJECT, o);
|
||||
GWEN_LIST_INIT(AQH_OBJECT, o);
|
||||
o->eventLoop=eventLoop;
|
||||
@@ -59,15 +60,25 @@ AQH_OBJECT *AQH_Object_new(AQH_EVENT_LOOP *eventLoop)
|
||||
|
||||
|
||||
|
||||
void AQH_Object_IncRefCount(AQH_OBJECT *o)
|
||||
{
|
||||
if (o && o->refCount>0)
|
||||
o->refCount++;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void AQH_Object_free(AQH_OBJECT *o)
|
||||
{
|
||||
if (o) {
|
||||
GWEN_INHERIT_FINI(AQH_OBJECT, o);
|
||||
GWEN_LIST_FINI(AQH_OBJECT, o);
|
||||
if (o && o->refCount>0) {
|
||||
if (--(o->refCount)==0) {
|
||||
GWEN_INHERIT_FINI(AQH_OBJECT, o);
|
||||
GWEN_LIST_FINI(AQH_OBJECT, o);
|
||||
|
||||
AQH_Link_List_free(o->linkList);
|
||||
AQH_Link_List_free(o->linkList);
|
||||
|
||||
GWEN_FREE_OBJECT(o);
|
||||
GWEN_FREE_OBJECT(o);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,14 +86,14 @@ void AQH_Object_free(AQH_OBJECT *o)
|
||||
|
||||
uint32_t AQH_Object_GetFlags(const AQH_OBJECT *o)
|
||||
{
|
||||
return o?o->flags:0;
|
||||
return (o && o->refCount)?o->flags:0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void AQH_Object_SetFlags(AQH_OBJECT *o, uint32_t i)
|
||||
{
|
||||
if (o)
|
||||
if (o && o->refCount)
|
||||
o->flags=i;
|
||||
}
|
||||
|
||||
@@ -90,7 +101,7 @@ void AQH_Object_SetFlags(AQH_OBJECT *o, uint32_t i)
|
||||
|
||||
void AQH_Object_AddFlags(AQH_OBJECT *o, uint32_t i)
|
||||
{
|
||||
if (o)
|
||||
if (o && o->refCount)
|
||||
o->flags|=i;
|
||||
}
|
||||
|
||||
@@ -98,7 +109,7 @@ void AQH_Object_AddFlags(AQH_OBJECT *o, uint32_t i)
|
||||
|
||||
void AQH_Object_SubFlags(AQH_OBJECT *o, uint32_t i)
|
||||
{
|
||||
if (o)
|
||||
if (o && o->refCount)
|
||||
o->flags&=~i;
|
||||
}
|
||||
|
||||
@@ -106,14 +117,14 @@ void AQH_Object_SubFlags(AQH_OBJECT *o, uint32_t i)
|
||||
|
||||
AQH_EVENT_LOOP *AQH_Object_GetEventLoop(const AQH_OBJECT *o)
|
||||
{
|
||||
return o?o->eventLoop:NULL;
|
||||
return (o && o->refCount)?o->eventLoop:NULL;
|
||||
}
|
||||
|
||||
|
||||
|
||||
AQH_LINK *_findLink(AQH_OBJECT *o, uint32_t signalId, uint32_t slotId, AQH_OBJECT *targetObject)
|
||||
{
|
||||
if (o) {
|
||||
if (o && o->refCount) {
|
||||
AQH_LINK *ln;
|
||||
|
||||
ln=AQH_Link_List_First(o->linkList);
|
||||
@@ -163,7 +174,7 @@ int AQH_Object_EmitSignal(AQH_OBJECT *o, uint32_t signalId, int param1, void *pa
|
||||
{
|
||||
int signalWasHandled=0;
|
||||
|
||||
if (o) {
|
||||
if (o && o->refCount) {
|
||||
AQH_LINK *ln;
|
||||
|
||||
ln=AQH_Link_List_First(o->linkList);
|
||||
@@ -182,7 +193,7 @@ int AQH_Object_EmitSignal(AQH_OBJECT *o, uint32_t signalId, int param1, void *pa
|
||||
|
||||
int AQH_Object_HandleSignal(AQH_OBJECT *o, uint32_t slotId, AQH_OBJECT *senderObject, int param1, void *param2)
|
||||
{
|
||||
if (o && o->signalHandlerFn)
|
||||
if (o && o->refCount && o->signalHandlerFn)
|
||||
return o->signalHandlerFn(o, slotId, senderObject, param1, param2);
|
||||
return 0;
|
||||
}
|
||||
@@ -191,7 +202,7 @@ int AQH_Object_HandleSignal(AQH_OBJECT *o, uint32_t slotId, AQH_OBJECT *senderOb
|
||||
|
||||
void AQH_Object_Enable(AQH_OBJECT *o)
|
||||
{
|
||||
if (o && o->enableFn)
|
||||
if (o && o->refCount && o->enableFn)
|
||||
o->enableFn(o);
|
||||
}
|
||||
|
||||
@@ -199,7 +210,7 @@ void AQH_Object_Enable(AQH_OBJECT *o)
|
||||
|
||||
void AQH_Object_Disable(AQH_OBJECT *o)
|
||||
{
|
||||
if (o && o->disableFn)
|
||||
if (o && o->refCount && o->disableFn)
|
||||
o->disableFn(o);
|
||||
}
|
||||
|
||||
@@ -207,7 +218,7 @@ void AQH_Object_Disable(AQH_OBJECT *o)
|
||||
|
||||
AQH_OBJECT_SIGNALHANDLER_FN AQH_Object_SetSignalHandlerFn(AQH_OBJECT *o, AQH_OBJECT_SIGNALHANDLER_FN f)
|
||||
{
|
||||
if (o) {
|
||||
if (o && o->refCount) {
|
||||
AQH_OBJECT_SIGNALHANDLER_FN oldFn;
|
||||
|
||||
oldFn=o->signalHandlerFn;
|
||||
@@ -221,7 +232,7 @@ AQH_OBJECT_SIGNALHANDLER_FN AQH_Object_SetSignalHandlerFn(AQH_OBJECT *o, AQH_OBJ
|
||||
|
||||
AQH_OBJECT_ENABLE_FN AQH_Object_SetEnableFn(AQH_OBJECT *o, AQH_OBJECT_ENABLE_FN f)
|
||||
{
|
||||
if (o) {
|
||||
if (o && o->refCount) {
|
||||
AQH_OBJECT_ENABLE_FN oldFn;
|
||||
|
||||
oldFn=o->enableFn;
|
||||
@@ -235,7 +246,7 @@ AQH_OBJECT_ENABLE_FN AQH_Object_SetEnableFn(AQH_OBJECT *o, AQH_OBJECT_ENABLE_FN
|
||||
|
||||
AQH_OBJECT_DISABLE_FN AQH_Object_SetDisableFn(AQH_OBJECT *o, AQH_OBJECT_DISABLE_FN f)
|
||||
{
|
||||
if (o) {
|
||||
if (o && o->refCount) {
|
||||
AQH_OBJECT_DISABLE_FN oldFn;
|
||||
|
||||
oldFn=o->disableFn;
|
||||
|
||||
Reference in New Issue
Block a user