code: def DbAddDevice(self, argin):
          
          self._log.debug("In DbAddDevice()")
  
          if len(argin) < 3:
              self.warn_stream("DataBase::AddDevice(): incorrect number of input arguments ")
              th_exc(DB_IncorrectArguments,
                     "incorrect no. of input arguments, needs at least 3 (server,device,class)",
                     "DataBase::AddDevice()")
  
          self.info_stream("DataBase::AddDevice(): insert %s server with device %s",argin[0],argin[1])
          server_name, d_name, klass_name = argin[:3]
          if len(argin) > 3:
              alias = argin[3]
          else:
              alias = None
  
          ret, dev_name, dfm = check_device_name(d_name)
          if not ret:
              th_exc(DB_IncorrectDeviceName,
                    "device name (" + d_name + ") syntax error (should be [tango:][//instance/]domain/family/member)",
                    "DataBase::AddDevice()")
          # Lock table
          self.db.add_device(server_name, (dev_name, dfm) , klass_name, alias=alias)
docs: Add a Tango class device to a specific device server
  
          :param argin: Str[0] = Full device server process name
          Str[1] = Device name
          Str[2] = Tango class name
          :type: tango.DevVarStringArray
          :return:
          :rtype: tango.DevVoid