parameters: (self, h_node, m_node)
docstring: If several libraries use the same classes, it is possible that moc will run several times (Issue 1318)
  		It is not possible to change the file names, but we can assume that the moc transformation will be identical,
  		and the moc tasks can be shared in a global cache.
docstring_summary: If several libraries use the same classes, it is possible that moc will run several times (Issue 1318)
  		It is not possible to change the file names, but we can assume that the moc transformation will be identical,
  		and the moc tasks can be shared in a global cache.
docstring_tokens: If several libraries use the same classes it is possible that moc will run several times ( Issue 1318 ) It is not possible to change the file names but we can assume that the moc transformation will be identical and the moc tasks can be shared in a global cache .
function: def create_moc_task(self, h_node, m_node):
  		"""
  		If several libraries use the same classes, it is possible that moc will run several times (Issue 1318)
  		It is not possible to change the file names, but we can assume that the moc transformation will be identical,
  		and the moc tasks can be shared in a global cache.
  		"""
  		try:
  			moc_cache = self.generator.bld.moc_cache
  		except AttributeError:
  			moc_cache = self.generator.bld.moc_cache = {}
  
  		try:
  			return moc_cache[h_node]
  		except KeyError:
  			tsk = moc_cache[h_node] = Task.classes['moc'](env=self.env, generator=self.generator)
  			tsk.set_inputs(h_node)
  			tsk.set_outputs(m_node)
  			tsk.env.append_unique('MOC_FLAGS', '-i')
  
  			if self.generator:
  				self.generator.tasks.append(tsk)
  
  			# direct injection in the build phase (safe because called from the main thread)
  			gen = self.generator.bld.producer
  			gen.outstanding.append(tsk)
  			gen.total += 1
  
  			return tsk
  
  		else:
  			# remove the signature, it must be recomputed with the moc task
  			delattr(self, 'cache_sig')
function_tokens: def create_moc_task ( self , h_node , m_node ) : try : moc_cache = self . generator . bld . moc_cache except AttributeError : moc_cache = self . generator . bld . moc_cache = { } try : return moc_cache [ h_node ] except KeyError : tsk = moc_cache [ h_node ] = Task . classes [ 'moc' ] ( env = self . env , generator = self . generator ) tsk . set_inputs ( h_node ) tsk . set_outputs ( m_node ) tsk . env . append_unique ( 'MOC_FLAGS' , '-i' ) if self . generator : self . generator . tasks . append ( tsk ) # direct injection in the build phase (safe because called from the main thread) gen = self . generator . bld . producer gen . outstanding . append ( tsk ) gen . total += 1 return tsk else : # remove the signature, it must be recomputed with the moc task delattr ( self , 'cache_sig' )