//This file is automatically generated. DO NOT EDIT!
package com.robotraconteur.testing.TestService3;
import java.util.*;
import com.robotraconteur.*;
public class obj2_stub extends ServiceStub implements obj2, async_obj2 {
    public obj2_stub(WrappedServiceStub innerstub) {
        super(innerstub); 
    }
    public double[] get_d1() {
    return MessageElementUtil.<double[]>unpackArray(rr_innerstub.propertyGet("d1"));
    }
    public void set_d1(double[] value) {
    MessageElement m=null;
    try {
    m=MessageElementUtil.<double[]>packArray("value",value);
    rr_innerstub.propertySet("d1", m);
    }
    finally {
    if (m!=null) m.delete();
    }
    }
    public void dispatchEvent(String rr_membername, vectorptr_messageelement rr_m) {
    }
    public MessageElement callbackCall(String rr_membername, vectorptr_messageelement rr_m) {
    throw new MemberNotFoundException("Member not found");
    }
    public void async_get_d1(Action2<double[],RuntimeException> rr_handler, int rr_timeout)
    {
    rr_async_PropertyGet("d1",new rrend_async_get_d1(),rr_handler,rr_timeout);
    }
    protected class rrend_async_get_d1 implements Action3<MessageElement,RuntimeException,Object> {
    public void action(MessageElement value ,RuntimeException err,Object param)
    {
    Action2<double[],RuntimeException> rr_handler=(Action2<double[],RuntimeException>)param;
    if (err!=null)
    {
    rr_handler.action(null,err);
    return;
    }
    double[] rr_ret;
    try {
    rr_ret=MessageElementUtil.<double[]>unpackArray(value);
    } catch (RuntimeException err2) {
    rr_handler.action(null,err2);
    return;
    }
    rr_handler.action(rr_ret,null);
    }
    }
    public void async_set_d1(double[] value, Action1<RuntimeException> rr_handler, int rr_timeout)
    {
    MessageElement m=null;
    try {
    m=MessageElementUtil.<double[]>packArray("value",value);
    rr_async_PropertySet("d1",m,new rrend_async_set_d1(),rr_handler,rr_timeout);
    }
    finally {
    if (m!=null) m.delete();
    }
    }
    protected class rrend_async_set_d1 implements Action3<MessageElement,RuntimeException,Object> {
    public void action(MessageElement m ,RuntimeException err,Object param)
    {
    Action1<RuntimeException> rr_handler=(Action1<RuntimeException>)param;
    if (err!=null)
    {
    rr_handler.action(err);
    return;
    }
    rr_handler.action(null);
    }
    }
}
