$sp($(spaces))#region $(typename)DataReader
$sp($(spaces))public class $(typename)DataReader : DDS.OpenSplice.DataReader, I$(typename)DataReader
$sp($(spaces)){
$sp($(spaces))    private $(typename)TypeSupport typeSupport;

$sp($(spaces))    public $(typename)DataReader($(typename)TypeSupport ts, IntPtr gapiPtr)
$sp($(spaces))        : base(gapiPtr)
$sp($(spaces))    {
$sp($(spaces))        typeSupport = ts;
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode Read(
$sp($(spaces))        ref $(typename)[] dataValues,
$sp($(spaces))        ref SampleInfo[] sampleInfos)
$sp($(spaces))    {
$sp($(spaces))        return Read(ref dataValues, ref sampleInfos, Length.Unlimited);
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode Read(
$sp($(spaces))        ref $(typename)[] dataValues,
$sp($(spaces))        ref SampleInfo[] sampleInfos,
$sp($(spaces))        int maxSamples)
$sp($(spaces))    {
$sp($(spaces))        return Read(ref dataValues, ref sampleInfos, maxSamples, SampleStateKind.Any,
$sp($(spaces))            ViewStateKind.Any, InstanceStateKind.Any);
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode Read(
$sp($(spaces))        ref $(typename)[] dataValues,
$sp($(spaces))        ref SampleInfo[] sampleInfos,
$sp($(spaces))        SampleStateKind sampleStates,
$sp($(spaces))        ViewStateKind viewStates,
$sp($(spaces))        InstanceStateKind instanceStates)
$sp($(spaces))    {
$sp($(spaces))        return Read(ref dataValues, ref sampleInfos, Length.Unlimited, sampleStates,
$sp($(spaces))            viewStates, instanceStates);
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode Read(
$sp($(spaces))            ref $(typename)[] dataValues,
$sp($(spaces))            ref SampleInfo[] sampleInfos,
$sp($(spaces))            int maxSamples,
$sp($(spaces))            SampleStateKind sampleStates,
$sp($(spaces))            ViewStateKind viewStates,
$sp($(spaces))            InstanceStateKind instanceStates)
$sp($(spaces))    {
$sp($(spaces))        object[] objectValues = dataValues;
$sp($(spaces))        ReturnCode result =
$sp($(spaces))            DDS.OpenSplice.FooDataReader.Read(
$sp($(spaces))                    this,
$sp($(spaces))                    ref objectValues,
$sp($(spaces))                    ref sampleInfos,
$sp($(spaces))                    maxSamples,
$sp($(spaces))                    sampleStates,
$sp($(spaces))                    viewStates,
$sp($(spaces))                    instanceStates);
$sp($(spaces))        dataValues = ($(typename)[])objectValues;
$sp($(spaces))        return result;
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode Take(
$sp($(spaces))        ref $(typename)[] dataValues,
$sp($(spaces))        ref SampleInfo[] sampleInfos)
$sp($(spaces))    {
$sp($(spaces))        return Take(ref dataValues, ref sampleInfos, Length.Unlimited);
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode Take(
$sp($(spaces))        ref $(typename)[] dataValues,
$sp($(spaces))        ref SampleInfo[] sampleInfos,
$sp($(spaces))        int maxSamples)
$sp($(spaces))    {
$sp($(spaces))        return Take(ref dataValues, ref sampleInfos, maxSamples, SampleStateKind.Any,
$sp($(spaces))            ViewStateKind.Any, InstanceStateKind.Any);
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode Take(
$sp($(spaces))        ref $(typename)[] dataValues,
$sp($(spaces))        ref SampleInfo[] sampleInfos,
$sp($(spaces))        SampleStateKind sampleStates,
$sp($(spaces))        ViewStateKind viewStates,
$sp($(spaces))        InstanceStateKind instanceStates)
$sp($(spaces))    {
$sp($(spaces))        return Take(ref dataValues, ref sampleInfos, Length.Unlimited, sampleStates,
$sp($(spaces))            viewStates, instanceStates);
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode Take(
$sp($(spaces))            ref $(typename)[] dataValues,
$sp($(spaces))            ref SampleInfo[] sampleInfos,
$sp($(spaces))            int maxSamples,
$sp($(spaces))            SampleStateKind sampleStates,
$sp($(spaces))            ViewStateKind viewStates,
$sp($(spaces))            InstanceStateKind instanceStates)
$sp($(spaces))    {
$sp($(spaces))        object[] objectValues = dataValues;
$sp($(spaces))        ReturnCode result =
$sp($(spaces))            DDS.OpenSplice.FooDataReader.Take(
$sp($(spaces))                    this,
$sp($(spaces))                    ref objectValues,
$sp($(spaces))                    ref sampleInfos,
$sp($(spaces))                    maxSamples,
$sp($(spaces))                    sampleStates,
$sp($(spaces))                    viewStates,
$sp($(spaces))                    instanceStates);
$sp($(spaces))        dataValues = ($(typename)[])objectValues;
$sp($(spaces))        return result;
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode ReadWithCondition(
$sp($(spaces))        ref $(typename)[] dataValues,
$sp($(spaces))        ref SampleInfo[] sampleInfos,
$sp($(spaces))        IReadCondition readCondition)
$sp($(spaces))    {
$sp($(spaces))        return ReadWithCondition(ref dataValues, ref sampleInfos,
$sp($(spaces))            Length.Unlimited, readCondition);
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode ReadWithCondition(
$sp($(spaces))            ref $(typename)[] dataValues,
$sp($(spaces))            ref SampleInfo[] sampleInfos,
$sp($(spaces))            int maxSamples,
$sp($(spaces))            IReadCondition readCondition)
$sp($(spaces))    {
$sp($(spaces))        object[] objectValues = dataValues;
$sp($(spaces))        ReturnCode result =
$sp($(spaces))            DDS.OpenSplice.FooDataReader.ReadWithCondition(
$sp($(spaces))                    this,
$sp($(spaces))                    ref objectValues,
$sp($(spaces))                    ref sampleInfos,
$sp($(spaces))                    maxSamples,
$sp($(spaces))                    readCondition);
$sp($(spaces))        dataValues = ($(typename)[])objectValues;
$sp($(spaces))        return result;
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode TakeWithCondition(
$sp($(spaces))        ref $(typename)[] dataValues,
$sp($(spaces))        ref SampleInfo[] sampleInfos,
$sp($(spaces))        IReadCondition readCondition)
$sp($(spaces))    {
$sp($(spaces))        return TakeWithCondition(ref dataValues, ref sampleInfos,
$sp($(spaces))            Length.Unlimited, readCondition);
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode TakeWithCondition(
$sp($(spaces))            ref $(typename)[] dataValues,
$sp($(spaces))            ref SampleInfo[] sampleInfos,
$sp($(spaces))            int maxSamples,
$sp($(spaces))            IReadCondition readCondition)
$sp($(spaces))    {
$sp($(spaces))        object[] objectValues = dataValues;
$sp($(spaces))        ReturnCode result =
$sp($(spaces))            DDS.OpenSplice.FooDataReader.TakeWithCondition(
$sp($(spaces))                    this,
$sp($(spaces))                    ref objectValues,
$sp($(spaces))                    ref sampleInfos,
$sp($(spaces))                    maxSamples,
$sp($(spaces))                    readCondition);
$sp($(spaces))        dataValues = ($(typename)[])objectValues;
$sp($(spaces))        return result;
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode ReadNextSample(
$sp($(spaces))            $(typename) dataValue,
$sp($(spaces))            SampleInfo sampleInfo)
$sp($(spaces))    {
$sp($(spaces))        object objectValues = dataValue;
$sp($(spaces))        ReturnCode result =
$sp($(spaces))            DDS.OpenSplice.FooDataReader.ReadNextSample(
$sp($(spaces))                    this,
$sp($(spaces))                    ref objectValues,
$sp($(spaces))                    ref sampleInfo);
$sp($(spaces))        dataValue = ($(typename))objectValues;
$sp($(spaces))        return result;
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode TakeNextSample(
$sp($(spaces))            $(typename) dataValue,
$sp($(spaces))            SampleInfo sampleInfo)
$sp($(spaces))    {
$sp($(spaces))        object objectValues = dataValue;
$sp($(spaces))        ReturnCode result =
$sp($(spaces))            DDS.OpenSplice.FooDataReader.TakeNextSample(
$sp($(spaces))                    this,
$sp($(spaces))                    ref objectValues,
$sp($(spaces))                    ref sampleInfo);
$sp($(spaces))        dataValue = ($(typename))objectValues;
$sp($(spaces))        return result;
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode ReadInstance(
$sp($(spaces))        ref $(typename)[] dataValues,
$sp($(spaces))        ref SampleInfo[] sampleInfos,
$sp($(spaces))        InstanceHandle instanceHandle)
$sp($(spaces))    {
$sp($(spaces))        return ReadInstance(ref dataValues, ref sampleInfos, Length.Unlimited, instanceHandle);
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode ReadInstance(
$sp($(spaces))        ref $(typename)[] dataValues,
$sp($(spaces))        ref SampleInfo[] sampleInfos,
$sp($(spaces))        int maxSamples,
$sp($(spaces))        InstanceHandle instanceHandle)
$sp($(spaces))    {
$sp($(spaces))        return ReadInstance(ref dataValues, ref sampleInfos, maxSamples, instanceHandle,
$sp($(spaces))            SampleStateKind.Any, ViewStateKind.Any, InstanceStateKind.Any);
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode ReadInstance(
$sp($(spaces))            ref $(typename)[] dataValues,
$sp($(spaces))            ref SampleInfo[] sampleInfos,
$sp($(spaces))            int maxSamples,
$sp($(spaces))            InstanceHandle instanceHandle,
$sp($(spaces))            SampleStateKind sampleStates,
$sp($(spaces))            ViewStateKind viewStates,
$sp($(spaces))            InstanceStateKind instanceStates)
$sp($(spaces))    {
$sp($(spaces))        object[] objectValues = dataValues;
$sp($(spaces))        ReturnCode result =
$sp($(spaces))            DDS.OpenSplice.FooDataReader.ReadInstance(
$sp($(spaces))                    this,
$sp($(spaces))                    ref objectValues,
$sp($(spaces))                    ref sampleInfos,
$sp($(spaces))                    maxSamples,
$sp($(spaces))                    instanceHandle,
$sp($(spaces))                    sampleStates,
$sp($(spaces))                    viewStates,
$sp($(spaces))                    instanceStates);
$sp($(spaces))        dataValues = ($(typename)[])objectValues;
$sp($(spaces))        return result;
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode TakeInstance(
$sp($(spaces))        ref $(typename)[] dataValues,
$sp($(spaces))        ref SampleInfo[] sampleInfos,
$sp($(spaces))        InstanceHandle instanceHandle)
$sp($(spaces))    {
$sp($(spaces))        return TakeInstance(ref dataValues, ref sampleInfos, Length.Unlimited, instanceHandle);
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode TakeInstance(
$sp($(spaces))        ref $(typename)[] dataValues,
$sp($(spaces))        ref SampleInfo[] sampleInfos,
$sp($(spaces))        int maxSamples,
$sp($(spaces))        InstanceHandle instanceHandle)
$sp($(spaces))    {
$sp($(spaces))        return TakeInstance(ref dataValues, ref sampleInfos, maxSamples, instanceHandle,
$sp($(spaces))            SampleStateKind.Any, ViewStateKind.Any, InstanceStateKind.Any);
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode TakeInstance(
$sp($(spaces))            ref $(typename)[] dataValues,
$sp($(spaces))            ref SampleInfo[] sampleInfos,
$sp($(spaces))            int maxSamples,
$sp($(spaces))            InstanceHandle instanceHandle,
$sp($(spaces))            SampleStateKind sampleStates,
$sp($(spaces))            ViewStateKind viewStates,
$sp($(spaces))            InstanceStateKind instanceStates)
$sp($(spaces))    {
$sp($(spaces))        object[] objectValues = dataValues;
$sp($(spaces))        ReturnCode result =
$sp($(spaces))            DDS.OpenSplice.FooDataReader.TakeInstance(
$sp($(spaces))                    this,
$sp($(spaces))                    ref objectValues,
$sp($(spaces))                    ref sampleInfos,
$sp($(spaces))                    maxSamples,
$sp($(spaces))                    instanceHandle,
$sp($(spaces))                    sampleStates,
$sp($(spaces))                    viewStates,
$sp($(spaces))                    instanceStates);
$sp($(spaces))        dataValues = ($(typename)[])objectValues;
$sp($(spaces))        return result;
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode ReadNextInstance(
$sp($(spaces))        ref $(typename)[] dataValues,
$sp($(spaces))        ref SampleInfo[] sampleInfos,
$sp($(spaces))        InstanceHandle instanceHandle)
$sp($(spaces))    {
$sp($(spaces))        return ReadNextInstance(ref dataValues, ref sampleInfos, Length.Unlimited, instanceHandle);
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode ReadNextInstance(
$sp($(spaces))        ref $(typename)[] dataValues,
$sp($(spaces))        ref SampleInfo[] sampleInfos,
$sp($(spaces))        int maxSamples,
$sp($(spaces))        InstanceHandle instanceHandle)
$sp($(spaces))    {
$sp($(spaces))        return ReadNextInstance(ref dataValues, ref sampleInfos, maxSamples, instanceHandle,
$sp($(spaces))            SampleStateKind.Any, ViewStateKind.Any, InstanceStateKind.Any);
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode ReadNextInstance(
$sp($(spaces))            ref $(typename)[] dataValues,
$sp($(spaces))            ref SampleInfo[] sampleInfos,
$sp($(spaces))            int maxSamples,
$sp($(spaces))            InstanceHandle instanceHandle,
$sp($(spaces))            SampleStateKind sampleStates,
$sp($(spaces))            ViewStateKind viewStates,
$sp($(spaces))            InstanceStateKind instanceStates)
$sp($(spaces))    {
$sp($(spaces))        object[] objectValues = dataValues;
$sp($(spaces))        ReturnCode result =
$sp($(spaces))            DDS.OpenSplice.FooDataReader.ReadNextInstance(
$sp($(spaces))                    this,
$sp($(spaces))                    ref objectValues,
$sp($(spaces))                    ref sampleInfos,
$sp($(spaces))                    maxSamples,
$sp($(spaces))                    instanceHandle,
$sp($(spaces))                    sampleStates,
$sp($(spaces))                    viewStates,
$sp($(spaces))                    instanceStates);
$sp($(spaces))        dataValues = ($(typename)[])objectValues;
$sp($(spaces))        return result;
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode TakeNextInstance(
$sp($(spaces))        ref $(typename)[] dataValues,
$sp($(spaces))        ref SampleInfo[] sampleInfos,
$sp($(spaces))        InstanceHandle instanceHandle)
$sp($(spaces))    {
$sp($(spaces))        return TakeNextInstance(ref dataValues, ref sampleInfos, Length.Unlimited, instanceHandle);
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode TakeNextInstance(
$sp($(spaces))        ref $(typename)[] dataValues,
$sp($(spaces))        ref SampleInfo[] sampleInfos,
$sp($(spaces))        int maxSamples,
$sp($(spaces))        InstanceHandle instanceHandle)
$sp($(spaces))    {
$sp($(spaces))        return TakeNextInstance(ref dataValues, ref sampleInfos, maxSamples, instanceHandle,
$sp($(spaces))            SampleStateKind.Any, ViewStateKind.Any, InstanceStateKind.Any);
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode TakeNextInstance(
$sp($(spaces))            ref $(typename)[] dataValues,
$sp($(spaces))            ref SampleInfo[] sampleInfos,
$sp($(spaces))            int maxSamples,
$sp($(spaces))            InstanceHandle instanceHandle,
$sp($(spaces))            SampleStateKind sampleStates,
$sp($(spaces))            ViewStateKind viewStates,
$sp($(spaces))            InstanceStateKind instanceStates)
$sp($(spaces))    {
$sp($(spaces))        object[] objectValues = dataValues;
$sp($(spaces))        ReturnCode result =
$sp($(spaces))            DDS.OpenSplice.FooDataReader.TakeNextInstance(
$sp($(spaces))                    this,
$sp($(spaces))                    ref objectValues,
$sp($(spaces))                    ref sampleInfos,
$sp($(spaces))                    maxSamples,
$sp($(spaces))                    instanceHandle,
$sp($(spaces))                    sampleStates,
$sp($(spaces))                    viewStates,
$sp($(spaces))                    instanceStates);
$sp($(spaces))        dataValues = ($(typename)[])objectValues;
$sp($(spaces))        return result;
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode ReadNextInstanceWithCondition(
$sp($(spaces))            ref $(typename)[] dataValues,
$sp($(spaces))            ref SampleInfo[] sampleInfos,
$sp($(spaces))            InstanceHandle instanceHandle,
$sp($(spaces))            IReadCondition readCondition)
$sp($(spaces))    {
$sp($(spaces))        return ReadNextInstanceWithCondition(
$sp($(spaces))            ref dataValues,
$sp($(spaces))            ref sampleInfos,
$sp($(spaces))            Length.Unlimited,
$sp($(spaces))            instanceHandle,
$sp($(spaces))            readCondition);
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode ReadNextInstanceWithCondition(
$sp($(spaces))            ref $(typename)[] dataValues,
$sp($(spaces))            ref SampleInfo[] sampleInfos,
$sp($(spaces))            int maxSamples,
$sp($(spaces))            InstanceHandle instanceHandle,
$sp($(spaces))            IReadCondition readCondition)
$sp($(spaces))    {
$sp($(spaces))        object[] objectValues = dataValues;
$sp($(spaces))        ReturnCode result =
$sp($(spaces))            DDS.OpenSplice.FooDataReader.ReadNextInstanceWithCondition(
$sp($(spaces))                    this,
$sp($(spaces))                    ref objectValues,
$sp($(spaces))                    ref sampleInfos,
$sp($(spaces))                    maxSamples,
$sp($(spaces))                    instanceHandle,
$sp($(spaces))                    readCondition);
$sp($(spaces))        dataValues = ($(typename)[])objectValues;
$sp($(spaces))        return result;
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode TakeNextInstanceWithCondition(
$sp($(spaces))            ref $(typename)[] dataValues,
$sp($(spaces))            ref SampleInfo[] sampleInfos,
$sp($(spaces))            InstanceHandle instanceHandle,
$sp($(spaces))            IReadCondition readCondition)
$sp($(spaces))    {
$sp($(spaces))        return TakeNextInstanceWithCondition(
$sp($(spaces))            ref dataValues,
$sp($(spaces))            ref sampleInfos,
$sp($(spaces))            Length.Unlimited,
$sp($(spaces))            instanceHandle,
$sp($(spaces))            readCondition);
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode TakeNextInstanceWithCondition(
$sp($(spaces))            ref $(typename)[] dataValues,
$sp($(spaces))            ref SampleInfo[] sampleInfos,
$sp($(spaces))            int maxSamples,
$sp($(spaces))            InstanceHandle instanceHandle,
$sp($(spaces))            IReadCondition readCondition)
$sp($(spaces))    {
$sp($(spaces))        object[] objectValues = dataValues;
$sp($(spaces))        ReturnCode result =
$sp($(spaces))            DDS.OpenSplice.FooDataReader.TakeNextInstanceWithCondition(
$sp($(spaces))                    this,
$sp($(spaces))                    ref objectValues,
$sp($(spaces))                    ref sampleInfos,
$sp($(spaces))                    maxSamples,
$sp($(spaces))                    instanceHandle,
$sp($(spaces))                    readCondition);

$sp($(spaces))        dataValues = ($(typename)[])objectValues;
$sp($(spaces))        return result;
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode ReturnLoan(
$sp($(spaces))            ref $(typename)[] dataValues,
$sp($(spaces))            ref SampleInfo[] sampleInfos)
$sp($(spaces))    {
$sp($(spaces))        ReturnCode result;

$sp($(spaces))        if (dataValues != null && sampleInfos != null)
$sp($(spaces))        {
$sp($(spaces))            if (dataValues != null && sampleInfos != null)
$sp($(spaces))            {
$sp($(spaces))                if (dataValues.Length == sampleInfos.Length)
$sp($(spaces))                {
$sp($(spaces))                    dataValues = null;
$sp($(spaces))                    sampleInfos = null;
$sp($(spaces))                    result = ReturnCode.Ok;
$sp($(spaces))                }
$sp($(spaces))                else
$sp($(spaces))                {
$sp($(spaces))                    result = ReturnCode.PreconditionNotMet;
$sp($(spaces))                }
$sp($(spaces))            }
$sp($(spaces))            else
$sp($(spaces))            {
$sp($(spaces))                if ((dataValues == null) && (sampleInfos == null))
$sp($(spaces))                {
$sp($(spaces))                    result = ReturnCode.Ok;
$sp($(spaces))                }
$sp($(spaces))                else
$sp($(spaces))                {
$sp($(spaces))                    result = ReturnCode.PreconditionNotMet;
$sp($(spaces))                }
$sp($(spaces))            }
$sp($(spaces))        }
$sp($(spaces))        else
$sp($(spaces))        {
$sp($(spaces))            result = ReturnCode.BadParameter;
$sp($(spaces))        }

$sp($(spaces))        return result;
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode GetKeyValue(
$sp($(spaces))            $(typename) key,
$sp($(spaces))            InstanceHandle handle)
$sp($(spaces))    {
$sp($(spaces))        return
$sp($(spaces))            DDS.OpenSplice.FooDataReader.GetKeyValue(
$sp($(spaces))                    this,
$sp($(spaces))                    key,
$sp($(spaces))                    handle);
$sp($(spaces))    }

$sp($(spaces))    public InstanceHandle LookupInstance(
$sp($(spaces))            $(typename) instance)
$sp($(spaces))    {
$sp($(spaces))        return
$sp($(spaces))            DDS.OpenSplice.FooDataReader.LookupInstance(
$sp($(spaces))                    this,
$sp($(spaces))                    instance);
$sp($(spaces))    }

$sp($(spaces))}
$sp($(spaces))#endregion
$sp($(spaces))
$sp($(spaces))#region $(typename)DataWriter
$sp($(spaces))public class $(typename)DataWriter : DDS.OpenSplice.DataWriter, I$(typename)DataWriter
$sp($(spaces)){
$sp($(spaces))    private $(typename)TypeSupport typeSupport;

$sp($(spaces))    public $(typename)DataWriter($(typename)TypeSupport ts, IntPtr gapiPtr)
$sp($(spaces))        : base(gapiPtr)
$sp($(spaces))    {
$sp($(spaces))        typeSupport = ts;
$sp($(spaces))    }

$sp($(spaces))    public InstanceHandle RegisterInstance(
$sp($(spaces))            $(typename) instanceData)
$sp($(spaces))    {
$sp($(spaces))        return DDS.OpenSplice.FooDataWriter.RegisterInstance(
$sp($(spaces))                    this,
$sp($(spaces))                    instanceData);
$sp($(spaces))    }

$sp($(spaces))    public InstanceHandle RegisterInstanceWithTimestamp(
$sp($(spaces))            $(typename) instanceData,
$sp($(spaces))            Time sourceTimestamp)
$sp($(spaces))    {
$sp($(spaces))        return DDS.OpenSplice.FooDataWriter.RegisterInstanceWithTimestamp(
$sp($(spaces))                    this,
$sp($(spaces))                    instanceData,
$sp($(spaces))                    sourceTimestamp);
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode UnregisterInstance(
$sp($(spaces))            $(typename) instanceData,
$sp($(spaces))            InstanceHandle instanceHandle)
$sp($(spaces))    {
$sp($(spaces))        return DDS.OpenSplice.FooDataWriter.UnregisterInstance(
$sp($(spaces))                    this,
$sp($(spaces))                    instanceData,
$sp($(spaces))                    instanceHandle);
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode UnregisterInstanceWithTimestamp(
$sp($(spaces))            $(typename) instanceData,
$sp($(spaces))            InstanceHandle instanceHandle,
$sp($(spaces))            Time sourceTimestamp)
$sp($(spaces))    {
$sp($(spaces))        return DDS.OpenSplice.FooDataWriter.UnregisterInstanceWithTimestamp(
$sp($(spaces))                    this,
$sp($(spaces))                    instanceData,
$sp($(spaces))                    instanceHandle,
$sp($(spaces))                    sourceTimestamp);
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode Write($(typename) instanceData)
$sp($(spaces))    {
$sp($(spaces))        return Write(instanceData, InstanceHandle.Nil);
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode Write(
$sp($(spaces))            $(typename) instanceData,
$sp($(spaces))            InstanceHandle instanceHandle)
$sp($(spaces))    {
$sp($(spaces))        return DDS.OpenSplice.FooDataWriter.Write(
$sp($(spaces))                    this,
$sp($(spaces))                    instanceData,
$sp($(spaces))                    instanceHandle);
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode WriteWithTimestamp(
$sp($(spaces))            $(typename) instanceData,
$sp($(spaces))            Time sourceTimestamp)
$sp($(spaces))    {
$sp($(spaces))        return WriteWithTimestamp(instanceData, InstanceHandle.Nil, sourceTimestamp);
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode WriteWithTimestamp(
$sp($(spaces))            $(typename) instanceData,
$sp($(spaces))            InstanceHandle instanceHandle,
$sp($(spaces))            Time sourceTimestamp)
$sp($(spaces))    {
$sp($(spaces))        return DDS.OpenSplice.FooDataWriter.WriteWithTimestamp(
$sp($(spaces))                    this,
$sp($(spaces))                    instanceData,
$sp($(spaces))                    instanceHandle,
$sp($(spaces))                    sourceTimestamp);
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode Dispose(
$sp($(spaces))            $(typename) instanceData,
$sp($(spaces))            InstanceHandle instanceHandle)
$sp($(spaces))    {
$sp($(spaces))        return DDS.OpenSplice.FooDataWriter.Dispose(
$sp($(spaces))                    this,
$sp($(spaces))                    instanceData,
$sp($(spaces))                    instanceHandle);
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode DisposeWithTimestamp(
$sp($(spaces))            $(typename) instanceData,
$sp($(spaces))            InstanceHandle instanceHandle,
$sp($(spaces))            Time sourceTimestamp)
$sp($(spaces))    {
$sp($(spaces))        return DDS.OpenSplice.FooDataWriter.DisposeWithTimestamp(
$sp($(spaces))                    this,
$sp($(spaces))                    instanceData,
$sp($(spaces))                    instanceHandle,
$sp($(spaces))                    sourceTimestamp);
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode WriteDispose(
$sp($(spaces))            $(typename) instanceData)
$sp($(spaces))    {
$sp($(spaces))        return WriteDispose(instanceData, InstanceHandle.Nil);
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode WriteDispose(
$sp($(spaces))            $(typename) instanceData,
$sp($(spaces))            InstanceHandle instanceHandle)
$sp($(spaces))    {
$sp($(spaces))        return DDS.OpenSplice.FooDataWriter.WriteDispose(
$sp($(spaces))                    this,
$sp($(spaces))                    instanceData,
$sp($(spaces))                    instanceHandle);
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode WriteDisposeWithTimestamp(
$sp($(spaces))            $(typename) instanceData,
$sp($(spaces))            Time sourceTimestamp)
$sp($(spaces))    {
$sp($(spaces))        return WriteDisposeWithTimestamp(instanceData, InstanceHandle.Nil, sourceTimestamp);
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode WriteDisposeWithTimestamp(
$sp($(spaces))            $(typename) instanceData,
$sp($(spaces))            InstanceHandle instanceHandle,
$sp($(spaces))            Time sourceTimestamp)
$sp($(spaces))    {
$sp($(spaces))        return DDS.OpenSplice.FooDataWriter.WriteDisposeWithTimestamp(
$sp($(spaces))                    this,
$sp($(spaces))                    instanceData,
$sp($(spaces))                    instanceHandle,
$sp($(spaces))                    sourceTimestamp);
$sp($(spaces))    }

$sp($(spaces))    public ReturnCode GetKeyValue(
$sp($(spaces))            $(typename) key,
$sp($(spaces))            InstanceHandle instanceHandle)
$sp($(spaces))    {
$sp($(spaces))        ReturnCode result = DDS.OpenSplice.FooDataWriter.GetKeyValue(
$sp($(spaces))                                this,
$sp($(spaces))                                key,
$sp($(spaces))                                instanceHandle);
$sp($(spaces))        return result;
$sp($(spaces))    }

$sp($(spaces))    public InstanceHandle LookupInstance(
$sp($(spaces))        $(typename) instanceData)
$sp($(spaces))    {
$sp($(spaces))        InstanceHandle result = DDS.OpenSplice.FooDataWriter.LookupInstance(
$sp($(spaces))                                    this,
$sp($(spaces))                                    instanceData);
$sp($(spaces))        return result;
$sp($(spaces))    }
$sp($(spaces))}
$sp($(spaces))#endregion

$sp($(spaces))#region $(typename)TypeSupport
$sp($(spaces))public class $(typename)TypeSupport : DDS.OpenSplice.TypeSupport
$sp($(spaces)){
$sp($(spaces))    private const string typeName = "$(scoped-meta-type-name)";
$sp($(spaces))    private const string keyList = "$(key-list)";
$sp($(spaces))    private const string metaDescriptor = "$(meta-descriptor)";

$sp($(spaces))    public $(typename)TypeSupport()
$sp($(spaces))        : base(typeof($(typename)),
$sp($(spaces))                new MarshalerTypeGenerator())
$sp($(spaces))    { }

$sp($(spaces))    public $(typename)TypeSupport(
$sp($(spaces))            IMarshalerTypeGenerator generator)
$sp($(spaces))        : base(typeof($(typename)),
$sp($(spaces))                generator)
$sp($(spaces))    { }

$sp($(spaces))    public $(typename)TypeSupport(
$sp($(spaces))            DatabaseMarshaler marshaler)
$sp($(spaces))        : base(typeof($(typename)),
$sp($(spaces))                marshaler)
$sp($(spaces))    { }

$sp($(spaces))    public override string TypeName
$sp($(spaces))    {
$sp($(spaces))        get
$sp($(spaces))        {
$sp($(spaces))            return typeName;
$sp($(spaces))        }
$sp($(spaces))    }

$sp($(spaces))    public override string Description
$sp($(spaces))    {
$sp($(spaces))        get
$sp($(spaces))        {
$sp($(spaces))            return metaDescriptor;
$sp($(spaces))        }
$sp($(spaces))    }

$sp($(spaces))    public override string KeyList
$sp($(spaces))    {
$sp($(spaces))        get
$sp($(spaces))        {
$sp($(spaces))            return keyList;
$sp($(spaces))        }
$sp($(spaces))    }

$sp($(spaces))    public override DDS.OpenSplice.DataWriter CreateDataWriter(IntPtr gapiPtr)
$sp($(spaces))    {
$sp($(spaces))        return new $(typename)DataWriter(this, gapiPtr);
$sp($(spaces))    }

$sp($(spaces))    public override DDS.OpenSplice.DataReader CreateDataReader(IntPtr gapiPtr)
$sp($(spaces))    {
$sp($(spaces))        return new $(typename)DataReader(this, gapiPtr);
$sp($(spaces))    }
$sp($(spaces))}
$sp($(spaces))#endregion
