#ifndef TARGETMAPPER_H_ #define TARGETMAPPER_H_ #include #include #include #include #include #include #include #include struct TargetMapper; typedef struct TargetMapper TargetMapper; extern void TargetMapper_init(TargetMapper* this); extern TargetMapper* TargetMapper_construct(void); extern void TargetMapper_uninit(TargetMapper* this); extern void TargetMapper_destruct(TargetMapper* this); extern bool TargetMapper_mapTarget(TargetMapper* this, uint16_t targetID, NumNodeID nodeID); extern void TargetMapper_syncTargets(TargetMapper* this, struct list_head* mappings); extern void TargetMapper_getTargetIDs(TargetMapper* this, UInt16List* outTargetIDs); extern NumNodeID TargetMapper_getNodeID(TargetMapper* this, uint16_t targetID); struct TargetMapper { RWLock rwlock; /* private: */ struct rb_root _entries; /* TargetMapping */ }; #endif /* TARGETMAPPER_H_ */