#NEWLINE# def expose( self , name , method , args , doc ) : #NEWLINE# #INDENT# "Exposes a method in 'self.action name *args' to the class\n           droned.services.drone.DroneServer for remote invocation over\n           the blaster protocol\n\n           @param name: (string)\n           @param method: (callable)\n           @param args: tuple((string), ...) -> named positional arguments\n           @param doc: (string) -> administative documentation .. (ie usage)\n\n           @return None\n        " #NEWLINE# if ( name in self . exposedMethods ) : #NEWLINE# #INDENT# raise AttributeError ( ( 'method %s is already reserved in %s' % ( name , str ( self ) ) ) ) #NEWLINE# #UNINDENT# self . exposedMethodInfo . append ( ( name , args , doc ) ) #NEWLINE# self . exposedMethods [ name ] = self