ExternalLibraryFunction.st
changeset 23831 c741a73646f0
parent 23829 209adc65cf44
child 23834 3edb64074d7b
equal deleted inserted replaced
23830:802fef671b06 23831:c741a73646f0
   246 "
   246 "
   247 ! !
   247 ! !
   248 
   248 
   249 !ExternalLibraryFunction class methodsFor:'instance creation'!
   249 !ExternalLibraryFunction class methodsFor:'instance creation'!
   250 
   250 
       
   251 name:functionName module:moduleName callType:callTypeSymbol returnType:returnType argumentTypes:argTypes
       
   252     ^ self new
       
   253         name:functionName module:moduleName
       
   254         returnType:returnType argumentTypes:argTypes;
       
   255         callType:callTypeSymbol
       
   256 
       
   257     "Created: / 04-03-2019 / 11:00:57 / Claus Gittinger"
       
   258 !
       
   259 
   251 name:functionName module:moduleName returnType:returnType argumentTypes:argTypes
   260 name:functionName module:moduleName returnType:returnType argumentTypes:argTypes
   252     ^ self new
   261     ^ self new
   253 	name:functionName module:moduleName
   262 	name:functionName module:moduleName
   254 	returnType:returnType argumentTypes:argTypes
   263 	returnType:returnType argumentTypes:argTypes
   255 
   264 
   754     "specify this as a virtual c++-function"
   763     "specify this as a virtual c++-function"
   755 
   764 
   756     flags := flags bitOr: FLAG_VIRTUAL.
   765     flags := flags bitOr: FLAG_VIRTUAL.
   757 
   766 
   758     "Created: / 01-08-2006 / 13:56:48 / cg"
   767     "Created: / 01-08-2006 / 13:56:48 / cg"
       
   768 !
       
   769 
       
   770 callType:aSymbol
       
   771     (aSymbol sameAs:'api') ifTrue:[
       
   772         self beCallTypeAPI.
       
   773         ^ self.
       
   774     ].
       
   775     (aSymbol sameAs:'ole') ifTrue:[
       
   776         self beCallTypeOLE.
       
   777         ^ self.
       
   778     ].
       
   779     (aSymbol sameAs:'c') ifTrue:[
       
   780         self beCallTypeC.
       
   781         ^ self.
       
   782     ].
       
   783     (aSymbol sameAs:'objc') ifTrue:[
       
   784         self beObjectiveC.
       
   785         ^ self.
       
   786     ].
       
   787     (aSymbol sameAs:'virtualCPP') ifTrue:[
       
   788         self beCallTypeC.
       
   789         self beVirtualCPP.
       
   790         ^ self.
       
   791     ].
       
   792     self error:'unknown calltype'
       
   793 
       
   794     "Created: / 04-03-2019 / 11:02:12 / Claus Gittinger"
   759 !
   795 !
   760 
   796 
   761 callTypeNumber
   797 callTypeNumber
   762     ^ flags bitAnd: CALLTYPE_MASK.
   798     ^ flags bitAnd: CALLTYPE_MASK.
   763 
   799