xrootd
|
#include <XrdOucAppleBonjour.hh>
Classes | |
class | XrdOucAppleBonjourSearchNode |
class | XrdOucAppleBonjourSingletonCleanup |
Public Member Functions | |
int | RegisterService (XrdOucBonjourRecord &record, unsigned short port=0) |
int | SubscribeForUpdates (const char *servicetype, XrdOucBonjourUpdateCallback callback, void *context) |
int | ResolveNodeInformation (XrdOucBonjourResolutionEntry *nodeAndCallback) |
Static Public Member Functions | |
static XrdOucAppleBonjour & | getInstance () |
Private Member Functions | |
XrdOucAppleBonjour () | |
virtual | ~XrdOucAppleBonjour () |
XrdOucAppleBonjour (const XrdOucAppleBonjour &) | |
XrdOucAppleBonjour & | operator= (const XrdOucAppleBonjour &) |
Static Private Member Functions | |
static void | RegisterReply (DNSServiceRef ref, DNSServiceFlags flags, DNSServiceErrorType error, const char *name, const char *regtype, const char *domain, void *context) |
static void | BrowseReply (DNSServiceRef ref, DNSServiceFlags flags, uint32_t interfaceIndex, DNSServiceErrorType error, const char *name, const char *regtype, const char *domain, void *context) |
static void | ResolveReply (DNSServiceRef ref, DNSServiceFlags flags, uint32_t interfaceIndex, DNSServiceErrorType error, const char *fullname, const char *hostname, uint16_t port, uint16_t txtLen, const unsigned char *txtVal, void *context) |
static void * | BrowseEventLoopThread (void *context) |
Private Attributes | |
std::list < XrdOucBonjourRegisteredEntry * > | ListOfRegistrations |
pthread_t | BrowseEventLoopThreadInfo |
Static Private Attributes | |
static XrdOucAppleBonjour * | _Instance = NULL |
static XrdSysMutex | SingletonMutex |
Friends | |
class | XrdOucAppleBonjourSingletonCleanup |
XrdOucAppleBonjour::XrdOucAppleBonjour | ( | ) | [private] |
Referenced by getInstance().
XrdOucAppleBonjour::~XrdOucAppleBonjour | ( | ) | [private, virtual] |
XrdOucAppleBonjour::XrdOucAppleBonjour | ( | const XrdOucAppleBonjour & | ) | [inline, private] |
void * XrdOucAppleBonjour::BrowseEventLoopThread | ( | void * | context | ) | [static, private] |
void XrdOucAppleBonjour::BrowseReply | ( | DNSServiceRef | ref, |
DNSServiceFlags | flags, | ||
uint32_t | interfaceIndex, | ||
DNSServiceErrorType | error, | ||
const char * | name, | ||
const char * | regtype, | ||
const char * | domain, | ||
void * | context | ||
) | [static, private] |
References XrdOucBonjourSubscribedEntry::callback, XrdOucBonjourResolutionEntry::callbackID, XrdOucBonjourSubscribedEntry::context, XrdSysError::Emsg(), getInstance(), XrdOucBonjour::ListOfNodes, XrdOucBonjour::LockNodeList(), XrdOucBonjourResolutionEntry::node, ResolveNodeInformation(), XrdSysError::Say(), and XrdOucBonjour::UnLockNodeList().
Referenced by BrowseEventLoopThread().
XrdOucAppleBonjour & XrdOucAppleBonjour::getInstance | ( | ) | [static] |
Reimplemented from XrdOucBonjour.
References _Instance, XrdSysMutex::Lock(), SingletonMutex, XrdSysMutex::UnLock(), and XrdOucAppleBonjour().
Referenced by BrowseReply(), XrdOucAppleBonjourFactory::GetBonjourManager(), RegisterReply(), and ResolveReply().
XrdOucAppleBonjour& XrdOucAppleBonjour::operator= | ( | const XrdOucAppleBonjour & | ) | [inline, private] |
void XrdOucAppleBonjour::RegisterReply | ( | DNSServiceRef | ref, |
DNSServiceFlags | flags, | ||
DNSServiceErrorType | error, | ||
const char * | name, | ||
const char * | regtype, | ||
const char * | domain, | ||
void * | context | ||
) | [static, private] |
int XrdOucAppleBonjour::RegisterService | ( | XrdOucBonjourRecord & | record, |
unsigned short | port = 0 |
||
) | [virtual] |
Implements XrdOucBonjour.
References XrdSysError::Emsg(), XrdOucBonjourRecord::GetRegisteredType(), XrdOucBonjourRecord::GetReplyDomain(), XrdOucBonjourRecord::GetServiceName(), XrdOucBonjourRecord::GetTXTRecordData(), XrdOucBonjourRecord::GetTXTRecordLength(), ListOfRegistrations, XrdMonCtrCollector::port, XrdOucBonjourRegisteredEntry::port, XrdNet::Port(), XrdProtLoad::ProtoMax, XrdOucBonjourRegisteredEntry::record, RegisterReply(), and TIMEOUT.
int XrdOucAppleBonjour::ResolveNodeInformation | ( | XrdOucBonjourResolutionEntry * | nodeAndCallback | ) | [virtual] |
Implements XrdOucBonjour.
References XrdSysError::Emsg(), XrdOucBonjourNode::GetBonjourRecord(), XrdOucBonjourRecord::GetRegisteredType(), XrdOucBonjourRecord::GetReplyDomain(), XrdOucBonjourRecord::GetServiceName(), XrdOucBonjourResolutionEntry::node, ResolveReply(), and TIMEOUT.
Referenced by BrowseReply().
void XrdOucAppleBonjour::ResolveReply | ( | DNSServiceRef | ref, |
DNSServiceFlags | flags, | ||
uint32_t | interfaceIndex, | ||
DNSServiceErrorType | error, | ||
const char * | fullname, | ||
const char * | hostname, | ||
uint16_t | port, | ||
uint16_t | txtLen, | ||
const unsigned char * | txtVal, | ||
void * | context | ||
) | [static, private] |
References XrdOucBonjourRecord::AddRawTXTRecord(), XrdOucBonjourSubscribedEntry::callback, XrdOucBonjourResolutionEntry::callbackID, XrdOucBonjourSubscribedEntry::context, XrdSysError::Emsg(), XrdOucBonjourNode::GetBonjourRecord(), getInstance(), XrdOucBonjour::ListOfNodes, XrdOucBonjour::LockNodeList(), XrdOucBonjourResolutionEntry::node, XrdOucBonjourNode::SetHostName(), XrdOucBonjourNode::SetPort(), and XrdOucBonjour::UnLockNodeList().
Referenced by ResolveNodeInformation().
int XrdOucAppleBonjour::SubscribeForUpdates | ( | const char * | servicetype, |
XrdOucBonjourUpdateCallback | callback, | ||
void * | context | ||
) | [virtual] |
friend class XrdOucAppleBonjourSingletonCleanup [friend] |
XrdOucAppleBonjour * XrdOucAppleBonjour::_Instance = NULL [static, private] |
pthread_t XrdOucAppleBonjour::BrowseEventLoopThreadInfo [private] |
std::list<XrdOucBonjourRegisteredEntry *> XrdOucAppleBonjour::ListOfRegistrations [private] |
Referenced by RegisterReply(), and RegisterService().
XrdSysMutex XrdOucAppleBonjour::SingletonMutex [static, private] |