def constructor( self, decomposition ): if ( self._isCopyConstructor( decomposition ) ): return self._constructorCount += 1 self._code.lineOut( "%s%s( %s )%s" % ( voodoodefs.templateLine( decomposition.templatePrefix ), self._identifier, decomposition.parametersFullSpec(), self._constructHeritage() ) ) self._code.lineOut( "{" ) VoodooExpectFunction( self._code )._try() self._code.lineOut( '\t__VoodooGrowingString growingString;' ) self._code.lineOut( '\tgrowingString.append( "Construction of " );' ) self._code.lineOut( '\tgrowingString.append( ' + 'VoodooCommon::PointerTypeString( this ).typeString() );' ) self._code.lineOut( '\t__voodooConstructingInstance() = this;' ) self._code.lineOut( '\tVoodooCommon::Expect::Multiplexer multiplexer( ' + 'growingString.result() );' ) self._implementParametersHandeling( decomposition ) self._code.lineOut( '\t__voodooSetInstanceName( "" );' ) self._code.lineOut( "\tconst void * instanceNameAsVoid;" ) self._code.lineOut( '\tmultiplexer.returnValue( "const char *", instanceNameAsVoid );' ) self._code.lineOut( "\tconst char * instanceName = (const char *) instanceNameAsVoid;" ) self._code.lineOut( '\t__voodooSetInstanceName( instanceName );' ) self._code.lineOut( '\t__voodooInsertToInstanceList();' ) self._code.lineOut( '\t__voodooConstructingInstance() = NULL;' ) VoodooExpectFunction( self._code )._catchVoodooErrorMessages() self._code.lineOut( "}" ) self._code.lineOut( "" )
def implementFakeNDClass( self, fullIdentifier ): fakeNDClass = voodoodefs.fakeNDClass( self._identifier ) self._code.lineOut( "%sclass %s : public %s%s" % ( voodoodefs.templateLine( self._templatePrefix ), fakeNDClass, self._identifier, self._passTemplateParameters() ) ) self._code.lineOut( "{" ) self._code.lineOut( "public:" ) self._code.lineOut( "\t%s( const char * instanceName = \"Fake %s\" ) :" % ( fakeNDClass, fullIdentifier ) ) self._code.lineOut( "\t\t\t%s%s( __VoodooRedirectorConstruction() )" % ( self._identifier, self._passTemplateParameters() ) ) self._code.lineOut( "\t{" ) self._code.lineOut( "\t\t%s%s::__voodooSetInstanceName( instanceName );" % ( self._identifier, self._passTemplateParameters() ) ) self._code.lineOut( "\t}" ) self._code.lineOut( "" ) self._code.lineOut( "\t~%s() " % fakeNDClass ) self._code.lineOut( "\t{" ) self._code.lineOut( "\t\t%s%s::__voodooSetInstanceName( \"\" );" % ( self._identifier, self._passTemplateParameters() ) ) self._code.lineOut( "\t}" ) self._code.lineOut( "}; // class %s" % fakeNDClass ) self._code.lineOut( "" )
def method( self, decomposition ): if decomposition.name == "operator=": self._implicitAssignmentOperator = False #todo: is operator = still named like this? if decomposition.const: const = " const" else: const = "" if decomposition.virtual: virtual = "virtual " else: virtual = "" self._code.lineOut( "%s%s%s %s( %s )%s" % ( virtual, voodoodefs.templateLine( decomposition.templatePrefix ), decomposition.returnType, decomposition.name, decomposition.parametersFullSpec(), const ) ) self._code.lineOut( "{" ) VoodooExpectFunction( self._code )._try() self._code.lineOut( '\t__VoodooGrowingString growingString;' ) self._code.lineOut( '\tgrowingString.append( "Call to " );' ) self._code.lineOut( '\tgrowingString.append( __voodooInstanceName );' ) self._code.lineOut( '\tgrowingString.append( "::" );' ) self._code.lineOut( '\tgrowingString.append( %s );' % self._instanceOfFunction( decomposition ) ) self._code.lineOut( '\tVoodooCommon::Expect::Multiplexer multiplexer( ' + 'growingString.result() );' ) self._implementParametersHandeling( decomposition ) self._implementReturnValue( decomposition ) VoodooExpectFunction( self._code )._catchVoodooErrorMessages() self._code.lineOut( "}" ) self._code.lineOut( "" )
def implementExpectingClassHeader( self ): if len( self._inherits ) > 0: inherits = " :\n\t\tpublic " + ",\n\t\tpublic ".join( self._inherits ) + "\n" else: inherits = "" self._code.lineOut( "%s%s %s%s" % ( voodoodefs.templateLine( self._templatePrefix ), self._construct, self._identifier, inherits ) ) self._code.lineOut( "{" ) self._code.increaseIndent()