41     """ Keeps track of how many times a client has requested to advertise    44     A client could advertise and unadvertise a topic multiple times, and we    45     must make sure that the underlying publisher is only created and destroyed    46     at the appropriate moments    61         manager.register(self.
client_id, self.
topic, msg_type, latch=latch, queue_size=queue_size)
    77     advertise_msg_fields = [(
True, 
"topic", string_types), (
True, 
"type", string_types)]
    78     unadvertise_msg_fields = [(
True, 
"topic", string_types)]
    84         Capability.__init__(self, protocol)
    87         protocol.register_operation(
"advertise", self.
advertise)
    88         protocol.register_operation(
"unadvertise", self.
unadvertise)
    93         if protocol.parameters 
and "unregister_timeout" in protocol.parameters:
    94             manager.unregister_timeout = protocol.parameters.get(
"unregister_timeout")
    98         aid = message.get(
"id", 
None)
   101         topic = message[
"topic"]
   102         msg_type = message[
"type"]
   103         latch = message.get(
"latch", 
False)
   104         queue_size = message.get(
"queue_size", 100)
   106         if Advertise.topics_glob 
is not None and Advertise.topics_glob:
   107             self.
protocol.log(
"debug", 
"Topic security glob enabled, checking topic: " + topic)
   109             for glob 
in Advertise.topics_glob:
   110                 if (fnmatch.fnmatch(topic, glob)):
   111                     self.
protocol.log(
"debug", 
"Found match with glob " + glob + 
", continuing advertisement...")
   115                 self.
protocol.log(
"warn", 
"No match found for topic, cancelling advertisement of: " + topic)
   118             self.
protocol.log(
"debug", 
"No topic security glob, not checking advertisement.")
   126         self.
_registrations[topic].register_advertisement(msg_type, aid, latch, queue_size)
   130         aid = message.get(
"id", 
None)
   133         topic = message[
"topic"]
   135         if Advertise.topics_glob 
is not None and Advertise.topics_glob:
   136             self.
protocol.log(
"debug", 
"Topic security glob enabled, checking topic: " + topic)
   138             for glob 
in Advertise.topics_glob:
   139                 if (fnmatch.fnmatch(topic, glob)):
   140                     self.
protocol.log(
"debug", 
"Found match with glob " + glob + 
", continuing unadvertisement...")
   144                 self.
protocol.log(
"warn", 
"No match found for topic, cancelling unadvertisement of: " + topic)
   147             self.
protocol.log(
"debug", 
"No topic security glob, not checking unadvertisement.")
   161             registration.unregister()
   163         self.
protocol.unregister_operation(
"advertise")
   164         self.
protocol.unregister_operation(
"unadvertise")
 
list advertise_msg_fields
def __init__(self, client_id, topic)
def __init__(self, protocol)
list unadvertise_msg_fields
def register_advertisement(self, msg_type, adv_id=None, latch=False, queue_size=100)
def unregister_advertisement(self, adv_id=None)
def unadvertise(self, message)
def basic_type_check(self, msg, types_info)
def advertise(self, message)