/* ###### Find CSPObject in storage ###################################### */ struct CSPObject* findCSPObject(struct SimpleRedBlackTree* objectStorage, const uint64_t id) { struct SimpleRedBlackTreeNode* node; struct CSPObject cmpCSPObject; cmpCSPObject.Identifier = id; node = simpleRedBlackTreeFind(objectStorage, &cmpCSPObject.StorageNode); if(node) { return((struct CSPObject*)node); } return(NULL); }
/* ###### Get RSerPool socket for given descriptor ####################### */ struct RSerPoolSocket* getRSerPoolSocketForDescriptor(int sd) { struct RSerPoolSocket* rserpoolSocket; struct RSerPoolSocket cmpSocket; cmpSocket.Descriptor = sd; threadSafetyLock(&gRSerPoolSocketSetMutex); rserpoolSocket = (struct RSerPoolSocket*)simpleRedBlackTreeFind(&gRSerPoolSocketSet, &cmpSocket.Node); threadSafetyUnlock(&gRSerPoolSocketSetMutex); if(rserpoolSocket == NULL) { LOG_ERROR fprintf(stdlog, "Bad RSerPool socket descriptor %d\n", sd); LOG_END_FATAL }