[e-lang] JOSS PBC works between rune instances, not between local VATs?
Martin Scheffler
martinscheffler at googlemail.com
Tue Jan 30 10:08:38 CST 2007
Hi,
I have some Java geometry classes: Quaternion, Vector3D. These classes
implement JOSSPassByConstruction. I pass objects of these classes
happily between my client and server, and they arrive as :near.
Now I tried to create a Vat with makeVat. When I pass a vector to that
vat, it arrives as a proxy!
BTW: My server and clients do connection setup just like
persist-echat, there it works perfectly.
Thanks,
Martin
Testcase:
#------------------------------- test.e -----------------------------
pragma.syntax("0.9")
def scriptSource:=" def tester(josstest) :void {
println(`Other Vat: Is Pass by Copy: ${Ref.isPassByCopy(josstest)}`)
println(`Other Vat: Is Pass by Construction: ${Ref.isPBC(josstest)}`)
} "
def makeVat := <unsafe:org.erights.e.elib.vat.makeVat>
def seedVat := <elang:interp.seedVatAuthor>(<unsafe>)
def vat := makeVat.make("headless", "testvat")
def scriptObj:= seedVat(vat, scriptSource)
def josstest:=<import:de.flowdev.emonkey.maketestJOSSPBC>()
println(`This Vat: Is Pass by Copy: ${Ref.isPassByCopy(josstest)}`)
println(`This Vat: Is Pass by Construction: ${Ref.isPBC(josstest)}`)
def vec:=scriptObj<-run(josstest)
#Output:
#This Vat: Is Pass by Copy: false
#This Vat: Is Pass by Construction: true
#Other Vat: Is Pass by Copy: false
#Other Vat: Is Pass by Construction: false
#------------------------- testJOSSPBC.safej ------------------------
class(
safe,
"de.flowdev.emonkey.testJOSSPBC",
statics(
method("run()")
),
methods(
)
)
#-------------------------- testJOSSPBC.java -----------------------
package de.flowdev.emonkey;
import java.io.Serializable;
import org.erights.e.elib.serial.JOSSPassByConstruction;
public class testJOSSPBC implements Serializable, JOSSPassByConstruction {
private static final long serialVersionUID = 232067208534L;
public testJOSSPBC() {
//nothing
}
}
More information about the e-lang
mailing list