//------------------------------------------------------------------------------
// <auto-generated />
//
// This file was automatically generated by SWIG (http://www.swig.org).
// Version 4.0.2
//
// Do not make changes to this file unless you know what you are doing--modify
// the SWIG interface file instead.
//------------------------------------------------------------------------------

namespace RobotRaconteur {

public enum DataTypes {
  void_t = 0,
  double_t,
  single_t,
  int8_t,
  uint8_t,
  int16_t,
  uint16_t,
  int32_t,
  uint32_t,
  int64_t,
  uint64_t,
  string_t,
  cdouble_t,
  csingle_t,
  bool_t,
  structure_t = 101,
  vector_t,
  dictionary_t,
  object_t,
  varvalue_t,
  varobject_t,
  list_t = 108,
  pod_t,
  pod_array_t,
  pod_multidimarray_t,
  enum_t,
  namedtype_t,
  namedarray_t,
  namedarray_array_t,
  namedarray_multidimarray_t,
  multidimarray_t
}

}
namespace RobotRaconteur {

public enum DataTypes_ArrayTypes {
  ArrayTypes_none = 0,
  ArrayTypes_array,
  ArrayTypes_multidimarray
}

}
namespace RobotRaconteur {

public enum DataTypes_ContainerTypes {
  ContainerTypes_none = 0,
  ContainerTypes_list,
  ContainerTypes_map_int32,
  ContainerTypes_map_string,
  ContainerTypes_generator
}

}
namespace RobotRaconteur {

public enum MessageEntryType {
  Null = 0,
  StreamOp = 1,
  StreamOpRet,
  StreamCheckCapability,
  StreamCheckCapabilityRet,
  GetServiceDesc = 101,
  GetServiceDescRet,
  ObjectTypeName,
  ObjectTypeNameRet,
  ServiceClosed,
  ServiceClosedRet,
  ConnectClient,
  ConnectClientRet,
  DisconnectClient,
  DisconnectClientRet,
  ConnectionTest,
  ConnectionTestRet,
  GetNodeInfo,
  GetNodeInfoRet,
  ReconnectClient,
  ReconnectClientRet,
  NodeCheckCapability,
  NodeCheckCapabilityRet,
  GetServiceAttributes,
  GetServiceAttributesRet,
  ConnectClientCombined,
  ConnectClientCombinedRet,
  EndpointCheckCapability = 501,
  EndpointCheckCapabilityRet,
  ServiceCheckCapabilityReq = 1101,
  ServiceCheckCapabilityRet,
  ClientKeepAliveReq = 1105,
  ClientKeepAliveRet,
  ClientSessionOpReq = 1107,
  ClientSessionOpRet,
  ServicePathReleasedReq,
  ServicePathReleasedRet,
  PropertyGetReq = 1111,
  PropertyGetRes,
  PropertySetReq,
  PropertySetRes,
  FunctionCallReq = 1121,
  FunctionCallRes,
  GeneratorNextReq,
  GeneratorNextRes,
  EventReq = 1131,
  EventRes,
  PipePacket = 1141,
  PipePacketRet,
  PipeConnectReq,
  PipeConnectRet,
  PipeDisconnectReq,
  PipeDisconnectRet,
  PipeClosed,
  PipeClosedRet,
  CallbackCallReq = 1151,
  CallbackCallRet,
  WirePacket = 1161,
  WirePacketRet,
  WireConnectReq,
  WireConnectRet,
  WireDisconnectReq,
  WireDisconnectRet,
  WireClosed,
  WireClosedRet,
  MemoryRead = 1171,
  MemoryReadRet,
  MemoryWrite,
  MemoryWriteRet,
  MemoryGetParam,
  MemoryGetParamRet,
  WirePeekInValueReq = 1181,
  WirePeekInValueRet,
  WirePeekOutValueReq,
  WirePeekOutValueRet,
  WirePokeOutValueReq,
  WirePokeOutValueRet,
  WireTransportOpReq = 11161,
  WireTransportOpRet,
  WireTransportEvent,
  WireTransportEventRet
}

}
namespace RobotRaconteur {

public enum MessageErrorType {
  None = 0,
  ConnectionError = 1,
  ProtocolError,
  ServiceNotFound,
  ObjectNotFound,
  InvalidEndpoint,
  EndpointCommunicationFatalError,
  NodeNotFound,
  ServiceError,
  MemberNotFound,
  MemberFormatMismatch,
  DataTypeMismatch,
  DataTypeError,
  DataSerializationError,
  MessageEntryNotFound,
  MessageElementNotFound,
  UnknownError,
  InvalidOperation,
  InvalidArgument,
  OperationFailed,
  NullValue,
  InternalError,
  SystemResourcePermissionDenied,
  OutOfSystemResource,
  SystemResourceError,
  ResourceNotFound,
  IOError,
  BufferLimitViolation,
  ServiceDefinitionError,
  OutOfRange,
  KeyNotFound,
  InvalidConfiguration,
  InvalidState,
  RemoteError = 100,
  RequestTimeout,
  ReadOnlyMember,
  WriteOnlyMember,
  NotImplementedError,
  MemberBusy,
  ValueNotSet,
  AbortOperation,
  OperationAborted,
  StopIteration,
  OperationTimeout,
  OperationCancelled,
  AuthenticationError = 150,
  ObjectLockedError,
  PermissionDenied
}

}
namespace RobotRaconteur {

public enum ClientServiceListenerEventType {
  ClientClosed = 1,
  ClientConnectionTimeout,
  TransportConnectionConnected,
  TransportConnectionClosed,
  ServicePathReleased
}

}
namespace RobotRaconteur {

public enum ServerServiceListenerEventType {
  ClientConnected = (1) + 1,
  ClientDisconnected
}

}
namespace RobotRaconteur {

public enum MemberDefinition_Direction {
  Direction_both = 0,
  Direction_readonly,
  Direction_writeonly
}

}
namespace RobotRaconteur {

public enum MemberDefinition_NoLock {
  NoLock_none = 0,
  NoLock_all,
  NoLock_read
}

}
namespace RobotRaconteur {

public enum LogLevel {
  LogLevel_Trace,
  LogLevel_Debug,
  LogLevel_Info,
  LogLevel_Warning,
  LogLevel_Error,
  LogLevel_Fatal,
  LogLevel_Disable = 1000
}

}
namespace RobotRaconteur {

public enum LogComponent {
  LogComponent_Default,
  LogComponent_Node,
  LogComponent_Transport,
  LogComponent_Message,
  LogComponent_Client,
  LogComponent_Service,
  LogComponent_Member,
  LogComponent_Pack,
  LogComponent_Unpack,
  LogComponent_ServiceDefinition,
  LogComponent_Discovery,
  LogComponent_Subscription,
  LogComponent_NodeSetup,
  LogComponent_Utility,
  LogComponent_RobDefLib,
  LogComponent_User,
  LogComponent_UserClient,
  LogComponent_UserService,
  LogComponent_ThirdParty
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class FilesystemPath : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal FilesystemPath(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(FilesystemPath obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~FilesystemPath() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_FilesystemPath(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public FilesystemPath(string s) : this(RobotRaconteurNETPINVOKE.new_FilesystemPath(s), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public string string_() {
    string ret = RobotRaconteurNETPINVOKE.FilesystemPath_string_(swigCPtr);
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class RobotRaconteurExceptionHelper : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal RobotRaconteurExceptionHelper(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(RobotRaconteurExceptionHelper obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~RobotRaconteurExceptionHelper() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_RobotRaconteurExceptionHelper(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual void SetRobotRaconteurException(HandlerErrorInfo error) {
    if (SwigDerivedClassHasMethod("SetRobotRaconteurException", swigMethodTypes0)) RobotRaconteurNETPINVOKE.RobotRaconteurExceptionHelper_SetRobotRaconteurExceptionSwigExplicitRobotRaconteurExceptionHelper(swigCPtr, HandlerErrorInfo.getCPtr(error)); else RobotRaconteurNETPINVOKE.RobotRaconteurExceptionHelper_SetRobotRaconteurException(swigCPtr, HandlerErrorInfo.getCPtr(error));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public RobotRaconteurExceptionHelper() : this(RobotRaconteurNETPINVOKE.new_RobotRaconteurExceptionHelper(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("SetRobotRaconteurException", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateRobotRaconteurExceptionHelper_0(SwigDirectorMethodSetRobotRaconteurException);
    RobotRaconteurNETPINVOKE.RobotRaconteurExceptionHelper_director_connect(swigCPtr, swigDelegate0);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(RobotRaconteurExceptionHelper));
    return hasDerivedMethod;
  }

  private void SwigDirectorMethodSetRobotRaconteurException(global::System.IntPtr error) {
    SetRobotRaconteurException(new HandlerErrorInfo(error, false));
  }

  public delegate void SwigDelegateRobotRaconteurExceptionHelper_0(global::System.IntPtr error);

  private SwigDelegateRobotRaconteurExceptionHelper_0 swigDelegate0;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(HandlerErrorInfo) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class RRDirectorExceptionHelper : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal RRDirectorExceptionHelper(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(RRDirectorExceptionHelper obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~RRDirectorExceptionHelper() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_RRDirectorExceptionHelper(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public static void Reset() {
    RobotRaconteurNETPINVOKE.RRDirectorExceptionHelper_Reset();
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static void SetError(MessageEntry err, string exception_str) {
    RobotRaconteurNETPINVOKE.RRDirectorExceptionHelper_SetError(MessageEntry.getCPtr(err), exception_str);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static bool IsErrorPending() {
    bool ret = RobotRaconteurNETPINVOKE.RRDirectorExceptionHelper_IsErrorPending();
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static MessageEntry GetError() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.RRDirectorExceptionHelper_GetError();
    MessageEntry ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageEntry(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public RRDirectorExceptionHelper() : this(RobotRaconteurNETPINVOKE.new_RRDirectorExceptionHelper(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class vectorstring : global::System.IDisposable, global::System.Collections.IEnumerable, global::System.Collections.Generic.IList<string>
 {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal vectorstring(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(vectorstring obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~vectorstring() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_vectorstring(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public vectorstring(global::System.Collections.IEnumerable c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (string element in c) {
      this.Add(element);
    }
  }

  public vectorstring(global::System.Collections.Generic.IEnumerable<string> c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (string element in c) {
      this.Add(element);
    }
  }

  public bool IsFixedSize {
    get {
      return false;
    }
  }

  public bool IsReadOnly {
    get {
      return false;
    }
  }

  public string this[int index]  {
    get {
      return getitem(index);
    }
    set {
      setitem(index, value);
    }
  }

  public int Capacity {
    get {
      return (int)capacity();
    }
    set {
      if (value < size())
        throw new global::System.ArgumentOutOfRangeException("Capacity");
      reserve((uint)value);
    }
  }

  public int Count {
    get {
      return (int)size();
    }
  }

  public bool IsSynchronized {
    get {
      return false;
    }
  }

  public void CopyTo(string[] array)
  {
    CopyTo(0, array, 0, this.Count);
  }

  public void CopyTo(string[] array, int arrayIndex)
  {
    CopyTo(0, array, arrayIndex, this.Count);
  }

  public void CopyTo(int index, string[] array, int arrayIndex, int count)
  {
    if (array == null)
      throw new global::System.ArgumentNullException("array");
    if (index < 0)
      throw new global::System.ArgumentOutOfRangeException("index", "Value is less than zero");
    if (arrayIndex < 0)
      throw new global::System.ArgumentOutOfRangeException("arrayIndex", "Value is less than zero");
    if (count < 0)
      throw new global::System.ArgumentOutOfRangeException("count", "Value is less than zero");
    if (array.Rank > 1)
      throw new global::System.ArgumentException("Multi dimensional array.", "array");
    if (index+count > this.Count || arrayIndex+count > array.Length)
      throw new global::System.ArgumentException("Number of elements to copy is too large.");
    for (int i=0; i<count; i++)
      array.SetValue(getitemcopy(index+i), arrayIndex+i);
  }

  public string[] ToArray() {
    string[] array = new string[this.Count];
    this.CopyTo(array);
    return array;
  }

  global::System.Collections.Generic.IEnumerator<string> global::System.Collections.Generic.IEnumerable<string>.GetEnumerator() {
    return new vectorstringEnumerator(this);
  }

  global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator() {
    return new vectorstringEnumerator(this);
  }

  public vectorstringEnumerator GetEnumerator() {
    return new vectorstringEnumerator(this);
  }

  // Type-safe enumerator
  /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown
  /// whenever the collection is modified. This has been done for changes in the size of the
  /// collection but not when one of the elements of the collection is modified as it is a bit
  /// tricky to detect unmanaged code that modifies the collection under our feet.
  public sealed class vectorstringEnumerator : global::System.Collections.IEnumerator
    , global::System.Collections.Generic.IEnumerator<string>
  {
    private vectorstring collectionRef;
    private int currentIndex;
    private object currentObject;
    private int currentSize;

    public vectorstringEnumerator(vectorstring collection) {
      collectionRef = collection;
      currentIndex = -1;
      currentObject = null;
      currentSize = collectionRef.Count;
    }

    // Type-safe iterator Current
    public string Current {
      get {
        if (currentIndex == -1)
          throw new global::System.InvalidOperationException("Enumeration not started.");
        if (currentIndex > currentSize - 1)
          throw new global::System.InvalidOperationException("Enumeration finished.");
        if (currentObject == null)
          throw new global::System.InvalidOperationException("Collection modified.");
        return (string)currentObject;
      }
    }

    // Type-unsafe IEnumerator.Current
    object global::System.Collections.IEnumerator.Current {
      get {
        return Current;
      }
    }

    public bool MoveNext() {
      int size = collectionRef.Count;
      bool moveOkay = (currentIndex+1 < size) && (size == currentSize);
      if (moveOkay) {
        currentIndex++;
        currentObject = collectionRef[currentIndex];
      } else {
        currentObject = null;
      }
      return moveOkay;
    }

    public void Reset() {
      currentIndex = -1;
      currentObject = null;
      if (collectionRef.Count != currentSize) {
        throw new global::System.InvalidOperationException("Collection modified.");
      }
    }

    public void Dispose() {
        currentIndex = -1;
        currentObject = null;
    }
  }

  public void Clear() {
    RobotRaconteurNETPINVOKE.vectorstring_Clear(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Add(string x) {
    RobotRaconteurNETPINVOKE.vectorstring_Add(swigCPtr, x);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private uint size() {
    uint ret = RobotRaconteurNETPINVOKE.vectorstring_size(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private uint capacity() {
    uint ret = RobotRaconteurNETPINVOKE.vectorstring_capacity(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void reserve(uint n) {
    RobotRaconteurNETPINVOKE.vectorstring_reserve(swigCPtr, n);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorstring() : this(RobotRaconteurNETPINVOKE.new_vectorstring__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorstring(vectorstring other) : this(RobotRaconteurNETPINVOKE.new_vectorstring__SWIG_1(vectorstring.getCPtr(other)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorstring(int capacity) : this(RobotRaconteurNETPINVOKE.new_vectorstring__SWIG_2(capacity), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private string getitemcopy(int index) {
    string ret = RobotRaconteurNETPINVOKE.vectorstring_getitemcopy(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private string getitem(int index) {
    string ret = RobotRaconteurNETPINVOKE.vectorstring_getitem(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void setitem(int index, string val) {
    RobotRaconteurNETPINVOKE.vectorstring_setitem(swigCPtr, index, val);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void AddRange(vectorstring values) {
    RobotRaconteurNETPINVOKE.vectorstring_AddRange(swigCPtr, vectorstring.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorstring GetRange(int index, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorstring_GetRange(swigCPtr, index, count);
    vectorstring ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorstring(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Insert(int index, string x) {
    RobotRaconteurNETPINVOKE.vectorstring_Insert(swigCPtr, index, x);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void InsertRange(int index, vectorstring values) {
    RobotRaconteurNETPINVOKE.vectorstring_InsertRange(swigCPtr, index, vectorstring.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveAt(int index) {
    RobotRaconteurNETPINVOKE.vectorstring_RemoveAt(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveRange(int index, int count) {
    RobotRaconteurNETPINVOKE.vectorstring_RemoveRange(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static vectorstring Repeat(string value, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorstring_Repeat(value, count);
    vectorstring ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorstring(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Reverse() {
    RobotRaconteurNETPINVOKE.vectorstring_Reverse__SWIG_0(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Reverse(int index, int count) {
    RobotRaconteurNETPINVOKE.vectorstring_Reverse__SWIG_1(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SetRange(int index, vectorstring values) {
    RobotRaconteurNETPINVOKE.vectorstring_SetRange(swigCPtr, index, vectorstring.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public bool Contains(string value) {
    bool ret = RobotRaconteurNETPINVOKE.vectorstring_Contains(swigCPtr, value);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public int IndexOf(string value) {
    int ret = RobotRaconteurNETPINVOKE.vectorstring_IndexOf(swigCPtr, value);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public int LastIndexOf(string value) {
    int ret = RobotRaconteurNETPINVOKE.vectorstring_LastIndexOf(swigCPtr, value);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool Remove(string value) {
    bool ret = RobotRaconteurNETPINVOKE.vectorstring_Remove(swigCPtr, value);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class vectorint32 : global::System.IDisposable, global::System.Collections.IEnumerable, global::System.Collections.Generic.IList<int>
 {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal vectorint32(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(vectorint32 obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~vectorint32() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_vectorint32(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public vectorint32(global::System.Collections.IEnumerable c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (int element in c) {
      this.Add(element);
    }
  }

  public vectorint32(global::System.Collections.Generic.IEnumerable<int> c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (int element in c) {
      this.Add(element);
    }
  }

  public bool IsFixedSize {
    get {
      return false;
    }
  }

  public bool IsReadOnly {
    get {
      return false;
    }
  }

  public int this[int index]  {
    get {
      return getitem(index);
    }
    set {
      setitem(index, value);
    }
  }

  public int Capacity {
    get {
      return (int)capacity();
    }
    set {
      if (value < size())
        throw new global::System.ArgumentOutOfRangeException("Capacity");
      reserve((uint)value);
    }
  }

  public int Count {
    get {
      return (int)size();
    }
  }

  public bool IsSynchronized {
    get {
      return false;
    }
  }

  public void CopyTo(int[] array)
  {
    CopyTo(0, array, 0, this.Count);
  }

  public void CopyTo(int[] array, int arrayIndex)
  {
    CopyTo(0, array, arrayIndex, this.Count);
  }

  public void CopyTo(int index, int[] array, int arrayIndex, int count)
  {
    if (array == null)
      throw new global::System.ArgumentNullException("array");
    if (index < 0)
      throw new global::System.ArgumentOutOfRangeException("index", "Value is less than zero");
    if (arrayIndex < 0)
      throw new global::System.ArgumentOutOfRangeException("arrayIndex", "Value is less than zero");
    if (count < 0)
      throw new global::System.ArgumentOutOfRangeException("count", "Value is less than zero");
    if (array.Rank > 1)
      throw new global::System.ArgumentException("Multi dimensional array.", "array");
    if (index+count > this.Count || arrayIndex+count > array.Length)
      throw new global::System.ArgumentException("Number of elements to copy is too large.");
    for (int i=0; i<count; i++)
      array.SetValue(getitemcopy(index+i), arrayIndex+i);
  }

  public int[] ToArray() {
    int[] array = new int[this.Count];
    this.CopyTo(array);
    return array;
  }

  global::System.Collections.Generic.IEnumerator<int> global::System.Collections.Generic.IEnumerable<int>.GetEnumerator() {
    return new vectorint32Enumerator(this);
  }

  global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator() {
    return new vectorint32Enumerator(this);
  }

  public vectorint32Enumerator GetEnumerator() {
    return new vectorint32Enumerator(this);
  }

  // Type-safe enumerator
  /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown
  /// whenever the collection is modified. This has been done for changes in the size of the
  /// collection but not when one of the elements of the collection is modified as it is a bit
  /// tricky to detect unmanaged code that modifies the collection under our feet.
  public sealed class vectorint32Enumerator : global::System.Collections.IEnumerator
    , global::System.Collections.Generic.IEnumerator<int>
  {
    private vectorint32 collectionRef;
    private int currentIndex;
    private object currentObject;
    private int currentSize;

    public vectorint32Enumerator(vectorint32 collection) {
      collectionRef = collection;
      currentIndex = -1;
      currentObject = null;
      currentSize = collectionRef.Count;
    }

    // Type-safe iterator Current
    public int Current {
      get {
        if (currentIndex == -1)
          throw new global::System.InvalidOperationException("Enumeration not started.");
        if (currentIndex > currentSize - 1)
          throw new global::System.InvalidOperationException("Enumeration finished.");
        if (currentObject == null)
          throw new global::System.InvalidOperationException("Collection modified.");
        return (int)currentObject;
      }
    }

    // Type-unsafe IEnumerator.Current
    object global::System.Collections.IEnumerator.Current {
      get {
        return Current;
      }
    }

    public bool MoveNext() {
      int size = collectionRef.Count;
      bool moveOkay = (currentIndex+1 < size) && (size == currentSize);
      if (moveOkay) {
        currentIndex++;
        currentObject = collectionRef[currentIndex];
      } else {
        currentObject = null;
      }
      return moveOkay;
    }

    public void Reset() {
      currentIndex = -1;
      currentObject = null;
      if (collectionRef.Count != currentSize) {
        throw new global::System.InvalidOperationException("Collection modified.");
      }
    }

    public void Dispose() {
        currentIndex = -1;
        currentObject = null;
    }
  }

  public void Clear() {
    RobotRaconteurNETPINVOKE.vectorint32_Clear(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Add(int x) {
    RobotRaconteurNETPINVOKE.vectorint32_Add(swigCPtr, x);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private uint size() {
    uint ret = RobotRaconteurNETPINVOKE.vectorint32_size(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private uint capacity() {
    uint ret = RobotRaconteurNETPINVOKE.vectorint32_capacity(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void reserve(uint n) {
    RobotRaconteurNETPINVOKE.vectorint32_reserve(swigCPtr, n);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorint32() : this(RobotRaconteurNETPINVOKE.new_vectorint32__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorint32(vectorint32 other) : this(RobotRaconteurNETPINVOKE.new_vectorint32__SWIG_1(vectorint32.getCPtr(other)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorint32(int capacity) : this(RobotRaconteurNETPINVOKE.new_vectorint32__SWIG_2(capacity), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private int getitemcopy(int index) {
    int ret = RobotRaconteurNETPINVOKE.vectorint32_getitemcopy(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private int getitem(int index) {
    int ret = RobotRaconteurNETPINVOKE.vectorint32_getitem(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void setitem(int index, int val) {
    RobotRaconteurNETPINVOKE.vectorint32_setitem(swigCPtr, index, val);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void AddRange(vectorint32 values) {
    RobotRaconteurNETPINVOKE.vectorint32_AddRange(swigCPtr, vectorint32.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorint32 GetRange(int index, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorint32_GetRange(swigCPtr, index, count);
    vectorint32 ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorint32(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Insert(int index, int x) {
    RobotRaconteurNETPINVOKE.vectorint32_Insert(swigCPtr, index, x);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void InsertRange(int index, vectorint32 values) {
    RobotRaconteurNETPINVOKE.vectorint32_InsertRange(swigCPtr, index, vectorint32.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveAt(int index) {
    RobotRaconteurNETPINVOKE.vectorint32_RemoveAt(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveRange(int index, int count) {
    RobotRaconteurNETPINVOKE.vectorint32_RemoveRange(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static vectorint32 Repeat(int value, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorint32_Repeat(value, count);
    vectorint32 ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorint32(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Reverse() {
    RobotRaconteurNETPINVOKE.vectorint32_Reverse__SWIG_0(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Reverse(int index, int count) {
    RobotRaconteurNETPINVOKE.vectorint32_Reverse__SWIG_1(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SetRange(int index, vectorint32 values) {
    RobotRaconteurNETPINVOKE.vectorint32_SetRange(swigCPtr, index, vectorint32.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public bool Contains(int value) {
    bool ret = RobotRaconteurNETPINVOKE.vectorint32_Contains(swigCPtr, value);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public int IndexOf(int value) {
    int ret = RobotRaconteurNETPINVOKE.vectorint32_IndexOf(swigCPtr, value);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public int LastIndexOf(int value) {
    int ret = RobotRaconteurNETPINVOKE.vectorint32_LastIndexOf(swigCPtr, value);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool Remove(int value) {
    bool ret = RobotRaconteurNETPINVOKE.vectorint32_Remove(swigCPtr, value);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class vectoruint32 : global::System.IDisposable, global::System.Collections.IEnumerable, global::System.Collections.Generic.IList<uint>
 {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal vectoruint32(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(vectoruint32 obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~vectoruint32() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_vectoruint32(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public vectoruint32(global::System.Collections.IEnumerable c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (uint element in c) {
      this.Add(element);
    }
  }

  public vectoruint32(global::System.Collections.Generic.IEnumerable<uint> c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (uint element in c) {
      this.Add(element);
    }
  }

  public bool IsFixedSize {
    get {
      return false;
    }
  }

  public bool IsReadOnly {
    get {
      return false;
    }
  }

  public uint this[int index]  {
    get {
      return getitem(index);
    }
    set {
      setitem(index, value);
    }
  }

  public int Capacity {
    get {
      return (int)capacity();
    }
    set {
      if (value < size())
        throw new global::System.ArgumentOutOfRangeException("Capacity");
      reserve((uint)value);
    }
  }

  public int Count {
    get {
      return (int)size();
    }
  }

  public bool IsSynchronized {
    get {
      return false;
    }
  }

  public void CopyTo(uint[] array)
  {
    CopyTo(0, array, 0, this.Count);
  }

  public void CopyTo(uint[] array, int arrayIndex)
  {
    CopyTo(0, array, arrayIndex, this.Count);
  }

  public void CopyTo(int index, uint[] array, int arrayIndex, int count)
  {
    if (array == null)
      throw new global::System.ArgumentNullException("array");
    if (index < 0)
      throw new global::System.ArgumentOutOfRangeException("index", "Value is less than zero");
    if (arrayIndex < 0)
      throw new global::System.ArgumentOutOfRangeException("arrayIndex", "Value is less than zero");
    if (count < 0)
      throw new global::System.ArgumentOutOfRangeException("count", "Value is less than zero");
    if (array.Rank > 1)
      throw new global::System.ArgumentException("Multi dimensional array.", "array");
    if (index+count > this.Count || arrayIndex+count > array.Length)
      throw new global::System.ArgumentException("Number of elements to copy is too large.");
    for (int i=0; i<count; i++)
      array.SetValue(getitemcopy(index+i), arrayIndex+i);
  }

  public uint[] ToArray() {
    uint[] array = new uint[this.Count];
    this.CopyTo(array);
    return array;
  }

  global::System.Collections.Generic.IEnumerator<uint> global::System.Collections.Generic.IEnumerable<uint>.GetEnumerator() {
    return new vectoruint32Enumerator(this);
  }

  global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator() {
    return new vectoruint32Enumerator(this);
  }

  public vectoruint32Enumerator GetEnumerator() {
    return new vectoruint32Enumerator(this);
  }

  // Type-safe enumerator
  /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown
  /// whenever the collection is modified. This has been done for changes in the size of the
  /// collection but not when one of the elements of the collection is modified as it is a bit
  /// tricky to detect unmanaged code that modifies the collection under our feet.
  public sealed class vectoruint32Enumerator : global::System.Collections.IEnumerator
    , global::System.Collections.Generic.IEnumerator<uint>
  {
    private vectoruint32 collectionRef;
    private int currentIndex;
    private object currentObject;
    private int currentSize;

    public vectoruint32Enumerator(vectoruint32 collection) {
      collectionRef = collection;
      currentIndex = -1;
      currentObject = null;
      currentSize = collectionRef.Count;
    }

    // Type-safe iterator Current
    public uint Current {
      get {
        if (currentIndex == -1)
          throw new global::System.InvalidOperationException("Enumeration not started.");
        if (currentIndex > currentSize - 1)
          throw new global::System.InvalidOperationException("Enumeration finished.");
        if (currentObject == null)
          throw new global::System.InvalidOperationException("Collection modified.");
        return (uint)currentObject;
      }
    }

    // Type-unsafe IEnumerator.Current
    object global::System.Collections.IEnumerator.Current {
      get {
        return Current;
      }
    }

    public bool MoveNext() {
      int size = collectionRef.Count;
      bool moveOkay = (currentIndex+1 < size) && (size == currentSize);
      if (moveOkay) {
        currentIndex++;
        currentObject = collectionRef[currentIndex];
      } else {
        currentObject = null;
      }
      return moveOkay;
    }

    public void Reset() {
      currentIndex = -1;
      currentObject = null;
      if (collectionRef.Count != currentSize) {
        throw new global::System.InvalidOperationException("Collection modified.");
      }
    }

    public void Dispose() {
        currentIndex = -1;
        currentObject = null;
    }
  }

  public void Clear() {
    RobotRaconteurNETPINVOKE.vectoruint32_Clear(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Add(uint x) {
    RobotRaconteurNETPINVOKE.vectoruint32_Add(swigCPtr, x);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private uint size() {
    uint ret = RobotRaconteurNETPINVOKE.vectoruint32_size(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private uint capacity() {
    uint ret = RobotRaconteurNETPINVOKE.vectoruint32_capacity(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void reserve(uint n) {
    RobotRaconteurNETPINVOKE.vectoruint32_reserve(swigCPtr, n);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectoruint32() : this(RobotRaconteurNETPINVOKE.new_vectoruint32__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectoruint32(vectoruint32 other) : this(RobotRaconteurNETPINVOKE.new_vectoruint32__SWIG_1(vectoruint32.getCPtr(other)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectoruint32(int capacity) : this(RobotRaconteurNETPINVOKE.new_vectoruint32__SWIG_2(capacity), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private uint getitemcopy(int index) {
    uint ret = RobotRaconteurNETPINVOKE.vectoruint32_getitemcopy(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private uint getitem(int index) {
    uint ret = RobotRaconteurNETPINVOKE.vectoruint32_getitem(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void setitem(int index, uint val) {
    RobotRaconteurNETPINVOKE.vectoruint32_setitem(swigCPtr, index, val);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void AddRange(vectoruint32 values) {
    RobotRaconteurNETPINVOKE.vectoruint32_AddRange(swigCPtr, vectoruint32.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectoruint32 GetRange(int index, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectoruint32_GetRange(swigCPtr, index, count);
    vectoruint32 ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectoruint32(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Insert(int index, uint x) {
    RobotRaconteurNETPINVOKE.vectoruint32_Insert(swigCPtr, index, x);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void InsertRange(int index, vectoruint32 values) {
    RobotRaconteurNETPINVOKE.vectoruint32_InsertRange(swigCPtr, index, vectoruint32.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveAt(int index) {
    RobotRaconteurNETPINVOKE.vectoruint32_RemoveAt(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveRange(int index, int count) {
    RobotRaconteurNETPINVOKE.vectoruint32_RemoveRange(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static vectoruint32 Repeat(uint value, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectoruint32_Repeat(value, count);
    vectoruint32 ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectoruint32(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Reverse() {
    RobotRaconteurNETPINVOKE.vectoruint32_Reverse__SWIG_0(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Reverse(int index, int count) {
    RobotRaconteurNETPINVOKE.vectoruint32_Reverse__SWIG_1(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SetRange(int index, vectoruint32 values) {
    RobotRaconteurNETPINVOKE.vectoruint32_SetRange(swigCPtr, index, vectoruint32.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public bool Contains(uint value) {
    bool ret = RobotRaconteurNETPINVOKE.vectoruint32_Contains(swigCPtr, value);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public int IndexOf(uint value) {
    int ret = RobotRaconteurNETPINVOKE.vectoruint32_IndexOf(swigCPtr, value);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public int LastIndexOf(uint value) {
    int ret = RobotRaconteurNETPINVOKE.vectoruint32_LastIndexOf(swigCPtr, value);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool Remove(uint value) {
    bool ret = RobotRaconteurNETPINVOKE.vectoruint32_Remove(swigCPtr, value);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class vector_int8_t : global::System.IDisposable, global::System.Collections.IEnumerable, global::System.Collections.Generic.IList<sbyte>
 {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal vector_int8_t(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(vector_int8_t obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~vector_int8_t() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_vector_int8_t(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public vector_int8_t(global::System.Collections.IEnumerable c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (sbyte element in c) {
      this.Add(element);
    }
  }

  public vector_int8_t(global::System.Collections.Generic.IEnumerable<sbyte> c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (sbyte element in c) {
      this.Add(element);
    }
  }

  public bool IsFixedSize {
    get {
      return false;
    }
  }

  public bool IsReadOnly {
    get {
      return false;
    }
  }

  public sbyte this[int index]  {
    get {
      return getitem(index);
    }
    set {
      setitem(index, value);
    }
  }

  public int Capacity {
    get {
      return (int)capacity();
    }
    set {
      if (value < size())
        throw new global::System.ArgumentOutOfRangeException("Capacity");
      reserve((uint)value);
    }
  }

  public int Count {
    get {
      return (int)size();
    }
  }

  public bool IsSynchronized {
    get {
      return false;
    }
  }

  public void CopyTo(sbyte[] array)
  {
    CopyTo(0, array, 0, this.Count);
  }

  public void CopyTo(sbyte[] array, int arrayIndex)
  {
    CopyTo(0, array, arrayIndex, this.Count);
  }

  public void CopyTo(int index, sbyte[] array, int arrayIndex, int count)
  {
    if (array == null)
      throw new global::System.ArgumentNullException("array");
    if (index < 0)
      throw new global::System.ArgumentOutOfRangeException("index", "Value is less than zero");
    if (arrayIndex < 0)
      throw new global::System.ArgumentOutOfRangeException("arrayIndex", "Value is less than zero");
    if (count < 0)
      throw new global::System.ArgumentOutOfRangeException("count", "Value is less than zero");
    if (array.Rank > 1)
      throw new global::System.ArgumentException("Multi dimensional array.", "array");
    if (index+count > this.Count || arrayIndex+count > array.Length)
      throw new global::System.ArgumentException("Number of elements to copy is too large.");
    for (int i=0; i<count; i++)
      array.SetValue(getitemcopy(index+i), arrayIndex+i);
  }

  public sbyte[] ToArray() {
    sbyte[] array = new sbyte[this.Count];
    this.CopyTo(array);
    return array;
  }

  global::System.Collections.Generic.IEnumerator<sbyte> global::System.Collections.Generic.IEnumerable<sbyte>.GetEnumerator() {
    return new vector_int8_tEnumerator(this);
  }

  global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator() {
    return new vector_int8_tEnumerator(this);
  }

  public vector_int8_tEnumerator GetEnumerator() {
    return new vector_int8_tEnumerator(this);
  }

  // Type-safe enumerator
  /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown
  /// whenever the collection is modified. This has been done for changes in the size of the
  /// collection but not when one of the elements of the collection is modified as it is a bit
  /// tricky to detect unmanaged code that modifies the collection under our feet.
  public sealed class vector_int8_tEnumerator : global::System.Collections.IEnumerator
    , global::System.Collections.Generic.IEnumerator<sbyte>
  {
    private vector_int8_t collectionRef;
    private int currentIndex;
    private object currentObject;
    private int currentSize;

    public vector_int8_tEnumerator(vector_int8_t collection) {
      collectionRef = collection;
      currentIndex = -1;
      currentObject = null;
      currentSize = collectionRef.Count;
    }

    // Type-safe iterator Current
    public sbyte Current {
      get {
        if (currentIndex == -1)
          throw new global::System.InvalidOperationException("Enumeration not started.");
        if (currentIndex > currentSize - 1)
          throw new global::System.InvalidOperationException("Enumeration finished.");
        if (currentObject == null)
          throw new global::System.InvalidOperationException("Collection modified.");
        return (sbyte)currentObject;
      }
    }

    // Type-unsafe IEnumerator.Current
    object global::System.Collections.IEnumerator.Current {
      get {
        return Current;
      }
    }

    public bool MoveNext() {
      int size = collectionRef.Count;
      bool moveOkay = (currentIndex+1 < size) && (size == currentSize);
      if (moveOkay) {
        currentIndex++;
        currentObject = collectionRef[currentIndex];
      } else {
        currentObject = null;
      }
      return moveOkay;
    }

    public void Reset() {
      currentIndex = -1;
      currentObject = null;
      if (collectionRef.Count != currentSize) {
        throw new global::System.InvalidOperationException("Collection modified.");
      }
    }

    public void Dispose() {
        currentIndex = -1;
        currentObject = null;
    }
  }

  public void Clear() {
    RobotRaconteurNETPINVOKE.vector_int8_t_Clear(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Add(sbyte x) {
    RobotRaconteurNETPINVOKE.vector_int8_t_Add(swigCPtr, x);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private uint size() {
    uint ret = RobotRaconteurNETPINVOKE.vector_int8_t_size(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private uint capacity() {
    uint ret = RobotRaconteurNETPINVOKE.vector_int8_t_capacity(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void reserve(uint n) {
    RobotRaconteurNETPINVOKE.vector_int8_t_reserve(swigCPtr, n);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vector_int8_t() : this(RobotRaconteurNETPINVOKE.new_vector_int8_t__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vector_int8_t(vector_int8_t other) : this(RobotRaconteurNETPINVOKE.new_vector_int8_t__SWIG_1(vector_int8_t.getCPtr(other)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vector_int8_t(int capacity) : this(RobotRaconteurNETPINVOKE.new_vector_int8_t__SWIG_2(capacity), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private sbyte getitemcopy(int index) {
    sbyte ret = RobotRaconteurNETPINVOKE.vector_int8_t_getitemcopy(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private sbyte getitem(int index) {
    sbyte ret = RobotRaconteurNETPINVOKE.vector_int8_t_getitem(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void setitem(int index, sbyte val) {
    RobotRaconteurNETPINVOKE.vector_int8_t_setitem(swigCPtr, index, val);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void AddRange(vector_int8_t values) {
    RobotRaconteurNETPINVOKE.vector_int8_t_AddRange(swigCPtr, vector_int8_t.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vector_int8_t GetRange(int index, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vector_int8_t_GetRange(swigCPtr, index, count);
    vector_int8_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new vector_int8_t(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Insert(int index, sbyte x) {
    RobotRaconteurNETPINVOKE.vector_int8_t_Insert(swigCPtr, index, x);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void InsertRange(int index, vector_int8_t values) {
    RobotRaconteurNETPINVOKE.vector_int8_t_InsertRange(swigCPtr, index, vector_int8_t.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveAt(int index) {
    RobotRaconteurNETPINVOKE.vector_int8_t_RemoveAt(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveRange(int index, int count) {
    RobotRaconteurNETPINVOKE.vector_int8_t_RemoveRange(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static vector_int8_t Repeat(sbyte value, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vector_int8_t_Repeat(value, count);
    vector_int8_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new vector_int8_t(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Reverse() {
    RobotRaconteurNETPINVOKE.vector_int8_t_Reverse__SWIG_0(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Reverse(int index, int count) {
    RobotRaconteurNETPINVOKE.vector_int8_t_Reverse__SWIG_1(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SetRange(int index, vector_int8_t values) {
    RobotRaconteurNETPINVOKE.vector_int8_t_SetRange(swigCPtr, index, vector_int8_t.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public bool Contains(sbyte value) {
    bool ret = RobotRaconteurNETPINVOKE.vector_int8_t_Contains(swigCPtr, value);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public int IndexOf(sbyte value) {
    int ret = RobotRaconteurNETPINVOKE.vector_int8_t_IndexOf(swigCPtr, value);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public int LastIndexOf(sbyte value) {
    int ret = RobotRaconteurNETPINVOKE.vector_int8_t_LastIndexOf(swigCPtr, value);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool Remove(sbyte value) {
    bool ret = RobotRaconteurNETPINVOKE.vector_int8_t_Remove(swigCPtr, value);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class vector_uint8_t : global::System.IDisposable, global::System.Collections.IEnumerable, global::System.Collections.Generic.IList<byte>
 {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal vector_uint8_t(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(vector_uint8_t obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~vector_uint8_t() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_vector_uint8_t(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public vector_uint8_t(global::System.Collections.IEnumerable c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (byte element in c) {
      this.Add(element);
    }
  }

  public vector_uint8_t(global::System.Collections.Generic.IEnumerable<byte> c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (byte element in c) {
      this.Add(element);
    }
  }

  public bool IsFixedSize {
    get {
      return false;
    }
  }

  public bool IsReadOnly {
    get {
      return false;
    }
  }

  public byte this[int index]  {
    get {
      return getitem(index);
    }
    set {
      setitem(index, value);
    }
  }

  public int Capacity {
    get {
      return (int)capacity();
    }
    set {
      if (value < size())
        throw new global::System.ArgumentOutOfRangeException("Capacity");
      reserve((uint)value);
    }
  }

  public int Count {
    get {
      return (int)size();
    }
  }

  public bool IsSynchronized {
    get {
      return false;
    }
  }

  public void CopyTo(byte[] array)
  {
    CopyTo(0, array, 0, this.Count);
  }

  public void CopyTo(byte[] array, int arrayIndex)
  {
    CopyTo(0, array, arrayIndex, this.Count);
  }

  public void CopyTo(int index, byte[] array, int arrayIndex, int count)
  {
    if (array == null)
      throw new global::System.ArgumentNullException("array");
    if (index < 0)
      throw new global::System.ArgumentOutOfRangeException("index", "Value is less than zero");
    if (arrayIndex < 0)
      throw new global::System.ArgumentOutOfRangeException("arrayIndex", "Value is less than zero");
    if (count < 0)
      throw new global::System.ArgumentOutOfRangeException("count", "Value is less than zero");
    if (array.Rank > 1)
      throw new global::System.ArgumentException("Multi dimensional array.", "array");
    if (index+count > this.Count || arrayIndex+count > array.Length)
      throw new global::System.ArgumentException("Number of elements to copy is too large.");
    for (int i=0; i<count; i++)
      array.SetValue(getitemcopy(index+i), arrayIndex+i);
  }

  public byte[] ToArray() {
    byte[] array = new byte[this.Count];
    this.CopyTo(array);
    return array;
  }

  global::System.Collections.Generic.IEnumerator<byte> global::System.Collections.Generic.IEnumerable<byte>.GetEnumerator() {
    return new vector_uint8_tEnumerator(this);
  }

  global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator() {
    return new vector_uint8_tEnumerator(this);
  }

  public vector_uint8_tEnumerator GetEnumerator() {
    return new vector_uint8_tEnumerator(this);
  }

  // Type-safe enumerator
  /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown
  /// whenever the collection is modified. This has been done for changes in the size of the
  /// collection but not when one of the elements of the collection is modified as it is a bit
  /// tricky to detect unmanaged code that modifies the collection under our feet.
  public sealed class vector_uint8_tEnumerator : global::System.Collections.IEnumerator
    , global::System.Collections.Generic.IEnumerator<byte>
  {
    private vector_uint8_t collectionRef;
    private int currentIndex;
    private object currentObject;
    private int currentSize;

    public vector_uint8_tEnumerator(vector_uint8_t collection) {
      collectionRef = collection;
      currentIndex = -1;
      currentObject = null;
      currentSize = collectionRef.Count;
    }

    // Type-safe iterator Current
    public byte Current {
      get {
        if (currentIndex == -1)
          throw new global::System.InvalidOperationException("Enumeration not started.");
        if (currentIndex > currentSize - 1)
          throw new global::System.InvalidOperationException("Enumeration finished.");
        if (currentObject == null)
          throw new global::System.InvalidOperationException("Collection modified.");
        return (byte)currentObject;
      }
    }

    // Type-unsafe IEnumerator.Current
    object global::System.Collections.IEnumerator.Current {
      get {
        return Current;
      }
    }

    public bool MoveNext() {
      int size = collectionRef.Count;
      bool moveOkay = (currentIndex+1 < size) && (size == currentSize);
      if (moveOkay) {
        currentIndex++;
        currentObject = collectionRef[currentIndex];
      } else {
        currentObject = null;
      }
      return moveOkay;
    }

    public void Reset() {
      currentIndex = -1;
      currentObject = null;
      if (collectionRef.Count != currentSize) {
        throw new global::System.InvalidOperationException("Collection modified.");
      }
    }

    public void Dispose() {
        currentIndex = -1;
        currentObject = null;
    }
  }

  public void Clear() {
    RobotRaconteurNETPINVOKE.vector_uint8_t_Clear(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Add(byte x) {
    RobotRaconteurNETPINVOKE.vector_uint8_t_Add(swigCPtr, x);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private uint size() {
    uint ret = RobotRaconteurNETPINVOKE.vector_uint8_t_size(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private uint capacity() {
    uint ret = RobotRaconteurNETPINVOKE.vector_uint8_t_capacity(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void reserve(uint n) {
    RobotRaconteurNETPINVOKE.vector_uint8_t_reserve(swigCPtr, n);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vector_uint8_t() : this(RobotRaconteurNETPINVOKE.new_vector_uint8_t__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vector_uint8_t(vector_uint8_t other) : this(RobotRaconteurNETPINVOKE.new_vector_uint8_t__SWIG_1(vector_uint8_t.getCPtr(other)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vector_uint8_t(int capacity) : this(RobotRaconteurNETPINVOKE.new_vector_uint8_t__SWIG_2(capacity), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private byte getitemcopy(int index) {
    byte ret = RobotRaconteurNETPINVOKE.vector_uint8_t_getitemcopy(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private byte getitem(int index) {
    byte ret = RobotRaconteurNETPINVOKE.vector_uint8_t_getitem(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void setitem(int index, byte val) {
    RobotRaconteurNETPINVOKE.vector_uint8_t_setitem(swigCPtr, index, val);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void AddRange(vector_uint8_t values) {
    RobotRaconteurNETPINVOKE.vector_uint8_t_AddRange(swigCPtr, vector_uint8_t.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vector_uint8_t GetRange(int index, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vector_uint8_t_GetRange(swigCPtr, index, count);
    vector_uint8_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new vector_uint8_t(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Insert(int index, byte x) {
    RobotRaconteurNETPINVOKE.vector_uint8_t_Insert(swigCPtr, index, x);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void InsertRange(int index, vector_uint8_t values) {
    RobotRaconteurNETPINVOKE.vector_uint8_t_InsertRange(swigCPtr, index, vector_uint8_t.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveAt(int index) {
    RobotRaconteurNETPINVOKE.vector_uint8_t_RemoveAt(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveRange(int index, int count) {
    RobotRaconteurNETPINVOKE.vector_uint8_t_RemoveRange(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static vector_uint8_t Repeat(byte value, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vector_uint8_t_Repeat(value, count);
    vector_uint8_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new vector_uint8_t(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Reverse() {
    RobotRaconteurNETPINVOKE.vector_uint8_t_Reverse__SWIG_0(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Reverse(int index, int count) {
    RobotRaconteurNETPINVOKE.vector_uint8_t_Reverse__SWIG_1(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SetRange(int index, vector_uint8_t values) {
    RobotRaconteurNETPINVOKE.vector_uint8_t_SetRange(swigCPtr, index, vector_uint8_t.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public bool Contains(byte value) {
    bool ret = RobotRaconteurNETPINVOKE.vector_uint8_t_Contains(swigCPtr, value);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public int IndexOf(byte value) {
    int ret = RobotRaconteurNETPINVOKE.vector_uint8_t_IndexOf(swigCPtr, value);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public int LastIndexOf(byte value) {
    int ret = RobotRaconteurNETPINVOKE.vector_uint8_t_LastIndexOf(swigCPtr, value);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool Remove(byte value) {
    bool ret = RobotRaconteurNETPINVOKE.vector_uint8_t_Remove(swigCPtr, value);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class vector_uint64_t : global::System.IDisposable, global::System.Collections.IEnumerable, global::System.Collections.Generic.IList<uint>
 {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal vector_uint64_t(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(vector_uint64_t obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~vector_uint64_t() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_vector_uint64_t(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public vector_uint64_t(global::System.Collections.IEnumerable c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (uint element in c) {
      this.Add(element);
    }
  }

  public vector_uint64_t(global::System.Collections.Generic.IEnumerable<uint> c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (uint element in c) {
      this.Add(element);
    }
  }

  public bool IsFixedSize {
    get {
      return false;
    }
  }

  public bool IsReadOnly {
    get {
      return false;
    }
  }

  public uint this[int index]  {
    get {
      return getitem(index);
    }
    set {
      setitem(index, value);
    }
  }

  public int Capacity {
    get {
      return (int)capacity();
    }
    set {
      if (value < size())
        throw new global::System.ArgumentOutOfRangeException("Capacity");
      reserve((uint)value);
    }
  }

  public int Count {
    get {
      return (int)size();
    }
  }

  public bool IsSynchronized {
    get {
      return false;
    }
  }

  public void CopyTo(uint[] array)
  {
    CopyTo(0, array, 0, this.Count);
  }

  public void CopyTo(uint[] array, int arrayIndex)
  {
    CopyTo(0, array, arrayIndex, this.Count);
  }

  public void CopyTo(int index, uint[] array, int arrayIndex, int count)
  {
    if (array == null)
      throw new global::System.ArgumentNullException("array");
    if (index < 0)
      throw new global::System.ArgumentOutOfRangeException("index", "Value is less than zero");
    if (arrayIndex < 0)
      throw new global::System.ArgumentOutOfRangeException("arrayIndex", "Value is less than zero");
    if (count < 0)
      throw new global::System.ArgumentOutOfRangeException("count", "Value is less than zero");
    if (array.Rank > 1)
      throw new global::System.ArgumentException("Multi dimensional array.", "array");
    if (index+count > this.Count || arrayIndex+count > array.Length)
      throw new global::System.ArgumentException("Number of elements to copy is too large.");
    for (int i=0; i<count; i++)
      array.SetValue(getitemcopy(index+i), arrayIndex+i);
  }

  public uint[] ToArray() {
    uint[] array = new uint[this.Count];
    this.CopyTo(array);
    return array;
  }

  global::System.Collections.Generic.IEnumerator<uint> global::System.Collections.Generic.IEnumerable<uint>.GetEnumerator() {
    return new vector_uint64_tEnumerator(this);
  }

  global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator() {
    return new vector_uint64_tEnumerator(this);
  }

  public vector_uint64_tEnumerator GetEnumerator() {
    return new vector_uint64_tEnumerator(this);
  }

  // Type-safe enumerator
  /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown
  /// whenever the collection is modified. This has been done for changes in the size of the
  /// collection but not when one of the elements of the collection is modified as it is a bit
  /// tricky to detect unmanaged code that modifies the collection under our feet.
  public sealed class vector_uint64_tEnumerator : global::System.Collections.IEnumerator
    , global::System.Collections.Generic.IEnumerator<uint>
  {
    private vector_uint64_t collectionRef;
    private int currentIndex;
    private object currentObject;
    private int currentSize;

    public vector_uint64_tEnumerator(vector_uint64_t collection) {
      collectionRef = collection;
      currentIndex = -1;
      currentObject = null;
      currentSize = collectionRef.Count;
    }

    // Type-safe iterator Current
    public uint Current {
      get {
        if (currentIndex == -1)
          throw new global::System.InvalidOperationException("Enumeration not started.");
        if (currentIndex > currentSize - 1)
          throw new global::System.InvalidOperationException("Enumeration finished.");
        if (currentObject == null)
          throw new global::System.InvalidOperationException("Collection modified.");
        return (uint)currentObject;
      }
    }

    // Type-unsafe IEnumerator.Current
    object global::System.Collections.IEnumerator.Current {
      get {
        return Current;
      }
    }

    public bool MoveNext() {
      int size = collectionRef.Count;
      bool moveOkay = (currentIndex+1 < size) && (size == currentSize);
      if (moveOkay) {
        currentIndex++;
        currentObject = collectionRef[currentIndex];
      } else {
        currentObject = null;
      }
      return moveOkay;
    }

    public void Reset() {
      currentIndex = -1;
      currentObject = null;
      if (collectionRef.Count != currentSize) {
        throw new global::System.InvalidOperationException("Collection modified.");
      }
    }

    public void Dispose() {
        currentIndex = -1;
        currentObject = null;
    }
  }

  public void Clear() {
    RobotRaconteurNETPINVOKE.vector_uint64_t_Clear(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Add(uint x) {
    RobotRaconteurNETPINVOKE.vector_uint64_t_Add(swigCPtr, x);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private uint size() {
    uint ret = RobotRaconteurNETPINVOKE.vector_uint64_t_size(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private uint capacity() {
    uint ret = RobotRaconteurNETPINVOKE.vector_uint64_t_capacity(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void reserve(uint n) {
    RobotRaconteurNETPINVOKE.vector_uint64_t_reserve(swigCPtr, n);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vector_uint64_t() : this(RobotRaconteurNETPINVOKE.new_vector_uint64_t__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vector_uint64_t(vector_uint64_t other) : this(RobotRaconteurNETPINVOKE.new_vector_uint64_t__SWIG_1(vector_uint64_t.getCPtr(other)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vector_uint64_t(int capacity) : this(RobotRaconteurNETPINVOKE.new_vector_uint64_t__SWIG_2(capacity), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private uint getitemcopy(int index) {
    uint ret = RobotRaconteurNETPINVOKE.vector_uint64_t_getitemcopy(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private uint getitem(int index) {
    uint ret = RobotRaconteurNETPINVOKE.vector_uint64_t_getitem(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void setitem(int index, uint val) {
    RobotRaconteurNETPINVOKE.vector_uint64_t_setitem(swigCPtr, index, val);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void AddRange(vector_uint64_t values) {
    RobotRaconteurNETPINVOKE.vector_uint64_t_AddRange(swigCPtr, vector_uint64_t.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vector_uint64_t GetRange(int index, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vector_uint64_t_GetRange(swigCPtr, index, count);
    vector_uint64_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new vector_uint64_t(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Insert(int index, uint x) {
    RobotRaconteurNETPINVOKE.vector_uint64_t_Insert(swigCPtr, index, x);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void InsertRange(int index, vector_uint64_t values) {
    RobotRaconteurNETPINVOKE.vector_uint64_t_InsertRange(swigCPtr, index, vector_uint64_t.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveAt(int index) {
    RobotRaconteurNETPINVOKE.vector_uint64_t_RemoveAt(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveRange(int index, int count) {
    RobotRaconteurNETPINVOKE.vector_uint64_t_RemoveRange(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static vector_uint64_t Repeat(uint value, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vector_uint64_t_Repeat(value, count);
    vector_uint64_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new vector_uint64_t(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Reverse() {
    RobotRaconteurNETPINVOKE.vector_uint64_t_Reverse__SWIG_0(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Reverse(int index, int count) {
    RobotRaconteurNETPINVOKE.vector_uint64_t_Reverse__SWIG_1(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SetRange(int index, vector_uint64_t values) {
    RobotRaconteurNETPINVOKE.vector_uint64_t_SetRange(swigCPtr, index, vector_uint64_t.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public bool Contains(uint value) {
    bool ret = RobotRaconteurNETPINVOKE.vector_uint64_t_Contains(swigCPtr, value);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public int IndexOf(uint value) {
    int ret = RobotRaconteurNETPINVOKE.vector_uint64_t_IndexOf(swigCPtr, value);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public int LastIndexOf(uint value) {
    int ret = RobotRaconteurNETPINVOKE.vector_uint64_t_LastIndexOf(swigCPtr, value);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool Remove(uint value) {
    bool ret = RobotRaconteurNETPINVOKE.vector_uint64_t_Remove(swigCPtr, value);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public partial class map_strstr : global::System.IDisposable 
    , global::System.Collections.Generic.IDictionary<string, string>
 {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal map_strstr(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(map_strstr obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~map_strstr() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_map_strstr(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }


  public string this[string key] {
    get {
      return getitem(key);
    }

    set {
      setitem(key, value);
    }
  }

  public bool TryGetValue(string key, out string value) {
    if (this.ContainsKey(key)) {
      value = this[key];
      return true;
    }
    value = default(string);
    return false;
  }

  public int Count {
    get {
      return (int)size();
    }
  }

  public bool IsReadOnly {
    get {
      return false;
    }
  }

  public global::System.Collections.Generic.ICollection<string> Keys {
    get {
      global::System.Collections.Generic.ICollection<string> keys = new global::System.Collections.Generic.List<string>();
      int size = this.Count;
      if (size > 0) {
        global::System.IntPtr iter = create_iterator_begin();
        for (int i = 0; i < size; i++) {
          keys.Add(get_next_key(iter));
        }
        destroy_iterator(iter);
      }
      return keys;
    }
  }

  public global::System.Collections.Generic.ICollection<string> Values {
    get {
      global::System.Collections.Generic.ICollection<string> vals = new global::System.Collections.Generic.List<string>();
      foreach (global::System.Collections.Generic.KeyValuePair<string, string> pair in this) {
        vals.Add(pair.Value);
      }
      return vals;
    }
  }

  public void Add(global::System.Collections.Generic.KeyValuePair<string, string> item) {
    Add(item.Key, item.Value);
  }

  public bool Remove(global::System.Collections.Generic.KeyValuePair<string, string> item) {
    if (Contains(item)) {
      return Remove(item.Key);
    } else {
      return false;
    }
  }

  public bool Contains(global::System.Collections.Generic.KeyValuePair<string, string> item) {
    if (this[item.Key] == item.Value) {
      return true;
    } else {
      return false;
    }
  }

  public void CopyTo(global::System.Collections.Generic.KeyValuePair<string, string>[] array) {
    CopyTo(array, 0);
  }

  public void CopyTo(global::System.Collections.Generic.KeyValuePair<string, string>[] array, int arrayIndex) {
    if (array == null)
      throw new global::System.ArgumentNullException("array");
    if (arrayIndex < 0)
      throw new global::System.ArgumentOutOfRangeException("arrayIndex", "Value is less than zero");
    if (array.Rank > 1)
      throw new global::System.ArgumentException("Multi dimensional array.", "array");
    if (arrayIndex+this.Count > array.Length)
      throw new global::System.ArgumentException("Number of elements to copy is too large.");

    global::System.Collections.Generic.IList<string> keyList = new global::System.Collections.Generic.List<string>(this.Keys);
    for (int i = 0; i < keyList.Count; i++) {
      string currentKey = keyList[i];
      array.SetValue(new global::System.Collections.Generic.KeyValuePair<string, string>(currentKey, this[currentKey]), arrayIndex+i);
    }
  }

  global::System.Collections.Generic.IEnumerator<global::System.Collections.Generic.KeyValuePair<string, string>> global::System.Collections.Generic.IEnumerable<global::System.Collections.Generic.KeyValuePair<string, string>>.GetEnumerator() {
    return new map_strstrEnumerator(this);
  }

  global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator() {
    return new map_strstrEnumerator(this);
  }

  public map_strstrEnumerator GetEnumerator() {
    return new map_strstrEnumerator(this);
  }

  // Type-safe enumerator
  /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown
  /// whenever the collection is modified. This has been done for changes in the size of the
  /// collection but not when one of the elements of the collection is modified as it is a bit
  /// tricky to detect unmanaged code that modifies the collection under our feet.
  public sealed class map_strstrEnumerator : global::System.Collections.IEnumerator,
      global::System.Collections.Generic.IEnumerator<global::System.Collections.Generic.KeyValuePair<string, string>>
  {
    private map_strstr collectionRef;
    private global::System.Collections.Generic.IList<string> keyCollection;
    private int currentIndex;
    private object currentObject;
    private int currentSize;

    public map_strstrEnumerator(map_strstr collection) {
      collectionRef = collection;
      keyCollection = new global::System.Collections.Generic.List<string>(collection.Keys);
      currentIndex = -1;
      currentObject = null;
      currentSize = collectionRef.Count;
    }

    // Type-safe iterator Current
    public global::System.Collections.Generic.KeyValuePair<string, string> Current {
      get {
        if (currentIndex == -1)
          throw new global::System.InvalidOperationException("Enumeration not started.");
        if (currentIndex > currentSize - 1)
          throw new global::System.InvalidOperationException("Enumeration finished.");
        if (currentObject == null)
          throw new global::System.InvalidOperationException("Collection modified.");
        return (global::System.Collections.Generic.KeyValuePair<string, string>)currentObject;
      }
    }

    // Type-unsafe IEnumerator.Current
    object global::System.Collections.IEnumerator.Current {
      get {
        return Current;
      }
    }

    public bool MoveNext() {
      int size = collectionRef.Count;
      bool moveOkay = (currentIndex+1 < size) && (size == currentSize);
      if (moveOkay) {
        currentIndex++;
        string currentKey = keyCollection[currentIndex];
        currentObject = new global::System.Collections.Generic.KeyValuePair<string, string>(currentKey, collectionRef[currentKey]);
      } else {
        currentObject = null;
      }
      return moveOkay;
    }

    public void Reset() {
      currentIndex = -1;
      currentObject = null;
      if (collectionRef.Count != currentSize) {
        throw new global::System.InvalidOperationException("Collection modified.");
      }
    }

    public void Dispose() {
      currentIndex = -1;
      currentObject = null;
    }
  }


  public map_strstr() : this(RobotRaconteurNETPINVOKE.new_map_strstr__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public map_strstr(map_strstr other) : this(RobotRaconteurNETPINVOKE.new_map_strstr__SWIG_1(map_strstr.getCPtr(other)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private uint size() {
    uint ret = RobotRaconteurNETPINVOKE.map_strstr_size(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool empty() {
    bool ret = RobotRaconteurNETPINVOKE.map_strstr_empty(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Clear() {
    RobotRaconteurNETPINVOKE.map_strstr_Clear(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private string getitem(string key) {
    string ret = RobotRaconteurNETPINVOKE.map_strstr_getitem(swigCPtr, key);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void setitem(string key, string x) {
    RobotRaconteurNETPINVOKE.map_strstr_setitem(swigCPtr, key, x);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public bool ContainsKey(string key) {
    bool ret = RobotRaconteurNETPINVOKE.map_strstr_ContainsKey(swigCPtr, key);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Add(string key, string value) {
    RobotRaconteurNETPINVOKE.map_strstr_Add(swigCPtr, key, value);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public bool Remove(string key) {
    bool ret = RobotRaconteurNETPINVOKE.map_strstr_Remove(swigCPtr, key);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private global::System.IntPtr create_iterator_begin() {
    global::System.IntPtr ret = RobotRaconteurNETPINVOKE.map_strstr_create_iterator_begin(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private string get_next_key(global::System.IntPtr swigiterator) {
    string ret = RobotRaconteurNETPINVOKE.map_strstr_get_next_key(swigCPtr, swigiterator);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void destroy_iterator(global::System.IntPtr swigiterator) {
    RobotRaconteurNETPINVOKE.map_strstr_destroy_iterator(swigCPtr, swigiterator);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class RRObject : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal RRObject(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(RRObject obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~RRObject() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_RRObject(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class RRValue : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal RRValue(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(RRValue obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~RRValue() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_RRValue(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class MessageElementData : RRValue {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnDerived;

  internal MessageElementData(global::System.IntPtr cPtr, bool cMemoryOwn) : base(RobotRaconteurNETPINVOKE.MessageElementData_SWIGSmartPtrUpcast(cPtr), true) {
    swigCMemOwnDerived = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(MessageElementData obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  protected override void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnDerived) {
          swigCMemOwnDerived = false;
          RobotRaconteurNETPINVOKE.delete_MessageElementData(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
      base.Dispose(disposing);
    }
  }

  public virtual string GetTypeString() {
    string ret = RobotRaconteurNETPINVOKE.MessageElementData_GetTypeString(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual DataTypes GetTypeID() {
    DataTypes ret = (DataTypes)RobotRaconteurNETPINVOKE.MessageElementData_GetTypeID(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class RRBaseArray : MessageElementData {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnDerived;

  internal RRBaseArray(global::System.IntPtr cPtr, bool cMemoryOwn) : base(RobotRaconteurNETPINVOKE.RRBaseArray_SWIGSmartPtrUpcast(cPtr), true) {
    swigCMemOwnDerived = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(RRBaseArray obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  protected override void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnDerived) {
          swigCMemOwnDerived = false;
          RobotRaconteurNETPINVOKE.delete_RRBaseArray(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
      base.Dispose(disposing);
    }
  }

  public override string GetTypeString() {
    string ret = RobotRaconteurNETPINVOKE.RRBaseArray_GetTypeString(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual uint size() {
    uint ret = RobotRaconteurNETPINVOKE.RRBaseArray_size(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual IntPtr void_ptr() {IntPtr res = RobotRaconteurNETPINVOKE.RRBaseArray_void_ptr(swigCPtr); 
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();; return res;}

  public virtual uint ElementSize() {
    uint ret = RobotRaconteurNETPINVOKE.RRBaseArray_ElementSize(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public override DataTypes GetTypeID() {
    DataTypes ret = (DataTypes)RobotRaconteurNETPINVOKE.RRBaseArray_GetTypeID(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class RRMultiDimArrayUntyped : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal RRMultiDimArrayUntyped(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(RRMultiDimArrayUntyped obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~RRMultiDimArrayUntyped() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_RRMultiDimArrayUntyped(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public RRBaseArray Dims {
    set {
      RobotRaconteurNETPINVOKE.RRMultiDimArrayUntyped_Dims_set(swigCPtr, RRBaseArray.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.RRMultiDimArrayUntyped_Dims_get(swigCPtr);
      RRBaseArray ret = (cPtr == global::System.IntPtr.Zero) ? null : new RRBaseArray(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public RRBaseArray Array {
    set {
      RobotRaconteurNETPINVOKE.RRMultiDimArrayUntyped_Array_set(swigCPtr, RRBaseArray.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.RRMultiDimArrayUntyped_Array_get(swigCPtr);
      RRBaseArray ret = (cPtr == global::System.IntPtr.Zero) ? null : new RRBaseArray(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public RRMultiDimArrayUntyped() : this(RobotRaconteurNETPINVOKE.new_RRMultiDimArrayUntyped(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class ServicePathSegment : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal ServicePathSegment(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(ServicePathSegment obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~ServicePathSegment() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_ServicePathSegment(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public ServicePathSegment() : this(RobotRaconteurNETPINVOKE.new_ServicePathSegment__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public ServicePathSegment(string name) : this(RobotRaconteurNETPINVOKE.new_ServicePathSegment__SWIG_1(name), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public ServicePathSegment(string name, string index) : this(RobotRaconteurNETPINVOKE.new_ServicePathSegment__SWIG_2(name, index), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public string name {
    set {
      RobotRaconteurNETPINVOKE.ServicePathSegment_name_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.ServicePathSegment_name_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public SWIGTYPE_p_boost__optionalT_std__string_t index {
    set {
      RobotRaconteurNETPINVOKE.ServicePathSegment_index_set(swigCPtr, SWIGTYPE_p_boost__optionalT_std__string_t.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.ServicePathSegment_index_get(swigCPtr);
      SWIGTYPE_p_boost__optionalT_std__string_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_boost__optionalT_std__string_t(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class ServicePathSegments : global::System.IDisposable, global::System.Collections.IEnumerable, global::System.Collections.Generic.IEnumerable<ServicePathSegment>
 {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal ServicePathSegments(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(ServicePathSegments obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~ServicePathSegments() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_ServicePathSegments(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public ServicePathSegments(global::System.Collections.IEnumerable c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (ServicePathSegment element in c) {
      this.Add(element);
    }
  }

  public ServicePathSegments(global::System.Collections.Generic.IEnumerable<ServicePathSegment> c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (ServicePathSegment element in c) {
      this.Add(element);
    }
  }

  public bool IsFixedSize {
    get {
      return false;
    }
  }

  public bool IsReadOnly {
    get {
      return false;
    }
  }

  public ServicePathSegment this[int index]  {
    get {
      return getitem(index);
    }
    set {
      setitem(index, value);
    }
  }

  public int Capacity {
    get {
      return (int)capacity();
    }
    set {
      if (value < size())
        throw new global::System.ArgumentOutOfRangeException("Capacity");
      reserve((uint)value);
    }
  }

  public int Count {
    get {
      return (int)size();
    }
  }

  public bool IsSynchronized {
    get {
      return false;
    }
  }

  public void CopyTo(ServicePathSegment[] array)
  {
    CopyTo(0, array, 0, this.Count);
  }

  public void CopyTo(ServicePathSegment[] array, int arrayIndex)
  {
    CopyTo(0, array, arrayIndex, this.Count);
  }

  public void CopyTo(int index, ServicePathSegment[] array, int arrayIndex, int count)
  {
    if (array == null)
      throw new global::System.ArgumentNullException("array");
    if (index < 0)
      throw new global::System.ArgumentOutOfRangeException("index", "Value is less than zero");
    if (arrayIndex < 0)
      throw new global::System.ArgumentOutOfRangeException("arrayIndex", "Value is less than zero");
    if (count < 0)
      throw new global::System.ArgumentOutOfRangeException("count", "Value is less than zero");
    if (array.Rank > 1)
      throw new global::System.ArgumentException("Multi dimensional array.", "array");
    if (index+count > this.Count || arrayIndex+count > array.Length)
      throw new global::System.ArgumentException("Number of elements to copy is too large.");
    for (int i=0; i<count; i++)
      array.SetValue(getitemcopy(index+i), arrayIndex+i);
  }

  public ServicePathSegment[] ToArray() {
    ServicePathSegment[] array = new ServicePathSegment[this.Count];
    this.CopyTo(array);
    return array;
  }

  global::System.Collections.Generic.IEnumerator<ServicePathSegment> global::System.Collections.Generic.IEnumerable<ServicePathSegment>.GetEnumerator() {
    return new ServicePathSegmentsEnumerator(this);
  }

  global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator() {
    return new ServicePathSegmentsEnumerator(this);
  }

  public ServicePathSegmentsEnumerator GetEnumerator() {
    return new ServicePathSegmentsEnumerator(this);
  }

  // Type-safe enumerator
  /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown
  /// whenever the collection is modified. This has been done for changes in the size of the
  /// collection but not when one of the elements of the collection is modified as it is a bit
  /// tricky to detect unmanaged code that modifies the collection under our feet.
  public sealed class ServicePathSegmentsEnumerator : global::System.Collections.IEnumerator
    , global::System.Collections.Generic.IEnumerator<ServicePathSegment>
  {
    private ServicePathSegments collectionRef;
    private int currentIndex;
    private object currentObject;
    private int currentSize;

    public ServicePathSegmentsEnumerator(ServicePathSegments collection) {
      collectionRef = collection;
      currentIndex = -1;
      currentObject = null;
      currentSize = collectionRef.Count;
    }

    // Type-safe iterator Current
    public ServicePathSegment Current {
      get {
        if (currentIndex == -1)
          throw new global::System.InvalidOperationException("Enumeration not started.");
        if (currentIndex > currentSize - 1)
          throw new global::System.InvalidOperationException("Enumeration finished.");
        if (currentObject == null)
          throw new global::System.InvalidOperationException("Collection modified.");
        return (ServicePathSegment)currentObject;
      }
    }

    // Type-unsafe IEnumerator.Current
    object global::System.Collections.IEnumerator.Current {
      get {
        return Current;
      }
    }

    public bool MoveNext() {
      int size = collectionRef.Count;
      bool moveOkay = (currentIndex+1 < size) && (size == currentSize);
      if (moveOkay) {
        currentIndex++;
        currentObject = collectionRef[currentIndex];
      } else {
        currentObject = null;
      }
      return moveOkay;
    }

    public void Reset() {
      currentIndex = -1;
      currentObject = null;
      if (collectionRef.Count != currentSize) {
        throw new global::System.InvalidOperationException("Collection modified.");
      }
    }

    public void Dispose() {
        currentIndex = -1;
        currentObject = null;
    }
  }

  public void Clear() {
    RobotRaconteurNETPINVOKE.ServicePathSegments_Clear(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Add(ServicePathSegment x) {
    RobotRaconteurNETPINVOKE.ServicePathSegments_Add(swigCPtr, ServicePathSegment.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private uint size() {
    uint ret = RobotRaconteurNETPINVOKE.ServicePathSegments_size(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private uint capacity() {
    uint ret = RobotRaconteurNETPINVOKE.ServicePathSegments_capacity(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void reserve(uint n) {
    RobotRaconteurNETPINVOKE.ServicePathSegments_reserve(swigCPtr, n);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public ServicePathSegments() : this(RobotRaconteurNETPINVOKE.new_ServicePathSegments__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public ServicePathSegments(ServicePathSegments other) : this(RobotRaconteurNETPINVOKE.new_ServicePathSegments__SWIG_1(ServicePathSegments.getCPtr(other)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public ServicePathSegments(int capacity) : this(RobotRaconteurNETPINVOKE.new_ServicePathSegments__SWIG_2(capacity), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private ServicePathSegment getitemcopy(int index) {
    ServicePathSegment ret = new ServicePathSegment(RobotRaconteurNETPINVOKE.ServicePathSegments_getitemcopy(swigCPtr, index), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private ServicePathSegment getitem(int index) {
    ServicePathSegment ret = new ServicePathSegment(RobotRaconteurNETPINVOKE.ServicePathSegments_getitem(swigCPtr, index), false);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void setitem(int index, ServicePathSegment val) {
    RobotRaconteurNETPINVOKE.ServicePathSegments_setitem(swigCPtr, index, ServicePathSegment.getCPtr(val));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void AddRange(ServicePathSegments values) {
    RobotRaconteurNETPINVOKE.ServicePathSegments_AddRange(swigCPtr, ServicePathSegments.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public ServicePathSegments GetRange(int index, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.ServicePathSegments_GetRange(swigCPtr, index, count);
    ServicePathSegments ret = (cPtr == global::System.IntPtr.Zero) ? null : new ServicePathSegments(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Insert(int index, ServicePathSegment x) {
    RobotRaconteurNETPINVOKE.ServicePathSegments_Insert(swigCPtr, index, ServicePathSegment.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void InsertRange(int index, ServicePathSegments values) {
    RobotRaconteurNETPINVOKE.ServicePathSegments_InsertRange(swigCPtr, index, ServicePathSegments.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveAt(int index) {
    RobotRaconteurNETPINVOKE.ServicePathSegments_RemoveAt(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveRange(int index, int count) {
    RobotRaconteurNETPINVOKE.ServicePathSegments_RemoveRange(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static ServicePathSegments Repeat(ServicePathSegment value, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.ServicePathSegments_Repeat(ServicePathSegment.getCPtr(value), count);
    ServicePathSegments ret = (cPtr == global::System.IntPtr.Zero) ? null : new ServicePathSegments(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Reverse() {
    RobotRaconteurNETPINVOKE.ServicePathSegments_Reverse__SWIG_0(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Reverse(int index, int count) {
    RobotRaconteurNETPINVOKE.ServicePathSegments_Reverse__SWIG_1(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SetRange(int index, ServicePathSegments values) {
    RobotRaconteurNETPINVOKE.ServicePathSegments_SetRange(swigCPtr, index, ServicePathSegments.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class MultiDimArray_CalculateCopyIndicesIter : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal MultiDimArray_CalculateCopyIndicesIter(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(MultiDimArray_CalculateCopyIndicesIter obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~MultiDimArray_CalculateCopyIndicesIter() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_MultiDimArray_CalculateCopyIndicesIter(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual bool Next(out uint indexa, out uint indexb, out uint len) {
    bool ret = RobotRaconteurNETPINVOKE.MultiDimArray_CalculateCopyIndicesIter_Next(swigCPtr, out indexa, out indexb, out len);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class vectorptr_typedefinition : global::System.IDisposable, global::System.Collections.IEnumerable, global::System.Collections.Generic.IEnumerable<TypeDefinition>
 {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal vectorptr_typedefinition(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(vectorptr_typedefinition obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~vectorptr_typedefinition() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_vectorptr_typedefinition(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public vectorptr_typedefinition(global::System.Collections.IEnumerable c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (TypeDefinition element in c) {
      this.Add(element);
    }
  }

  public vectorptr_typedefinition(global::System.Collections.Generic.IEnumerable<TypeDefinition> c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (TypeDefinition element in c) {
      this.Add(element);
    }
  }

  public bool IsFixedSize {
    get {
      return false;
    }
  }

  public bool IsReadOnly {
    get {
      return false;
    }
  }

  public TypeDefinition this[int index]  {
    get {
      return getitem(index);
    }
    set {
      setitem(index, value);
    }
  }

  public int Capacity {
    get {
      return (int)capacity();
    }
    set {
      if (value < size())
        throw new global::System.ArgumentOutOfRangeException("Capacity");
      reserve((uint)value);
    }
  }

  public int Count {
    get {
      return (int)size();
    }
  }

  public bool IsSynchronized {
    get {
      return false;
    }
  }

  public void CopyTo(TypeDefinition[] array)
  {
    CopyTo(0, array, 0, this.Count);
  }

  public void CopyTo(TypeDefinition[] array, int arrayIndex)
  {
    CopyTo(0, array, arrayIndex, this.Count);
  }

  public void CopyTo(int index, TypeDefinition[] array, int arrayIndex, int count)
  {
    if (array == null)
      throw new global::System.ArgumentNullException("array");
    if (index < 0)
      throw new global::System.ArgumentOutOfRangeException("index", "Value is less than zero");
    if (arrayIndex < 0)
      throw new global::System.ArgumentOutOfRangeException("arrayIndex", "Value is less than zero");
    if (count < 0)
      throw new global::System.ArgumentOutOfRangeException("count", "Value is less than zero");
    if (array.Rank > 1)
      throw new global::System.ArgumentException("Multi dimensional array.", "array");
    if (index+count > this.Count || arrayIndex+count > array.Length)
      throw new global::System.ArgumentException("Number of elements to copy is too large.");
    for (int i=0; i<count; i++)
      array.SetValue(getitemcopy(index+i), arrayIndex+i);
  }

  public TypeDefinition[] ToArray() {
    TypeDefinition[] array = new TypeDefinition[this.Count];
    this.CopyTo(array);
    return array;
  }

  global::System.Collections.Generic.IEnumerator<TypeDefinition> global::System.Collections.Generic.IEnumerable<TypeDefinition>.GetEnumerator() {
    return new vectorptr_typedefinitionEnumerator(this);
  }

  global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator() {
    return new vectorptr_typedefinitionEnumerator(this);
  }

  public vectorptr_typedefinitionEnumerator GetEnumerator() {
    return new vectorptr_typedefinitionEnumerator(this);
  }

  // Type-safe enumerator
  /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown
  /// whenever the collection is modified. This has been done for changes in the size of the
  /// collection but not when one of the elements of the collection is modified as it is a bit
  /// tricky to detect unmanaged code that modifies the collection under our feet.
  public sealed class vectorptr_typedefinitionEnumerator : global::System.Collections.IEnumerator
    , global::System.Collections.Generic.IEnumerator<TypeDefinition>
  {
    private vectorptr_typedefinition collectionRef;
    private int currentIndex;
    private object currentObject;
    private int currentSize;

    public vectorptr_typedefinitionEnumerator(vectorptr_typedefinition collection) {
      collectionRef = collection;
      currentIndex = -1;
      currentObject = null;
      currentSize = collectionRef.Count;
    }

    // Type-safe iterator Current
    public TypeDefinition Current {
      get {
        if (currentIndex == -1)
          throw new global::System.InvalidOperationException("Enumeration not started.");
        if (currentIndex > currentSize - 1)
          throw new global::System.InvalidOperationException("Enumeration finished.");
        if (currentObject == null)
          throw new global::System.InvalidOperationException("Collection modified.");
        return (TypeDefinition)currentObject;
      }
    }

    // Type-unsafe IEnumerator.Current
    object global::System.Collections.IEnumerator.Current {
      get {
        return Current;
      }
    }

    public bool MoveNext() {
      int size = collectionRef.Count;
      bool moveOkay = (currentIndex+1 < size) && (size == currentSize);
      if (moveOkay) {
        currentIndex++;
        currentObject = collectionRef[currentIndex];
      } else {
        currentObject = null;
      }
      return moveOkay;
    }

    public void Reset() {
      currentIndex = -1;
      currentObject = null;
      if (collectionRef.Count != currentSize) {
        throw new global::System.InvalidOperationException("Collection modified.");
      }
    }

    public void Dispose() {
        currentIndex = -1;
        currentObject = null;
    }
  }

  public void Clear() {
    RobotRaconteurNETPINVOKE.vectorptr_typedefinition_Clear(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Add(TypeDefinition x) {
    RobotRaconteurNETPINVOKE.vectorptr_typedefinition_Add(swigCPtr, TypeDefinition.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private uint size() {
    uint ret = RobotRaconteurNETPINVOKE.vectorptr_typedefinition_size(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private uint capacity() {
    uint ret = RobotRaconteurNETPINVOKE.vectorptr_typedefinition_capacity(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void reserve(uint n) {
    RobotRaconteurNETPINVOKE.vectorptr_typedefinition_reserve(swigCPtr, n);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_typedefinition() : this(RobotRaconteurNETPINVOKE.new_vectorptr_typedefinition__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_typedefinition(vectorptr_typedefinition other) : this(RobotRaconteurNETPINVOKE.new_vectorptr_typedefinition__SWIG_1(vectorptr_typedefinition.getCPtr(other)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_typedefinition(int capacity) : this(RobotRaconteurNETPINVOKE.new_vectorptr_typedefinition__SWIG_2(capacity), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private TypeDefinition getitemcopy(int index) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_typedefinition_getitemcopy(swigCPtr, index);
    TypeDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new TypeDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private TypeDefinition getitem(int index) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_typedefinition_getitem(swigCPtr, index);
    TypeDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new TypeDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void setitem(int index, TypeDefinition val) {
    RobotRaconteurNETPINVOKE.vectorptr_typedefinition_setitem(swigCPtr, index, TypeDefinition.getCPtr(val));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void AddRange(vectorptr_typedefinition values) {
    RobotRaconteurNETPINVOKE.vectorptr_typedefinition_AddRange(swigCPtr, vectorptr_typedefinition.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_typedefinition GetRange(int index, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_typedefinition_GetRange(swigCPtr, index, count);
    vectorptr_typedefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_typedefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Insert(int index, TypeDefinition x) {
    RobotRaconteurNETPINVOKE.vectorptr_typedefinition_Insert(swigCPtr, index, TypeDefinition.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void InsertRange(int index, vectorptr_typedefinition values) {
    RobotRaconteurNETPINVOKE.vectorptr_typedefinition_InsertRange(swigCPtr, index, vectorptr_typedefinition.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveAt(int index) {
    RobotRaconteurNETPINVOKE.vectorptr_typedefinition_RemoveAt(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveRange(int index, int count) {
    RobotRaconteurNETPINVOKE.vectorptr_typedefinition_RemoveRange(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static vectorptr_typedefinition Repeat(TypeDefinition value, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_typedefinition_Repeat(TypeDefinition.getCPtr(value), count);
    vectorptr_typedefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_typedefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Reverse() {
    RobotRaconteurNETPINVOKE.vectorptr_typedefinition_Reverse__SWIG_0(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Reverse(int index, int count) {
    RobotRaconteurNETPINVOKE.vectorptr_typedefinition_Reverse__SWIG_1(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SetRange(int index, vectorptr_typedefinition values) {
    RobotRaconteurNETPINVOKE.vectorptr_typedefinition_SetRange(swigCPtr, index, vectorptr_typedefinition.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public partial class vectorptr_memberdefinition : global::System.IDisposable, global::System.Collections.IEnumerable, global::System.Collections.Generic.IEnumerable<MemberDefinition>
 {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal vectorptr_memberdefinition(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(vectorptr_memberdefinition obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~vectorptr_memberdefinition() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_vectorptr_memberdefinition(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public vectorptr_memberdefinition(global::System.Collections.IEnumerable c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (MemberDefinition element in c) {
      this.Add(element);
    }
  }

  public vectorptr_memberdefinition(global::System.Collections.Generic.IEnumerable<MemberDefinition> c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (MemberDefinition element in c) {
      this.Add(element);
    }
  }

  public bool IsFixedSize {
    get {
      return false;
    }
  }

  public bool IsReadOnly {
    get {
      return false;
    }
  }

  public MemberDefinition this[int index]  {
    get {
      return getitem(index);
    }
    set {
      setitem(index, value);
    }
  }

  public int Capacity {
    get {
      return (int)capacity();
    }
    set {
      if (value < size())
        throw new global::System.ArgumentOutOfRangeException("Capacity");
      reserve((uint)value);
    }
  }

  public int Count {
    get {
      return (int)size();
    }
  }

  public bool IsSynchronized {
    get {
      return false;
    }
  }

  public void CopyTo(MemberDefinition[] array)
  {
    CopyTo(0, array, 0, this.Count);
  }

  public void CopyTo(MemberDefinition[] array, int arrayIndex)
  {
    CopyTo(0, array, arrayIndex, this.Count);
  }

  public void CopyTo(int index, MemberDefinition[] array, int arrayIndex, int count)
  {
    if (array == null)
      throw new global::System.ArgumentNullException("array");
    if (index < 0)
      throw new global::System.ArgumentOutOfRangeException("index", "Value is less than zero");
    if (arrayIndex < 0)
      throw new global::System.ArgumentOutOfRangeException("arrayIndex", "Value is less than zero");
    if (count < 0)
      throw new global::System.ArgumentOutOfRangeException("count", "Value is less than zero");
    if (array.Rank > 1)
      throw new global::System.ArgumentException("Multi dimensional array.", "array");
    if (index+count > this.Count || arrayIndex+count > array.Length)
      throw new global::System.ArgumentException("Number of elements to copy is too large.");
    for (int i=0; i<count; i++)
      array.SetValue(getitemcopy(index+i), arrayIndex+i);
  }

  public MemberDefinition[] ToArray() {
    MemberDefinition[] array = new MemberDefinition[this.Count];
    this.CopyTo(array);
    return array;
  }

  global::System.Collections.Generic.IEnumerator<MemberDefinition> global::System.Collections.Generic.IEnumerable<MemberDefinition>.GetEnumerator() {
    return new vectorptr_memberdefinitionEnumerator(this);
  }

  global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator() {
    return new vectorptr_memberdefinitionEnumerator(this);
  }

  public vectorptr_memberdefinitionEnumerator GetEnumerator() {
    return new vectorptr_memberdefinitionEnumerator(this);
  }

  // Type-safe enumerator
  /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown
  /// whenever the collection is modified. This has been done for changes in the size of the
  /// collection but not when one of the elements of the collection is modified as it is a bit
  /// tricky to detect unmanaged code that modifies the collection under our feet.
  public sealed class vectorptr_memberdefinitionEnumerator : global::System.Collections.IEnumerator
    , global::System.Collections.Generic.IEnumerator<MemberDefinition>
  {
    private vectorptr_memberdefinition collectionRef;
    private int currentIndex;
    private object currentObject;
    private int currentSize;

    public vectorptr_memberdefinitionEnumerator(vectorptr_memberdefinition collection) {
      collectionRef = collection;
      currentIndex = -1;
      currentObject = null;
      currentSize = collectionRef.Count;
    }

    // Type-safe iterator Current
    public MemberDefinition Current {
      get {
        if (currentIndex == -1)
          throw new global::System.InvalidOperationException("Enumeration not started.");
        if (currentIndex > currentSize - 1)
          throw new global::System.InvalidOperationException("Enumeration finished.");
        if (currentObject == null)
          throw new global::System.InvalidOperationException("Collection modified.");
        return (MemberDefinition)currentObject;
      }
    }

    // Type-unsafe IEnumerator.Current
    object global::System.Collections.IEnumerator.Current {
      get {
        return Current;
      }
    }

    public bool MoveNext() {
      int size = collectionRef.Count;
      bool moveOkay = (currentIndex+1 < size) && (size == currentSize);
      if (moveOkay) {
        currentIndex++;
        currentObject = collectionRef[currentIndex];
      } else {
        currentObject = null;
      }
      return moveOkay;
    }

    public void Reset() {
      currentIndex = -1;
      currentObject = null;
      if (collectionRef.Count != currentSize) {
        throw new global::System.InvalidOperationException("Collection modified.");
      }
    }

    public void Dispose() {
        currentIndex = -1;
        currentObject = null;
    }
  }

  public void Clear() {
    RobotRaconteurNETPINVOKE.vectorptr_memberdefinition_Clear(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Add(MemberDefinition x) {
    RobotRaconteurNETPINVOKE.vectorptr_memberdefinition_Add(swigCPtr, MemberDefinition.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private uint size() {
    uint ret = RobotRaconteurNETPINVOKE.vectorptr_memberdefinition_size(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private uint capacity() {
    uint ret = RobotRaconteurNETPINVOKE.vectorptr_memberdefinition_capacity(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void reserve(uint n) {
    RobotRaconteurNETPINVOKE.vectorptr_memberdefinition_reserve(swigCPtr, n);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_memberdefinition() : this(RobotRaconteurNETPINVOKE.new_vectorptr_memberdefinition__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_memberdefinition(vectorptr_memberdefinition other) : this(RobotRaconteurNETPINVOKE.new_vectorptr_memberdefinition__SWIG_1(vectorptr_memberdefinition.getCPtr(other)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_memberdefinition(int capacity) : this(RobotRaconteurNETPINVOKE.new_vectorptr_memberdefinition__SWIG_2(capacity), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private MemberDefinition _getitemcopy(int index) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_memberdefinition__getitemcopy(swigCPtr, index);
    MemberDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new MemberDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private MemberDefinition _getitem(int index) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_memberdefinition__getitem(swigCPtr, index);
    MemberDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new MemberDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void setitem(int index, MemberDefinition val) {
    RobotRaconteurNETPINVOKE.vectorptr_memberdefinition_setitem(swigCPtr, index, MemberDefinition.getCPtr(val));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void AddRange(vectorptr_memberdefinition values) {
    RobotRaconteurNETPINVOKE.vectorptr_memberdefinition_AddRange(swigCPtr, vectorptr_memberdefinition.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_memberdefinition GetRange(int index, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_memberdefinition_GetRange(swigCPtr, index, count);
    vectorptr_memberdefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_memberdefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Insert(int index, MemberDefinition x) {
    RobotRaconteurNETPINVOKE.vectorptr_memberdefinition_Insert(swigCPtr, index, MemberDefinition.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void InsertRange(int index, vectorptr_memberdefinition values) {
    RobotRaconteurNETPINVOKE.vectorptr_memberdefinition_InsertRange(swigCPtr, index, vectorptr_memberdefinition.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveAt(int index) {
    RobotRaconteurNETPINVOKE.vectorptr_memberdefinition_RemoveAt(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveRange(int index, int count) {
    RobotRaconteurNETPINVOKE.vectorptr_memberdefinition_RemoveRange(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static vectorptr_memberdefinition Repeat(MemberDefinition value, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_memberdefinition_Repeat(MemberDefinition.getCPtr(value), count);
    vectorptr_memberdefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_memberdefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Reverse() {
    RobotRaconteurNETPINVOKE.vectorptr_memberdefinition_Reverse__SWIG_0(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Reverse(int index, int count) {
    RobotRaconteurNETPINVOKE.vectorptr_memberdefinition_Reverse__SWIG_1(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SetRange(int index, vectorptr_memberdefinition values) {
    RobotRaconteurNETPINVOKE.vectorptr_memberdefinition_SetRange(swigCPtr, index, vectorptr_memberdefinition.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class vectorptr_serviceentrydefinition : global::System.IDisposable, global::System.Collections.IEnumerable, global::System.Collections.Generic.IEnumerable<ServiceEntryDefinition>
 {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal vectorptr_serviceentrydefinition(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(vectorptr_serviceentrydefinition obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~vectorptr_serviceentrydefinition() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_vectorptr_serviceentrydefinition(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public vectorptr_serviceentrydefinition(global::System.Collections.IEnumerable c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (ServiceEntryDefinition element in c) {
      this.Add(element);
    }
  }

  public vectorptr_serviceentrydefinition(global::System.Collections.Generic.IEnumerable<ServiceEntryDefinition> c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (ServiceEntryDefinition element in c) {
      this.Add(element);
    }
  }

  public bool IsFixedSize {
    get {
      return false;
    }
  }

  public bool IsReadOnly {
    get {
      return false;
    }
  }

  public ServiceEntryDefinition this[int index]  {
    get {
      return getitem(index);
    }
    set {
      setitem(index, value);
    }
  }

  public int Capacity {
    get {
      return (int)capacity();
    }
    set {
      if (value < size())
        throw new global::System.ArgumentOutOfRangeException("Capacity");
      reserve((uint)value);
    }
  }

  public int Count {
    get {
      return (int)size();
    }
  }

  public bool IsSynchronized {
    get {
      return false;
    }
  }

  public void CopyTo(ServiceEntryDefinition[] array)
  {
    CopyTo(0, array, 0, this.Count);
  }

  public void CopyTo(ServiceEntryDefinition[] array, int arrayIndex)
  {
    CopyTo(0, array, arrayIndex, this.Count);
  }

  public void CopyTo(int index, ServiceEntryDefinition[] array, int arrayIndex, int count)
  {
    if (array == null)
      throw new global::System.ArgumentNullException("array");
    if (index < 0)
      throw new global::System.ArgumentOutOfRangeException("index", "Value is less than zero");
    if (arrayIndex < 0)
      throw new global::System.ArgumentOutOfRangeException("arrayIndex", "Value is less than zero");
    if (count < 0)
      throw new global::System.ArgumentOutOfRangeException("count", "Value is less than zero");
    if (array.Rank > 1)
      throw new global::System.ArgumentException("Multi dimensional array.", "array");
    if (index+count > this.Count || arrayIndex+count > array.Length)
      throw new global::System.ArgumentException("Number of elements to copy is too large.");
    for (int i=0; i<count; i++)
      array.SetValue(getitemcopy(index+i), arrayIndex+i);
  }

  public ServiceEntryDefinition[] ToArray() {
    ServiceEntryDefinition[] array = new ServiceEntryDefinition[this.Count];
    this.CopyTo(array);
    return array;
  }

  global::System.Collections.Generic.IEnumerator<ServiceEntryDefinition> global::System.Collections.Generic.IEnumerable<ServiceEntryDefinition>.GetEnumerator() {
    return new vectorptr_serviceentrydefinitionEnumerator(this);
  }

  global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator() {
    return new vectorptr_serviceentrydefinitionEnumerator(this);
  }

  public vectorptr_serviceentrydefinitionEnumerator GetEnumerator() {
    return new vectorptr_serviceentrydefinitionEnumerator(this);
  }

  // Type-safe enumerator
  /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown
  /// whenever the collection is modified. This has been done for changes in the size of the
  /// collection but not when one of the elements of the collection is modified as it is a bit
  /// tricky to detect unmanaged code that modifies the collection under our feet.
  public sealed class vectorptr_serviceentrydefinitionEnumerator : global::System.Collections.IEnumerator
    , global::System.Collections.Generic.IEnumerator<ServiceEntryDefinition>
  {
    private vectorptr_serviceentrydefinition collectionRef;
    private int currentIndex;
    private object currentObject;
    private int currentSize;

    public vectorptr_serviceentrydefinitionEnumerator(vectorptr_serviceentrydefinition collection) {
      collectionRef = collection;
      currentIndex = -1;
      currentObject = null;
      currentSize = collectionRef.Count;
    }

    // Type-safe iterator Current
    public ServiceEntryDefinition Current {
      get {
        if (currentIndex == -1)
          throw new global::System.InvalidOperationException("Enumeration not started.");
        if (currentIndex > currentSize - 1)
          throw new global::System.InvalidOperationException("Enumeration finished.");
        if (currentObject == null)
          throw new global::System.InvalidOperationException("Collection modified.");
        return (ServiceEntryDefinition)currentObject;
      }
    }

    // Type-unsafe IEnumerator.Current
    object global::System.Collections.IEnumerator.Current {
      get {
        return Current;
      }
    }

    public bool MoveNext() {
      int size = collectionRef.Count;
      bool moveOkay = (currentIndex+1 < size) && (size == currentSize);
      if (moveOkay) {
        currentIndex++;
        currentObject = collectionRef[currentIndex];
      } else {
        currentObject = null;
      }
      return moveOkay;
    }

    public void Reset() {
      currentIndex = -1;
      currentObject = null;
      if (collectionRef.Count != currentSize) {
        throw new global::System.InvalidOperationException("Collection modified.");
      }
    }

    public void Dispose() {
        currentIndex = -1;
        currentObject = null;
    }
  }

  public void Clear() {
    RobotRaconteurNETPINVOKE.vectorptr_serviceentrydefinition_Clear(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Add(ServiceEntryDefinition x) {
    RobotRaconteurNETPINVOKE.vectorptr_serviceentrydefinition_Add(swigCPtr, ServiceEntryDefinition.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private uint size() {
    uint ret = RobotRaconteurNETPINVOKE.vectorptr_serviceentrydefinition_size(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private uint capacity() {
    uint ret = RobotRaconteurNETPINVOKE.vectorptr_serviceentrydefinition_capacity(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void reserve(uint n) {
    RobotRaconteurNETPINVOKE.vectorptr_serviceentrydefinition_reserve(swigCPtr, n);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_serviceentrydefinition() : this(RobotRaconteurNETPINVOKE.new_vectorptr_serviceentrydefinition__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_serviceentrydefinition(vectorptr_serviceentrydefinition other) : this(RobotRaconteurNETPINVOKE.new_vectorptr_serviceentrydefinition__SWIG_1(vectorptr_serviceentrydefinition.getCPtr(other)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_serviceentrydefinition(int capacity) : this(RobotRaconteurNETPINVOKE.new_vectorptr_serviceentrydefinition__SWIG_2(capacity), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private ServiceEntryDefinition getitemcopy(int index) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_serviceentrydefinition_getitemcopy(swigCPtr, index);
    ServiceEntryDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new ServiceEntryDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private ServiceEntryDefinition getitem(int index) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_serviceentrydefinition_getitem(swigCPtr, index);
    ServiceEntryDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new ServiceEntryDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void setitem(int index, ServiceEntryDefinition val) {
    RobotRaconteurNETPINVOKE.vectorptr_serviceentrydefinition_setitem(swigCPtr, index, ServiceEntryDefinition.getCPtr(val));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void AddRange(vectorptr_serviceentrydefinition values) {
    RobotRaconteurNETPINVOKE.vectorptr_serviceentrydefinition_AddRange(swigCPtr, vectorptr_serviceentrydefinition.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_serviceentrydefinition GetRange(int index, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_serviceentrydefinition_GetRange(swigCPtr, index, count);
    vectorptr_serviceentrydefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_serviceentrydefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Insert(int index, ServiceEntryDefinition x) {
    RobotRaconteurNETPINVOKE.vectorptr_serviceentrydefinition_Insert(swigCPtr, index, ServiceEntryDefinition.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void InsertRange(int index, vectorptr_serviceentrydefinition values) {
    RobotRaconteurNETPINVOKE.vectorptr_serviceentrydefinition_InsertRange(swigCPtr, index, vectorptr_serviceentrydefinition.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveAt(int index) {
    RobotRaconteurNETPINVOKE.vectorptr_serviceentrydefinition_RemoveAt(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveRange(int index, int count) {
    RobotRaconteurNETPINVOKE.vectorptr_serviceentrydefinition_RemoveRange(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static vectorptr_serviceentrydefinition Repeat(ServiceEntryDefinition value, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_serviceentrydefinition_Repeat(ServiceEntryDefinition.getCPtr(value), count);
    vectorptr_serviceentrydefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_serviceentrydefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Reverse() {
    RobotRaconteurNETPINVOKE.vectorptr_serviceentrydefinition_Reverse__SWIG_0(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Reverse(int index, int count) {
    RobotRaconteurNETPINVOKE.vectorptr_serviceentrydefinition_Reverse__SWIG_1(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SetRange(int index, vectorptr_serviceentrydefinition values) {
    RobotRaconteurNETPINVOKE.vectorptr_serviceentrydefinition_SetRange(swigCPtr, index, vectorptr_serviceentrydefinition.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class vectorptr_constantdefinition : global::System.IDisposable, global::System.Collections.IEnumerable, global::System.Collections.Generic.IEnumerable<ConstantDefinition>
 {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal vectorptr_constantdefinition(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(vectorptr_constantdefinition obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~vectorptr_constantdefinition() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_vectorptr_constantdefinition(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public vectorptr_constantdefinition(global::System.Collections.IEnumerable c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (ConstantDefinition element in c) {
      this.Add(element);
    }
  }

  public vectorptr_constantdefinition(global::System.Collections.Generic.IEnumerable<ConstantDefinition> c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (ConstantDefinition element in c) {
      this.Add(element);
    }
  }

  public bool IsFixedSize {
    get {
      return false;
    }
  }

  public bool IsReadOnly {
    get {
      return false;
    }
  }

  public ConstantDefinition this[int index]  {
    get {
      return getitem(index);
    }
    set {
      setitem(index, value);
    }
  }

  public int Capacity {
    get {
      return (int)capacity();
    }
    set {
      if (value < size())
        throw new global::System.ArgumentOutOfRangeException("Capacity");
      reserve((uint)value);
    }
  }

  public int Count {
    get {
      return (int)size();
    }
  }

  public bool IsSynchronized {
    get {
      return false;
    }
  }

  public void CopyTo(ConstantDefinition[] array)
  {
    CopyTo(0, array, 0, this.Count);
  }

  public void CopyTo(ConstantDefinition[] array, int arrayIndex)
  {
    CopyTo(0, array, arrayIndex, this.Count);
  }

  public void CopyTo(int index, ConstantDefinition[] array, int arrayIndex, int count)
  {
    if (array == null)
      throw new global::System.ArgumentNullException("array");
    if (index < 0)
      throw new global::System.ArgumentOutOfRangeException("index", "Value is less than zero");
    if (arrayIndex < 0)
      throw new global::System.ArgumentOutOfRangeException("arrayIndex", "Value is less than zero");
    if (count < 0)
      throw new global::System.ArgumentOutOfRangeException("count", "Value is less than zero");
    if (array.Rank > 1)
      throw new global::System.ArgumentException("Multi dimensional array.", "array");
    if (index+count > this.Count || arrayIndex+count > array.Length)
      throw new global::System.ArgumentException("Number of elements to copy is too large.");
    for (int i=0; i<count; i++)
      array.SetValue(getitemcopy(index+i), arrayIndex+i);
  }

  public ConstantDefinition[] ToArray() {
    ConstantDefinition[] array = new ConstantDefinition[this.Count];
    this.CopyTo(array);
    return array;
  }

  global::System.Collections.Generic.IEnumerator<ConstantDefinition> global::System.Collections.Generic.IEnumerable<ConstantDefinition>.GetEnumerator() {
    return new vectorptr_constantdefinitionEnumerator(this);
  }

  global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator() {
    return new vectorptr_constantdefinitionEnumerator(this);
  }

  public vectorptr_constantdefinitionEnumerator GetEnumerator() {
    return new vectorptr_constantdefinitionEnumerator(this);
  }

  // Type-safe enumerator
  /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown
  /// whenever the collection is modified. This has been done for changes in the size of the
  /// collection but not when one of the elements of the collection is modified as it is a bit
  /// tricky to detect unmanaged code that modifies the collection under our feet.
  public sealed class vectorptr_constantdefinitionEnumerator : global::System.Collections.IEnumerator
    , global::System.Collections.Generic.IEnumerator<ConstantDefinition>
  {
    private vectorptr_constantdefinition collectionRef;
    private int currentIndex;
    private object currentObject;
    private int currentSize;

    public vectorptr_constantdefinitionEnumerator(vectorptr_constantdefinition collection) {
      collectionRef = collection;
      currentIndex = -1;
      currentObject = null;
      currentSize = collectionRef.Count;
    }

    // Type-safe iterator Current
    public ConstantDefinition Current {
      get {
        if (currentIndex == -1)
          throw new global::System.InvalidOperationException("Enumeration not started.");
        if (currentIndex > currentSize - 1)
          throw new global::System.InvalidOperationException("Enumeration finished.");
        if (currentObject == null)
          throw new global::System.InvalidOperationException("Collection modified.");
        return (ConstantDefinition)currentObject;
      }
    }

    // Type-unsafe IEnumerator.Current
    object global::System.Collections.IEnumerator.Current {
      get {
        return Current;
      }
    }

    public bool MoveNext() {
      int size = collectionRef.Count;
      bool moveOkay = (currentIndex+1 < size) && (size == currentSize);
      if (moveOkay) {
        currentIndex++;
        currentObject = collectionRef[currentIndex];
      } else {
        currentObject = null;
      }
      return moveOkay;
    }

    public void Reset() {
      currentIndex = -1;
      currentObject = null;
      if (collectionRef.Count != currentSize) {
        throw new global::System.InvalidOperationException("Collection modified.");
      }
    }

    public void Dispose() {
        currentIndex = -1;
        currentObject = null;
    }
  }

  public void Clear() {
    RobotRaconteurNETPINVOKE.vectorptr_constantdefinition_Clear(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Add(ConstantDefinition x) {
    RobotRaconteurNETPINVOKE.vectorptr_constantdefinition_Add(swigCPtr, ConstantDefinition.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private uint size() {
    uint ret = RobotRaconteurNETPINVOKE.vectorptr_constantdefinition_size(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private uint capacity() {
    uint ret = RobotRaconteurNETPINVOKE.vectorptr_constantdefinition_capacity(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void reserve(uint n) {
    RobotRaconteurNETPINVOKE.vectorptr_constantdefinition_reserve(swigCPtr, n);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_constantdefinition() : this(RobotRaconteurNETPINVOKE.new_vectorptr_constantdefinition__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_constantdefinition(vectorptr_constantdefinition other) : this(RobotRaconteurNETPINVOKE.new_vectorptr_constantdefinition__SWIG_1(vectorptr_constantdefinition.getCPtr(other)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_constantdefinition(int capacity) : this(RobotRaconteurNETPINVOKE.new_vectorptr_constantdefinition__SWIG_2(capacity), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private ConstantDefinition getitemcopy(int index) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_constantdefinition_getitemcopy(swigCPtr, index);
    ConstantDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new ConstantDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private ConstantDefinition getitem(int index) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_constantdefinition_getitem(swigCPtr, index);
    ConstantDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new ConstantDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void setitem(int index, ConstantDefinition val) {
    RobotRaconteurNETPINVOKE.vectorptr_constantdefinition_setitem(swigCPtr, index, ConstantDefinition.getCPtr(val));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void AddRange(vectorptr_constantdefinition values) {
    RobotRaconteurNETPINVOKE.vectorptr_constantdefinition_AddRange(swigCPtr, vectorptr_constantdefinition.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_constantdefinition GetRange(int index, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_constantdefinition_GetRange(swigCPtr, index, count);
    vectorptr_constantdefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_constantdefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Insert(int index, ConstantDefinition x) {
    RobotRaconteurNETPINVOKE.vectorptr_constantdefinition_Insert(swigCPtr, index, ConstantDefinition.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void InsertRange(int index, vectorptr_constantdefinition values) {
    RobotRaconteurNETPINVOKE.vectorptr_constantdefinition_InsertRange(swigCPtr, index, vectorptr_constantdefinition.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveAt(int index) {
    RobotRaconteurNETPINVOKE.vectorptr_constantdefinition_RemoveAt(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveRange(int index, int count) {
    RobotRaconteurNETPINVOKE.vectorptr_constantdefinition_RemoveRange(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static vectorptr_constantdefinition Repeat(ConstantDefinition value, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_constantdefinition_Repeat(ConstantDefinition.getCPtr(value), count);
    vectorptr_constantdefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_constantdefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Reverse() {
    RobotRaconteurNETPINVOKE.vectorptr_constantdefinition_Reverse__SWIG_0(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Reverse(int index, int count) {
    RobotRaconteurNETPINVOKE.vectorptr_constantdefinition_Reverse__SWIG_1(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SetRange(int index, vectorptr_constantdefinition values) {
    RobotRaconteurNETPINVOKE.vectorptr_constantdefinition_SetRange(swigCPtr, index, vectorptr_constantdefinition.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class vectorptr_enumdefinition : global::System.IDisposable, global::System.Collections.IEnumerable, global::System.Collections.Generic.IEnumerable<EnumDefinition>
 {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal vectorptr_enumdefinition(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(vectorptr_enumdefinition obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~vectorptr_enumdefinition() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_vectorptr_enumdefinition(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public vectorptr_enumdefinition(global::System.Collections.IEnumerable c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (EnumDefinition element in c) {
      this.Add(element);
    }
  }

  public vectorptr_enumdefinition(global::System.Collections.Generic.IEnumerable<EnumDefinition> c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (EnumDefinition element in c) {
      this.Add(element);
    }
  }

  public bool IsFixedSize {
    get {
      return false;
    }
  }

  public bool IsReadOnly {
    get {
      return false;
    }
  }

  public EnumDefinition this[int index]  {
    get {
      return getitem(index);
    }
    set {
      setitem(index, value);
    }
  }

  public int Capacity {
    get {
      return (int)capacity();
    }
    set {
      if (value < size())
        throw new global::System.ArgumentOutOfRangeException("Capacity");
      reserve((uint)value);
    }
  }

  public int Count {
    get {
      return (int)size();
    }
  }

  public bool IsSynchronized {
    get {
      return false;
    }
  }

  public void CopyTo(EnumDefinition[] array)
  {
    CopyTo(0, array, 0, this.Count);
  }

  public void CopyTo(EnumDefinition[] array, int arrayIndex)
  {
    CopyTo(0, array, arrayIndex, this.Count);
  }

  public void CopyTo(int index, EnumDefinition[] array, int arrayIndex, int count)
  {
    if (array == null)
      throw new global::System.ArgumentNullException("array");
    if (index < 0)
      throw new global::System.ArgumentOutOfRangeException("index", "Value is less than zero");
    if (arrayIndex < 0)
      throw new global::System.ArgumentOutOfRangeException("arrayIndex", "Value is less than zero");
    if (count < 0)
      throw new global::System.ArgumentOutOfRangeException("count", "Value is less than zero");
    if (array.Rank > 1)
      throw new global::System.ArgumentException("Multi dimensional array.", "array");
    if (index+count > this.Count || arrayIndex+count > array.Length)
      throw new global::System.ArgumentException("Number of elements to copy is too large.");
    for (int i=0; i<count; i++)
      array.SetValue(getitemcopy(index+i), arrayIndex+i);
  }

  public EnumDefinition[] ToArray() {
    EnumDefinition[] array = new EnumDefinition[this.Count];
    this.CopyTo(array);
    return array;
  }

  global::System.Collections.Generic.IEnumerator<EnumDefinition> global::System.Collections.Generic.IEnumerable<EnumDefinition>.GetEnumerator() {
    return new vectorptr_enumdefinitionEnumerator(this);
  }

  global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator() {
    return new vectorptr_enumdefinitionEnumerator(this);
  }

  public vectorptr_enumdefinitionEnumerator GetEnumerator() {
    return new vectorptr_enumdefinitionEnumerator(this);
  }

  // Type-safe enumerator
  /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown
  /// whenever the collection is modified. This has been done for changes in the size of the
  /// collection but not when one of the elements of the collection is modified as it is a bit
  /// tricky to detect unmanaged code that modifies the collection under our feet.
  public sealed class vectorptr_enumdefinitionEnumerator : global::System.Collections.IEnumerator
    , global::System.Collections.Generic.IEnumerator<EnumDefinition>
  {
    private vectorptr_enumdefinition collectionRef;
    private int currentIndex;
    private object currentObject;
    private int currentSize;

    public vectorptr_enumdefinitionEnumerator(vectorptr_enumdefinition collection) {
      collectionRef = collection;
      currentIndex = -1;
      currentObject = null;
      currentSize = collectionRef.Count;
    }

    // Type-safe iterator Current
    public EnumDefinition Current {
      get {
        if (currentIndex == -1)
          throw new global::System.InvalidOperationException("Enumeration not started.");
        if (currentIndex > currentSize - 1)
          throw new global::System.InvalidOperationException("Enumeration finished.");
        if (currentObject == null)
          throw new global::System.InvalidOperationException("Collection modified.");
        return (EnumDefinition)currentObject;
      }
    }

    // Type-unsafe IEnumerator.Current
    object global::System.Collections.IEnumerator.Current {
      get {
        return Current;
      }
    }

    public bool MoveNext() {
      int size = collectionRef.Count;
      bool moveOkay = (currentIndex+1 < size) && (size == currentSize);
      if (moveOkay) {
        currentIndex++;
        currentObject = collectionRef[currentIndex];
      } else {
        currentObject = null;
      }
      return moveOkay;
    }

    public void Reset() {
      currentIndex = -1;
      currentObject = null;
      if (collectionRef.Count != currentSize) {
        throw new global::System.InvalidOperationException("Collection modified.");
      }
    }

    public void Dispose() {
        currentIndex = -1;
        currentObject = null;
    }
  }

  public void Clear() {
    RobotRaconteurNETPINVOKE.vectorptr_enumdefinition_Clear(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Add(EnumDefinition x) {
    RobotRaconteurNETPINVOKE.vectorptr_enumdefinition_Add(swigCPtr, EnumDefinition.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private uint size() {
    uint ret = RobotRaconteurNETPINVOKE.vectorptr_enumdefinition_size(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private uint capacity() {
    uint ret = RobotRaconteurNETPINVOKE.vectorptr_enumdefinition_capacity(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void reserve(uint n) {
    RobotRaconteurNETPINVOKE.vectorptr_enumdefinition_reserve(swigCPtr, n);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_enumdefinition() : this(RobotRaconteurNETPINVOKE.new_vectorptr_enumdefinition__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_enumdefinition(vectorptr_enumdefinition other) : this(RobotRaconteurNETPINVOKE.new_vectorptr_enumdefinition__SWIG_1(vectorptr_enumdefinition.getCPtr(other)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_enumdefinition(int capacity) : this(RobotRaconteurNETPINVOKE.new_vectorptr_enumdefinition__SWIG_2(capacity), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private EnumDefinition getitemcopy(int index) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_enumdefinition_getitemcopy(swigCPtr, index);
    EnumDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new EnumDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private EnumDefinition getitem(int index) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_enumdefinition_getitem(swigCPtr, index);
    EnumDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new EnumDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void setitem(int index, EnumDefinition val) {
    RobotRaconteurNETPINVOKE.vectorptr_enumdefinition_setitem(swigCPtr, index, EnumDefinition.getCPtr(val));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void AddRange(vectorptr_enumdefinition values) {
    RobotRaconteurNETPINVOKE.vectorptr_enumdefinition_AddRange(swigCPtr, vectorptr_enumdefinition.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_enumdefinition GetRange(int index, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_enumdefinition_GetRange(swigCPtr, index, count);
    vectorptr_enumdefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_enumdefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Insert(int index, EnumDefinition x) {
    RobotRaconteurNETPINVOKE.vectorptr_enumdefinition_Insert(swigCPtr, index, EnumDefinition.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void InsertRange(int index, vectorptr_enumdefinition values) {
    RobotRaconteurNETPINVOKE.vectorptr_enumdefinition_InsertRange(swigCPtr, index, vectorptr_enumdefinition.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveAt(int index) {
    RobotRaconteurNETPINVOKE.vectorptr_enumdefinition_RemoveAt(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveRange(int index, int count) {
    RobotRaconteurNETPINVOKE.vectorptr_enumdefinition_RemoveRange(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static vectorptr_enumdefinition Repeat(EnumDefinition value, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_enumdefinition_Repeat(EnumDefinition.getCPtr(value), count);
    vectorptr_enumdefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_enumdefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Reverse() {
    RobotRaconteurNETPINVOKE.vectorptr_enumdefinition_Reverse__SWIG_0(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Reverse(int index, int count) {
    RobotRaconteurNETPINVOKE.vectorptr_enumdefinition_Reverse__SWIG_1(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SetRange(int index, vectorptr_enumdefinition values) {
    RobotRaconteurNETPINVOKE.vectorptr_enumdefinition_SetRange(swigCPtr, index, vectorptr_enumdefinition.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class vector_constantdefinition_structfield : global::System.IDisposable, global::System.Collections.IEnumerable, global::System.Collections.Generic.IEnumerable<ConstantDefinition_StructField>
 {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal vector_constantdefinition_structfield(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(vector_constantdefinition_structfield obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~vector_constantdefinition_structfield() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_vector_constantdefinition_structfield(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public vector_constantdefinition_structfield(global::System.Collections.IEnumerable c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (ConstantDefinition_StructField element in c) {
      this.Add(element);
    }
  }

  public vector_constantdefinition_structfield(global::System.Collections.Generic.IEnumerable<ConstantDefinition_StructField> c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (ConstantDefinition_StructField element in c) {
      this.Add(element);
    }
  }

  public bool IsFixedSize {
    get {
      return false;
    }
  }

  public bool IsReadOnly {
    get {
      return false;
    }
  }

  public ConstantDefinition_StructField this[int index]  {
    get {
      return getitem(index);
    }
    set {
      setitem(index, value);
    }
  }

  public int Capacity {
    get {
      return (int)capacity();
    }
    set {
      if (value < size())
        throw new global::System.ArgumentOutOfRangeException("Capacity");
      reserve((uint)value);
    }
  }

  public int Count {
    get {
      return (int)size();
    }
  }

  public bool IsSynchronized {
    get {
      return false;
    }
  }

  public void CopyTo(ConstantDefinition_StructField[] array)
  {
    CopyTo(0, array, 0, this.Count);
  }

  public void CopyTo(ConstantDefinition_StructField[] array, int arrayIndex)
  {
    CopyTo(0, array, arrayIndex, this.Count);
  }

  public void CopyTo(int index, ConstantDefinition_StructField[] array, int arrayIndex, int count)
  {
    if (array == null)
      throw new global::System.ArgumentNullException("array");
    if (index < 0)
      throw new global::System.ArgumentOutOfRangeException("index", "Value is less than zero");
    if (arrayIndex < 0)
      throw new global::System.ArgumentOutOfRangeException("arrayIndex", "Value is less than zero");
    if (count < 0)
      throw new global::System.ArgumentOutOfRangeException("count", "Value is less than zero");
    if (array.Rank > 1)
      throw new global::System.ArgumentException("Multi dimensional array.", "array");
    if (index+count > this.Count || arrayIndex+count > array.Length)
      throw new global::System.ArgumentException("Number of elements to copy is too large.");
    for (int i=0; i<count; i++)
      array.SetValue(getitemcopy(index+i), arrayIndex+i);
  }

  public ConstantDefinition_StructField[] ToArray() {
    ConstantDefinition_StructField[] array = new ConstantDefinition_StructField[this.Count];
    this.CopyTo(array);
    return array;
  }

  global::System.Collections.Generic.IEnumerator<ConstantDefinition_StructField> global::System.Collections.Generic.IEnumerable<ConstantDefinition_StructField>.GetEnumerator() {
    return new vector_constantdefinition_structfieldEnumerator(this);
  }

  global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator() {
    return new vector_constantdefinition_structfieldEnumerator(this);
  }

  public vector_constantdefinition_structfieldEnumerator GetEnumerator() {
    return new vector_constantdefinition_structfieldEnumerator(this);
  }

  // Type-safe enumerator
  /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown
  /// whenever the collection is modified. This has been done for changes in the size of the
  /// collection but not when one of the elements of the collection is modified as it is a bit
  /// tricky to detect unmanaged code that modifies the collection under our feet.
  public sealed class vector_constantdefinition_structfieldEnumerator : global::System.Collections.IEnumerator
    , global::System.Collections.Generic.IEnumerator<ConstantDefinition_StructField>
  {
    private vector_constantdefinition_structfield collectionRef;
    private int currentIndex;
    private object currentObject;
    private int currentSize;

    public vector_constantdefinition_structfieldEnumerator(vector_constantdefinition_structfield collection) {
      collectionRef = collection;
      currentIndex = -1;
      currentObject = null;
      currentSize = collectionRef.Count;
    }

    // Type-safe iterator Current
    public ConstantDefinition_StructField Current {
      get {
        if (currentIndex == -1)
          throw new global::System.InvalidOperationException("Enumeration not started.");
        if (currentIndex > currentSize - 1)
          throw new global::System.InvalidOperationException("Enumeration finished.");
        if (currentObject == null)
          throw new global::System.InvalidOperationException("Collection modified.");
        return (ConstantDefinition_StructField)currentObject;
      }
    }

    // Type-unsafe IEnumerator.Current
    object global::System.Collections.IEnumerator.Current {
      get {
        return Current;
      }
    }

    public bool MoveNext() {
      int size = collectionRef.Count;
      bool moveOkay = (currentIndex+1 < size) && (size == currentSize);
      if (moveOkay) {
        currentIndex++;
        currentObject = collectionRef[currentIndex];
      } else {
        currentObject = null;
      }
      return moveOkay;
    }

    public void Reset() {
      currentIndex = -1;
      currentObject = null;
      if (collectionRef.Count != currentSize) {
        throw new global::System.InvalidOperationException("Collection modified.");
      }
    }

    public void Dispose() {
        currentIndex = -1;
        currentObject = null;
    }
  }

  public void Clear() {
    RobotRaconteurNETPINVOKE.vector_constantdefinition_structfield_Clear(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Add(ConstantDefinition_StructField x) {
    RobotRaconteurNETPINVOKE.vector_constantdefinition_structfield_Add(swigCPtr, ConstantDefinition_StructField.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private uint size() {
    uint ret = RobotRaconteurNETPINVOKE.vector_constantdefinition_structfield_size(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private uint capacity() {
    uint ret = RobotRaconteurNETPINVOKE.vector_constantdefinition_structfield_capacity(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void reserve(uint n) {
    RobotRaconteurNETPINVOKE.vector_constantdefinition_structfield_reserve(swigCPtr, n);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vector_constantdefinition_structfield() : this(RobotRaconteurNETPINVOKE.new_vector_constantdefinition_structfield__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vector_constantdefinition_structfield(vector_constantdefinition_structfield other) : this(RobotRaconteurNETPINVOKE.new_vector_constantdefinition_structfield__SWIG_1(vector_constantdefinition_structfield.getCPtr(other)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vector_constantdefinition_structfield(int capacity) : this(RobotRaconteurNETPINVOKE.new_vector_constantdefinition_structfield__SWIG_2(capacity), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private ConstantDefinition_StructField getitemcopy(int index) {
    ConstantDefinition_StructField ret = new ConstantDefinition_StructField(RobotRaconteurNETPINVOKE.vector_constantdefinition_structfield_getitemcopy(swigCPtr, index), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private ConstantDefinition_StructField getitem(int index) {
    ConstantDefinition_StructField ret = new ConstantDefinition_StructField(RobotRaconteurNETPINVOKE.vector_constantdefinition_structfield_getitem(swigCPtr, index), false);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void setitem(int index, ConstantDefinition_StructField val) {
    RobotRaconteurNETPINVOKE.vector_constantdefinition_structfield_setitem(swigCPtr, index, ConstantDefinition_StructField.getCPtr(val));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void AddRange(vector_constantdefinition_structfield values) {
    RobotRaconteurNETPINVOKE.vector_constantdefinition_structfield_AddRange(swigCPtr, vector_constantdefinition_structfield.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vector_constantdefinition_structfield GetRange(int index, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vector_constantdefinition_structfield_GetRange(swigCPtr, index, count);
    vector_constantdefinition_structfield ret = (cPtr == global::System.IntPtr.Zero) ? null : new vector_constantdefinition_structfield(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Insert(int index, ConstantDefinition_StructField x) {
    RobotRaconteurNETPINVOKE.vector_constantdefinition_structfield_Insert(swigCPtr, index, ConstantDefinition_StructField.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void InsertRange(int index, vector_constantdefinition_structfield values) {
    RobotRaconteurNETPINVOKE.vector_constantdefinition_structfield_InsertRange(swigCPtr, index, vector_constantdefinition_structfield.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveAt(int index) {
    RobotRaconteurNETPINVOKE.vector_constantdefinition_structfield_RemoveAt(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveRange(int index, int count) {
    RobotRaconteurNETPINVOKE.vector_constantdefinition_structfield_RemoveRange(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static vector_constantdefinition_structfield Repeat(ConstantDefinition_StructField value, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vector_constantdefinition_structfield_Repeat(ConstantDefinition_StructField.getCPtr(value), count);
    vector_constantdefinition_structfield ret = (cPtr == global::System.IntPtr.Zero) ? null : new vector_constantdefinition_structfield(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Reverse() {
    RobotRaconteurNETPINVOKE.vector_constantdefinition_structfield_Reverse__SWIG_0(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Reverse(int index, int count) {
    RobotRaconteurNETPINVOKE.vector_constantdefinition_structfield_Reverse__SWIG_1(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SetRange(int index, vector_constantdefinition_structfield values) {
    RobotRaconteurNETPINVOKE.vector_constantdefinition_structfield_SetRange(swigCPtr, index, vector_constantdefinition_structfield.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class vector_enumdefinitionvalues : global::System.IDisposable, global::System.Collections.IEnumerable, global::System.Collections.Generic.IEnumerable<EnumDefinitionValue>
 {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal vector_enumdefinitionvalues(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(vector_enumdefinitionvalues obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~vector_enumdefinitionvalues() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_vector_enumdefinitionvalues(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public vector_enumdefinitionvalues(global::System.Collections.IEnumerable c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (EnumDefinitionValue element in c) {
      this.Add(element);
    }
  }

  public vector_enumdefinitionvalues(global::System.Collections.Generic.IEnumerable<EnumDefinitionValue> c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (EnumDefinitionValue element in c) {
      this.Add(element);
    }
  }

  public bool IsFixedSize {
    get {
      return false;
    }
  }

  public bool IsReadOnly {
    get {
      return false;
    }
  }

  public EnumDefinitionValue this[int index]  {
    get {
      return getitem(index);
    }
    set {
      setitem(index, value);
    }
  }

  public int Capacity {
    get {
      return (int)capacity();
    }
    set {
      if (value < size())
        throw new global::System.ArgumentOutOfRangeException("Capacity");
      reserve((uint)value);
    }
  }

  public int Count {
    get {
      return (int)size();
    }
  }

  public bool IsSynchronized {
    get {
      return false;
    }
  }

  public void CopyTo(EnumDefinitionValue[] array)
  {
    CopyTo(0, array, 0, this.Count);
  }

  public void CopyTo(EnumDefinitionValue[] array, int arrayIndex)
  {
    CopyTo(0, array, arrayIndex, this.Count);
  }

  public void CopyTo(int index, EnumDefinitionValue[] array, int arrayIndex, int count)
  {
    if (array == null)
      throw new global::System.ArgumentNullException("array");
    if (index < 0)
      throw new global::System.ArgumentOutOfRangeException("index", "Value is less than zero");
    if (arrayIndex < 0)
      throw new global::System.ArgumentOutOfRangeException("arrayIndex", "Value is less than zero");
    if (count < 0)
      throw new global::System.ArgumentOutOfRangeException("count", "Value is less than zero");
    if (array.Rank > 1)
      throw new global::System.ArgumentException("Multi dimensional array.", "array");
    if (index+count > this.Count || arrayIndex+count > array.Length)
      throw new global::System.ArgumentException("Number of elements to copy is too large.");
    for (int i=0; i<count; i++)
      array.SetValue(getitemcopy(index+i), arrayIndex+i);
  }

  public EnumDefinitionValue[] ToArray() {
    EnumDefinitionValue[] array = new EnumDefinitionValue[this.Count];
    this.CopyTo(array);
    return array;
  }

  global::System.Collections.Generic.IEnumerator<EnumDefinitionValue> global::System.Collections.Generic.IEnumerable<EnumDefinitionValue>.GetEnumerator() {
    return new vector_enumdefinitionvaluesEnumerator(this);
  }

  global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator() {
    return new vector_enumdefinitionvaluesEnumerator(this);
  }

  public vector_enumdefinitionvaluesEnumerator GetEnumerator() {
    return new vector_enumdefinitionvaluesEnumerator(this);
  }

  // Type-safe enumerator
  /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown
  /// whenever the collection is modified. This has been done for changes in the size of the
  /// collection but not when one of the elements of the collection is modified as it is a bit
  /// tricky to detect unmanaged code that modifies the collection under our feet.
  public sealed class vector_enumdefinitionvaluesEnumerator : global::System.Collections.IEnumerator
    , global::System.Collections.Generic.IEnumerator<EnumDefinitionValue>
  {
    private vector_enumdefinitionvalues collectionRef;
    private int currentIndex;
    private object currentObject;
    private int currentSize;

    public vector_enumdefinitionvaluesEnumerator(vector_enumdefinitionvalues collection) {
      collectionRef = collection;
      currentIndex = -1;
      currentObject = null;
      currentSize = collectionRef.Count;
    }

    // Type-safe iterator Current
    public EnumDefinitionValue Current {
      get {
        if (currentIndex == -1)
          throw new global::System.InvalidOperationException("Enumeration not started.");
        if (currentIndex > currentSize - 1)
          throw new global::System.InvalidOperationException("Enumeration finished.");
        if (currentObject == null)
          throw new global::System.InvalidOperationException("Collection modified.");
        return (EnumDefinitionValue)currentObject;
      }
    }

    // Type-unsafe IEnumerator.Current
    object global::System.Collections.IEnumerator.Current {
      get {
        return Current;
      }
    }

    public bool MoveNext() {
      int size = collectionRef.Count;
      bool moveOkay = (currentIndex+1 < size) && (size == currentSize);
      if (moveOkay) {
        currentIndex++;
        currentObject = collectionRef[currentIndex];
      } else {
        currentObject = null;
      }
      return moveOkay;
    }

    public void Reset() {
      currentIndex = -1;
      currentObject = null;
      if (collectionRef.Count != currentSize) {
        throw new global::System.InvalidOperationException("Collection modified.");
      }
    }

    public void Dispose() {
        currentIndex = -1;
        currentObject = null;
    }
  }

  public void Clear() {
    RobotRaconteurNETPINVOKE.vector_enumdefinitionvalues_Clear(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Add(EnumDefinitionValue x) {
    RobotRaconteurNETPINVOKE.vector_enumdefinitionvalues_Add(swigCPtr, EnumDefinitionValue.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private uint size() {
    uint ret = RobotRaconteurNETPINVOKE.vector_enumdefinitionvalues_size(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private uint capacity() {
    uint ret = RobotRaconteurNETPINVOKE.vector_enumdefinitionvalues_capacity(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void reserve(uint n) {
    RobotRaconteurNETPINVOKE.vector_enumdefinitionvalues_reserve(swigCPtr, n);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vector_enumdefinitionvalues() : this(RobotRaconteurNETPINVOKE.new_vector_enumdefinitionvalues__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vector_enumdefinitionvalues(vector_enumdefinitionvalues other) : this(RobotRaconteurNETPINVOKE.new_vector_enumdefinitionvalues__SWIG_1(vector_enumdefinitionvalues.getCPtr(other)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vector_enumdefinitionvalues(int capacity) : this(RobotRaconteurNETPINVOKE.new_vector_enumdefinitionvalues__SWIG_2(capacity), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private EnumDefinitionValue getitemcopy(int index) {
    EnumDefinitionValue ret = new EnumDefinitionValue(RobotRaconteurNETPINVOKE.vector_enumdefinitionvalues_getitemcopy(swigCPtr, index), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private EnumDefinitionValue getitem(int index) {
    EnumDefinitionValue ret = new EnumDefinitionValue(RobotRaconteurNETPINVOKE.vector_enumdefinitionvalues_getitem(swigCPtr, index), false);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void setitem(int index, EnumDefinitionValue val) {
    RobotRaconteurNETPINVOKE.vector_enumdefinitionvalues_setitem(swigCPtr, index, EnumDefinitionValue.getCPtr(val));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void AddRange(vector_enumdefinitionvalues values) {
    RobotRaconteurNETPINVOKE.vector_enumdefinitionvalues_AddRange(swigCPtr, vector_enumdefinitionvalues.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vector_enumdefinitionvalues GetRange(int index, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vector_enumdefinitionvalues_GetRange(swigCPtr, index, count);
    vector_enumdefinitionvalues ret = (cPtr == global::System.IntPtr.Zero) ? null : new vector_enumdefinitionvalues(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Insert(int index, EnumDefinitionValue x) {
    RobotRaconteurNETPINVOKE.vector_enumdefinitionvalues_Insert(swigCPtr, index, EnumDefinitionValue.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void InsertRange(int index, vector_enumdefinitionvalues values) {
    RobotRaconteurNETPINVOKE.vector_enumdefinitionvalues_InsertRange(swigCPtr, index, vector_enumdefinitionvalues.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveAt(int index) {
    RobotRaconteurNETPINVOKE.vector_enumdefinitionvalues_RemoveAt(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveRange(int index, int count) {
    RobotRaconteurNETPINVOKE.vector_enumdefinitionvalues_RemoveRange(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static vector_enumdefinitionvalues Repeat(EnumDefinitionValue value, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vector_enumdefinitionvalues_Repeat(EnumDefinitionValue.getCPtr(value), count);
    vector_enumdefinitionvalues ret = (cPtr == global::System.IntPtr.Zero) ? null : new vector_enumdefinitionvalues(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Reverse() {
    RobotRaconteurNETPINVOKE.vector_enumdefinitionvalues_Reverse__SWIG_0(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Reverse(int index, int count) {
    RobotRaconteurNETPINVOKE.vector_enumdefinitionvalues_Reverse__SWIG_1(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SetRange(int index, vector_enumdefinitionvalues values) {
    RobotRaconteurNETPINVOKE.vector_enumdefinitionvalues_SetRange(swigCPtr, index, vector_enumdefinitionvalues.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class vector_usingdefinition : global::System.IDisposable, global::System.Collections.IEnumerable, global::System.Collections.Generic.IEnumerable<UsingDefinition>
 {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal vector_usingdefinition(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(vector_usingdefinition obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~vector_usingdefinition() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_vector_usingdefinition(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public vector_usingdefinition(global::System.Collections.IEnumerable c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (UsingDefinition element in c) {
      this.Add(element);
    }
  }

  public vector_usingdefinition(global::System.Collections.Generic.IEnumerable<UsingDefinition> c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (UsingDefinition element in c) {
      this.Add(element);
    }
  }

  public bool IsFixedSize {
    get {
      return false;
    }
  }

  public bool IsReadOnly {
    get {
      return false;
    }
  }

  public UsingDefinition this[int index]  {
    get {
      return getitem(index);
    }
    set {
      setitem(index, value);
    }
  }

  public int Capacity {
    get {
      return (int)capacity();
    }
    set {
      if (value < size())
        throw new global::System.ArgumentOutOfRangeException("Capacity");
      reserve((uint)value);
    }
  }

  public int Count {
    get {
      return (int)size();
    }
  }

  public bool IsSynchronized {
    get {
      return false;
    }
  }

  public void CopyTo(UsingDefinition[] array)
  {
    CopyTo(0, array, 0, this.Count);
  }

  public void CopyTo(UsingDefinition[] array, int arrayIndex)
  {
    CopyTo(0, array, arrayIndex, this.Count);
  }

  public void CopyTo(int index, UsingDefinition[] array, int arrayIndex, int count)
  {
    if (array == null)
      throw new global::System.ArgumentNullException("array");
    if (index < 0)
      throw new global::System.ArgumentOutOfRangeException("index", "Value is less than zero");
    if (arrayIndex < 0)
      throw new global::System.ArgumentOutOfRangeException("arrayIndex", "Value is less than zero");
    if (count < 0)
      throw new global::System.ArgumentOutOfRangeException("count", "Value is less than zero");
    if (array.Rank > 1)
      throw new global::System.ArgumentException("Multi dimensional array.", "array");
    if (index+count > this.Count || arrayIndex+count > array.Length)
      throw new global::System.ArgumentException("Number of elements to copy is too large.");
    for (int i=0; i<count; i++)
      array.SetValue(getitemcopy(index+i), arrayIndex+i);
  }

  public UsingDefinition[] ToArray() {
    UsingDefinition[] array = new UsingDefinition[this.Count];
    this.CopyTo(array);
    return array;
  }

  global::System.Collections.Generic.IEnumerator<UsingDefinition> global::System.Collections.Generic.IEnumerable<UsingDefinition>.GetEnumerator() {
    return new vector_usingdefinitionEnumerator(this);
  }

  global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator() {
    return new vector_usingdefinitionEnumerator(this);
  }

  public vector_usingdefinitionEnumerator GetEnumerator() {
    return new vector_usingdefinitionEnumerator(this);
  }

  // Type-safe enumerator
  /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown
  /// whenever the collection is modified. This has been done for changes in the size of the
  /// collection but not when one of the elements of the collection is modified as it is a bit
  /// tricky to detect unmanaged code that modifies the collection under our feet.
  public sealed class vector_usingdefinitionEnumerator : global::System.Collections.IEnumerator
    , global::System.Collections.Generic.IEnumerator<UsingDefinition>
  {
    private vector_usingdefinition collectionRef;
    private int currentIndex;
    private object currentObject;
    private int currentSize;

    public vector_usingdefinitionEnumerator(vector_usingdefinition collection) {
      collectionRef = collection;
      currentIndex = -1;
      currentObject = null;
      currentSize = collectionRef.Count;
    }

    // Type-safe iterator Current
    public UsingDefinition Current {
      get {
        if (currentIndex == -1)
          throw new global::System.InvalidOperationException("Enumeration not started.");
        if (currentIndex > currentSize - 1)
          throw new global::System.InvalidOperationException("Enumeration finished.");
        if (currentObject == null)
          throw new global::System.InvalidOperationException("Collection modified.");
        return (UsingDefinition)currentObject;
      }
    }

    // Type-unsafe IEnumerator.Current
    object global::System.Collections.IEnumerator.Current {
      get {
        return Current;
      }
    }

    public bool MoveNext() {
      int size = collectionRef.Count;
      bool moveOkay = (currentIndex+1 < size) && (size == currentSize);
      if (moveOkay) {
        currentIndex++;
        currentObject = collectionRef[currentIndex];
      } else {
        currentObject = null;
      }
      return moveOkay;
    }

    public void Reset() {
      currentIndex = -1;
      currentObject = null;
      if (collectionRef.Count != currentSize) {
        throw new global::System.InvalidOperationException("Collection modified.");
      }
    }

    public void Dispose() {
        currentIndex = -1;
        currentObject = null;
    }
  }

  public void Clear() {
    RobotRaconteurNETPINVOKE.vector_usingdefinition_Clear(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Add(UsingDefinition x) {
    RobotRaconteurNETPINVOKE.vector_usingdefinition_Add(swigCPtr, UsingDefinition.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private uint size() {
    uint ret = RobotRaconteurNETPINVOKE.vector_usingdefinition_size(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private uint capacity() {
    uint ret = RobotRaconteurNETPINVOKE.vector_usingdefinition_capacity(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void reserve(uint n) {
    RobotRaconteurNETPINVOKE.vector_usingdefinition_reserve(swigCPtr, n);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vector_usingdefinition() : this(RobotRaconteurNETPINVOKE.new_vector_usingdefinition__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vector_usingdefinition(vector_usingdefinition other) : this(RobotRaconteurNETPINVOKE.new_vector_usingdefinition__SWIG_1(vector_usingdefinition.getCPtr(other)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vector_usingdefinition(int capacity) : this(RobotRaconteurNETPINVOKE.new_vector_usingdefinition__SWIG_2(capacity), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private UsingDefinition getitemcopy(int index) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vector_usingdefinition_getitemcopy(swigCPtr, index);
    UsingDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new UsingDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private UsingDefinition getitem(int index) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vector_usingdefinition_getitem(swigCPtr, index);
    UsingDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new UsingDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void setitem(int index, UsingDefinition val) {
    RobotRaconteurNETPINVOKE.vector_usingdefinition_setitem(swigCPtr, index, UsingDefinition.getCPtr(val));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void AddRange(vector_usingdefinition values) {
    RobotRaconteurNETPINVOKE.vector_usingdefinition_AddRange(swigCPtr, vector_usingdefinition.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vector_usingdefinition GetRange(int index, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vector_usingdefinition_GetRange(swigCPtr, index, count);
    vector_usingdefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new vector_usingdefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Insert(int index, UsingDefinition x) {
    RobotRaconteurNETPINVOKE.vector_usingdefinition_Insert(swigCPtr, index, UsingDefinition.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void InsertRange(int index, vector_usingdefinition values) {
    RobotRaconteurNETPINVOKE.vector_usingdefinition_InsertRange(swigCPtr, index, vector_usingdefinition.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveAt(int index) {
    RobotRaconteurNETPINVOKE.vector_usingdefinition_RemoveAt(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveRange(int index, int count) {
    RobotRaconteurNETPINVOKE.vector_usingdefinition_RemoveRange(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static vector_usingdefinition Repeat(UsingDefinition value, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vector_usingdefinition_Repeat(UsingDefinition.getCPtr(value), count);
    vector_usingdefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new vector_usingdefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Reverse() {
    RobotRaconteurNETPINVOKE.vector_usingdefinition_Reverse__SWIG_0(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Reverse(int index, int count) {
    RobotRaconteurNETPINVOKE.vector_usingdefinition_Reverse__SWIG_1(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SetRange(int index, vector_usingdefinition values) {
    RobotRaconteurNETPINVOKE.vector_usingdefinition_SetRange(swigCPtr, index, vector_usingdefinition.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class vectorptr_exceptiondefinition : global::System.IDisposable, global::System.Collections.IEnumerable, global::System.Collections.Generic.IEnumerable<ExceptionDefinition>
 {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal vectorptr_exceptiondefinition(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(vectorptr_exceptiondefinition obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~vectorptr_exceptiondefinition() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_vectorptr_exceptiondefinition(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public vectorptr_exceptiondefinition(global::System.Collections.IEnumerable c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (ExceptionDefinition element in c) {
      this.Add(element);
    }
  }

  public vectorptr_exceptiondefinition(global::System.Collections.Generic.IEnumerable<ExceptionDefinition> c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (ExceptionDefinition element in c) {
      this.Add(element);
    }
  }

  public bool IsFixedSize {
    get {
      return false;
    }
  }

  public bool IsReadOnly {
    get {
      return false;
    }
  }

  public ExceptionDefinition this[int index]  {
    get {
      return getitem(index);
    }
    set {
      setitem(index, value);
    }
  }

  public int Capacity {
    get {
      return (int)capacity();
    }
    set {
      if (value < size())
        throw new global::System.ArgumentOutOfRangeException("Capacity");
      reserve((uint)value);
    }
  }

  public int Count {
    get {
      return (int)size();
    }
  }

  public bool IsSynchronized {
    get {
      return false;
    }
  }

  public void CopyTo(ExceptionDefinition[] array)
  {
    CopyTo(0, array, 0, this.Count);
  }

  public void CopyTo(ExceptionDefinition[] array, int arrayIndex)
  {
    CopyTo(0, array, arrayIndex, this.Count);
  }

  public void CopyTo(int index, ExceptionDefinition[] array, int arrayIndex, int count)
  {
    if (array == null)
      throw new global::System.ArgumentNullException("array");
    if (index < 0)
      throw new global::System.ArgumentOutOfRangeException("index", "Value is less than zero");
    if (arrayIndex < 0)
      throw new global::System.ArgumentOutOfRangeException("arrayIndex", "Value is less than zero");
    if (count < 0)
      throw new global::System.ArgumentOutOfRangeException("count", "Value is less than zero");
    if (array.Rank > 1)
      throw new global::System.ArgumentException("Multi dimensional array.", "array");
    if (index+count > this.Count || arrayIndex+count > array.Length)
      throw new global::System.ArgumentException("Number of elements to copy is too large.");
    for (int i=0; i<count; i++)
      array.SetValue(getitemcopy(index+i), arrayIndex+i);
  }

  public ExceptionDefinition[] ToArray() {
    ExceptionDefinition[] array = new ExceptionDefinition[this.Count];
    this.CopyTo(array);
    return array;
  }

  global::System.Collections.Generic.IEnumerator<ExceptionDefinition> global::System.Collections.Generic.IEnumerable<ExceptionDefinition>.GetEnumerator() {
    return new vectorptr_exceptiondefinitionEnumerator(this);
  }

  global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator() {
    return new vectorptr_exceptiondefinitionEnumerator(this);
  }

  public vectorptr_exceptiondefinitionEnumerator GetEnumerator() {
    return new vectorptr_exceptiondefinitionEnumerator(this);
  }

  // Type-safe enumerator
  /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown
  /// whenever the collection is modified. This has been done for changes in the size of the
  /// collection but not when one of the elements of the collection is modified as it is a bit
  /// tricky to detect unmanaged code that modifies the collection under our feet.
  public sealed class vectorptr_exceptiondefinitionEnumerator : global::System.Collections.IEnumerator
    , global::System.Collections.Generic.IEnumerator<ExceptionDefinition>
  {
    private vectorptr_exceptiondefinition collectionRef;
    private int currentIndex;
    private object currentObject;
    private int currentSize;

    public vectorptr_exceptiondefinitionEnumerator(vectorptr_exceptiondefinition collection) {
      collectionRef = collection;
      currentIndex = -1;
      currentObject = null;
      currentSize = collectionRef.Count;
    }

    // Type-safe iterator Current
    public ExceptionDefinition Current {
      get {
        if (currentIndex == -1)
          throw new global::System.InvalidOperationException("Enumeration not started.");
        if (currentIndex > currentSize - 1)
          throw new global::System.InvalidOperationException("Enumeration finished.");
        if (currentObject == null)
          throw new global::System.InvalidOperationException("Collection modified.");
        return (ExceptionDefinition)currentObject;
      }
    }

    // Type-unsafe IEnumerator.Current
    object global::System.Collections.IEnumerator.Current {
      get {
        return Current;
      }
    }

    public bool MoveNext() {
      int size = collectionRef.Count;
      bool moveOkay = (currentIndex+1 < size) && (size == currentSize);
      if (moveOkay) {
        currentIndex++;
        currentObject = collectionRef[currentIndex];
      } else {
        currentObject = null;
      }
      return moveOkay;
    }

    public void Reset() {
      currentIndex = -1;
      currentObject = null;
      if (collectionRef.Count != currentSize) {
        throw new global::System.InvalidOperationException("Collection modified.");
      }
    }

    public void Dispose() {
        currentIndex = -1;
        currentObject = null;
    }
  }

  public void Clear() {
    RobotRaconteurNETPINVOKE.vectorptr_exceptiondefinition_Clear(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Add(ExceptionDefinition x) {
    RobotRaconteurNETPINVOKE.vectorptr_exceptiondefinition_Add(swigCPtr, ExceptionDefinition.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private uint size() {
    uint ret = RobotRaconteurNETPINVOKE.vectorptr_exceptiondefinition_size(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private uint capacity() {
    uint ret = RobotRaconteurNETPINVOKE.vectorptr_exceptiondefinition_capacity(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void reserve(uint n) {
    RobotRaconteurNETPINVOKE.vectorptr_exceptiondefinition_reserve(swigCPtr, n);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_exceptiondefinition() : this(RobotRaconteurNETPINVOKE.new_vectorptr_exceptiondefinition__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_exceptiondefinition(vectorptr_exceptiondefinition other) : this(RobotRaconteurNETPINVOKE.new_vectorptr_exceptiondefinition__SWIG_1(vectorptr_exceptiondefinition.getCPtr(other)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_exceptiondefinition(int capacity) : this(RobotRaconteurNETPINVOKE.new_vectorptr_exceptiondefinition__SWIG_2(capacity), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private ExceptionDefinition getitemcopy(int index) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_exceptiondefinition_getitemcopy(swigCPtr, index);
    ExceptionDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new ExceptionDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private ExceptionDefinition getitem(int index) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_exceptiondefinition_getitem(swigCPtr, index);
    ExceptionDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new ExceptionDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void setitem(int index, ExceptionDefinition val) {
    RobotRaconteurNETPINVOKE.vectorptr_exceptiondefinition_setitem(swigCPtr, index, ExceptionDefinition.getCPtr(val));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void AddRange(vectorptr_exceptiondefinition values) {
    RobotRaconteurNETPINVOKE.vectorptr_exceptiondefinition_AddRange(swigCPtr, vectorptr_exceptiondefinition.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_exceptiondefinition GetRange(int index, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_exceptiondefinition_GetRange(swigCPtr, index, count);
    vectorptr_exceptiondefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_exceptiondefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Insert(int index, ExceptionDefinition x) {
    RobotRaconteurNETPINVOKE.vectorptr_exceptiondefinition_Insert(swigCPtr, index, ExceptionDefinition.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void InsertRange(int index, vectorptr_exceptiondefinition values) {
    RobotRaconteurNETPINVOKE.vectorptr_exceptiondefinition_InsertRange(swigCPtr, index, vectorptr_exceptiondefinition.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveAt(int index) {
    RobotRaconteurNETPINVOKE.vectorptr_exceptiondefinition_RemoveAt(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveRange(int index, int count) {
    RobotRaconteurNETPINVOKE.vectorptr_exceptiondefinition_RemoveRange(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static vectorptr_exceptiondefinition Repeat(ExceptionDefinition value, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_exceptiondefinition_Repeat(ExceptionDefinition.getCPtr(value), count);
    vectorptr_exceptiondefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_exceptiondefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Reverse() {
    RobotRaconteurNETPINVOKE.vectorptr_exceptiondefinition_Reverse__SWIG_0(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Reverse(int index, int count) {
    RobotRaconteurNETPINVOKE.vectorptr_exceptiondefinition_Reverse__SWIG_1(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SetRange(int index, vectorptr_exceptiondefinition values) {
    RobotRaconteurNETPINVOKE.vectorptr_exceptiondefinition_SetRange(swigCPtr, index, vectorptr_exceptiondefinition.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class vectorptr_servicedefinition : global::System.IDisposable, global::System.Collections.IEnumerable, global::System.Collections.Generic.IEnumerable<ServiceDefinition>
 {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal vectorptr_servicedefinition(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(vectorptr_servicedefinition obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~vectorptr_servicedefinition() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_vectorptr_servicedefinition(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public vectorptr_servicedefinition(global::System.Collections.IEnumerable c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (ServiceDefinition element in c) {
      this.Add(element);
    }
  }

  public vectorptr_servicedefinition(global::System.Collections.Generic.IEnumerable<ServiceDefinition> c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (ServiceDefinition element in c) {
      this.Add(element);
    }
  }

  public bool IsFixedSize {
    get {
      return false;
    }
  }

  public bool IsReadOnly {
    get {
      return false;
    }
  }

  public ServiceDefinition this[int index]  {
    get {
      return getitem(index);
    }
    set {
      setitem(index, value);
    }
  }

  public int Capacity {
    get {
      return (int)capacity();
    }
    set {
      if (value < size())
        throw new global::System.ArgumentOutOfRangeException("Capacity");
      reserve((uint)value);
    }
  }

  public int Count {
    get {
      return (int)size();
    }
  }

  public bool IsSynchronized {
    get {
      return false;
    }
  }

  public void CopyTo(ServiceDefinition[] array)
  {
    CopyTo(0, array, 0, this.Count);
  }

  public void CopyTo(ServiceDefinition[] array, int arrayIndex)
  {
    CopyTo(0, array, arrayIndex, this.Count);
  }

  public void CopyTo(int index, ServiceDefinition[] array, int arrayIndex, int count)
  {
    if (array == null)
      throw new global::System.ArgumentNullException("array");
    if (index < 0)
      throw new global::System.ArgumentOutOfRangeException("index", "Value is less than zero");
    if (arrayIndex < 0)
      throw new global::System.ArgumentOutOfRangeException("arrayIndex", "Value is less than zero");
    if (count < 0)
      throw new global::System.ArgumentOutOfRangeException("count", "Value is less than zero");
    if (array.Rank > 1)
      throw new global::System.ArgumentException("Multi dimensional array.", "array");
    if (index+count > this.Count || arrayIndex+count > array.Length)
      throw new global::System.ArgumentException("Number of elements to copy is too large.");
    for (int i=0; i<count; i++)
      array.SetValue(getitemcopy(index+i), arrayIndex+i);
  }

  public ServiceDefinition[] ToArray() {
    ServiceDefinition[] array = new ServiceDefinition[this.Count];
    this.CopyTo(array);
    return array;
  }

  global::System.Collections.Generic.IEnumerator<ServiceDefinition> global::System.Collections.Generic.IEnumerable<ServiceDefinition>.GetEnumerator() {
    return new vectorptr_servicedefinitionEnumerator(this);
  }

  global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator() {
    return new vectorptr_servicedefinitionEnumerator(this);
  }

  public vectorptr_servicedefinitionEnumerator GetEnumerator() {
    return new vectorptr_servicedefinitionEnumerator(this);
  }

  // Type-safe enumerator
  /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown
  /// whenever the collection is modified. This has been done for changes in the size of the
  /// collection but not when one of the elements of the collection is modified as it is a bit
  /// tricky to detect unmanaged code that modifies the collection under our feet.
  public sealed class vectorptr_servicedefinitionEnumerator : global::System.Collections.IEnumerator
    , global::System.Collections.Generic.IEnumerator<ServiceDefinition>
  {
    private vectorptr_servicedefinition collectionRef;
    private int currentIndex;
    private object currentObject;
    private int currentSize;

    public vectorptr_servicedefinitionEnumerator(vectorptr_servicedefinition collection) {
      collectionRef = collection;
      currentIndex = -1;
      currentObject = null;
      currentSize = collectionRef.Count;
    }

    // Type-safe iterator Current
    public ServiceDefinition Current {
      get {
        if (currentIndex == -1)
          throw new global::System.InvalidOperationException("Enumeration not started.");
        if (currentIndex > currentSize - 1)
          throw new global::System.InvalidOperationException("Enumeration finished.");
        if (currentObject == null)
          throw new global::System.InvalidOperationException("Collection modified.");
        return (ServiceDefinition)currentObject;
      }
    }

    // Type-unsafe IEnumerator.Current
    object global::System.Collections.IEnumerator.Current {
      get {
        return Current;
      }
    }

    public bool MoveNext() {
      int size = collectionRef.Count;
      bool moveOkay = (currentIndex+1 < size) && (size == currentSize);
      if (moveOkay) {
        currentIndex++;
        currentObject = collectionRef[currentIndex];
      } else {
        currentObject = null;
      }
      return moveOkay;
    }

    public void Reset() {
      currentIndex = -1;
      currentObject = null;
      if (collectionRef.Count != currentSize) {
        throw new global::System.InvalidOperationException("Collection modified.");
      }
    }

    public void Dispose() {
        currentIndex = -1;
        currentObject = null;
    }
  }

  public void Clear() {
    RobotRaconteurNETPINVOKE.vectorptr_servicedefinition_Clear(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Add(ServiceDefinition x) {
    RobotRaconteurNETPINVOKE.vectorptr_servicedefinition_Add(swigCPtr, ServiceDefinition.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private uint size() {
    uint ret = RobotRaconteurNETPINVOKE.vectorptr_servicedefinition_size(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private uint capacity() {
    uint ret = RobotRaconteurNETPINVOKE.vectorptr_servicedefinition_capacity(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void reserve(uint n) {
    RobotRaconteurNETPINVOKE.vectorptr_servicedefinition_reserve(swigCPtr, n);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_servicedefinition() : this(RobotRaconteurNETPINVOKE.new_vectorptr_servicedefinition__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_servicedefinition(vectorptr_servicedefinition other) : this(RobotRaconteurNETPINVOKE.new_vectorptr_servicedefinition__SWIG_1(vectorptr_servicedefinition.getCPtr(other)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_servicedefinition(int capacity) : this(RobotRaconteurNETPINVOKE.new_vectorptr_servicedefinition__SWIG_2(capacity), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private ServiceDefinition getitemcopy(int index) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_servicedefinition_getitemcopy(swigCPtr, index);
    ServiceDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new ServiceDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private ServiceDefinition getitem(int index) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_servicedefinition_getitem(swigCPtr, index);
    ServiceDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new ServiceDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void setitem(int index, ServiceDefinition val) {
    RobotRaconteurNETPINVOKE.vectorptr_servicedefinition_setitem(swigCPtr, index, ServiceDefinition.getCPtr(val));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void AddRange(vectorptr_servicedefinition values) {
    RobotRaconteurNETPINVOKE.vectorptr_servicedefinition_AddRange(swigCPtr, vectorptr_servicedefinition.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_servicedefinition GetRange(int index, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_servicedefinition_GetRange(swigCPtr, index, count);
    vectorptr_servicedefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_servicedefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Insert(int index, ServiceDefinition x) {
    RobotRaconteurNETPINVOKE.vectorptr_servicedefinition_Insert(swigCPtr, index, ServiceDefinition.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void InsertRange(int index, vectorptr_servicedefinition values) {
    RobotRaconteurNETPINVOKE.vectorptr_servicedefinition_InsertRange(swigCPtr, index, vectorptr_servicedefinition.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveAt(int index) {
    RobotRaconteurNETPINVOKE.vectorptr_servicedefinition_RemoveAt(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveRange(int index, int count) {
    RobotRaconteurNETPINVOKE.vectorptr_servicedefinition_RemoveRange(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static vectorptr_servicedefinition Repeat(ServiceDefinition value, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_servicedefinition_Repeat(ServiceDefinition.getCPtr(value), count);
    vectorptr_servicedefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_servicedefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Reverse() {
    RobotRaconteurNETPINVOKE.vectorptr_servicedefinition_Reverse__SWIG_0(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Reverse(int index, int count) {
    RobotRaconteurNETPINVOKE.vectorptr_servicedefinition_Reverse__SWIG_1(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SetRange(int index, vectorptr_servicedefinition values) {
    RobotRaconteurNETPINVOKE.vectorptr_servicedefinition_SetRange(swigCPtr, index, vectorptr_servicedefinition.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class ServiceDefinitionParseInfo : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal ServiceDefinitionParseInfo(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(ServiceDefinitionParseInfo obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~ServiceDefinitionParseInfo() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_ServiceDefinitionParseInfo(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public string ServiceName {
    set {
      RobotRaconteurNETPINVOKE.ServiceDefinitionParseInfo_ServiceName_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.ServiceDefinitionParseInfo_ServiceName_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string RobDefFilePath {
    set {
      RobotRaconteurNETPINVOKE.ServiceDefinitionParseInfo_RobDefFilePath_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.ServiceDefinitionParseInfo_RobDefFilePath_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string Line {
    set {
      RobotRaconteurNETPINVOKE.ServiceDefinitionParseInfo_Line_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.ServiceDefinitionParseInfo_Line_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public int LineNumber {
    set {
      RobotRaconteurNETPINVOKE.ServiceDefinitionParseInfo_LineNumber_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      int ret = RobotRaconteurNETPINVOKE.ServiceDefinitionParseInfo_LineNumber_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public ServiceDefinitionParseInfo() : this(RobotRaconteurNETPINVOKE.new_ServiceDefinitionParseInfo(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Reset() {
    RobotRaconteurNETPINVOKE.ServiceDefinitionParseInfo_Reset(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public partial class RobotRaconteurVersion : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal RobotRaconteurVersion(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(RobotRaconteurVersion obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~RobotRaconteurVersion() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_RobotRaconteurVersion(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public RobotRaconteurVersion() : this(RobotRaconteurNETPINVOKE.new_RobotRaconteurVersion__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public RobotRaconteurVersion(uint major, uint minor, uint patch, uint tweak) : this(RobotRaconteurNETPINVOKE.new_RobotRaconteurVersion__SWIG_1(major, minor, patch, tweak), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public RobotRaconteurVersion(uint major, uint minor, uint patch) : this(RobotRaconteurNETPINVOKE.new_RobotRaconteurVersion__SWIG_2(major, minor, patch), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public RobotRaconteurVersion(uint major, uint minor) : this(RobotRaconteurNETPINVOKE.new_RobotRaconteurVersion__SWIG_3(major, minor), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public RobotRaconteurVersion(string v) : this(RobotRaconteurNETPINVOKE.new_RobotRaconteurVersion__SWIG_4(v), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public string ToString() {
    string ret = RobotRaconteurNETPINVOKE.RobotRaconteurVersion_ToString(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void FromString(string v, ServiceDefinitionParseInfo parse_info) {
    RobotRaconteurNETPINVOKE.RobotRaconteurVersion_FromString__SWIG_0(swigCPtr, v, ServiceDefinitionParseInfo.getCPtr(parse_info));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void FromString(string v) {
    RobotRaconteurNETPINVOKE.RobotRaconteurVersion_FromString__SWIG_1(swigCPtr, v);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public uint major {
    set {
      RobotRaconteurNETPINVOKE.RobotRaconteurVersion_major_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      uint ret = RobotRaconteurNETPINVOKE.RobotRaconteurVersion_major_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public uint minor {
    set {
      RobotRaconteurNETPINVOKE.RobotRaconteurVersion_minor_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      uint ret = RobotRaconteurNETPINVOKE.RobotRaconteurVersion_minor_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public uint patch {
    set {
      RobotRaconteurNETPINVOKE.RobotRaconteurVersion_patch_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      uint ret = RobotRaconteurNETPINVOKE.RobotRaconteurVersion_patch_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public uint tweak {
    set {
      RobotRaconteurNETPINVOKE.RobotRaconteurVersion_tweak_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      uint ret = RobotRaconteurNETPINVOKE.RobotRaconteurVersion_tweak_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public ServiceDefinitionParseInfo ParseInfo {
    set {
      RobotRaconteurNETPINVOKE.RobotRaconteurVersion_ParseInfo_set(swigCPtr, ServiceDefinitionParseInfo.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.RobotRaconteurVersion_ParseInfo_get(swigCPtr);
      ServiceDefinitionParseInfo ret = (cPtr == global::System.IntPtr.Zero) ? null : new ServiceDefinitionParseInfo(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class ServiceDefinition : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal ServiceDefinition(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(ServiceDefinition obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~ServiceDefinition() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_ServiceDefinition(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public string Name {
    set {
      RobotRaconteurNETPINVOKE.ServiceDefinition_Name_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.ServiceDefinition_Name_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public vectorptr_serviceentrydefinition NamedArrays {
    set {
      RobotRaconteurNETPINVOKE.ServiceDefinition_NamedArrays_set(swigCPtr, vectorptr_serviceentrydefinition.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.ServiceDefinition_NamedArrays_get(swigCPtr);
      vectorptr_serviceentrydefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_serviceentrydefinition(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public vectorptr_serviceentrydefinition Pods {
    set {
      RobotRaconteurNETPINVOKE.ServiceDefinition_Pods_set(swigCPtr, vectorptr_serviceentrydefinition.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.ServiceDefinition_Pods_get(swigCPtr);
      vectorptr_serviceentrydefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_serviceentrydefinition(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public vectorptr_serviceentrydefinition Structures {
    set {
      RobotRaconteurNETPINVOKE.ServiceDefinition_Structures_set(swigCPtr, vectorptr_serviceentrydefinition.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.ServiceDefinition_Structures_get(swigCPtr);
      vectorptr_serviceentrydefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_serviceentrydefinition(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public vectorptr_serviceentrydefinition Objects {
    set {
      RobotRaconteurNETPINVOKE.ServiceDefinition_Objects_set(swigCPtr, vectorptr_serviceentrydefinition.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.ServiceDefinition_Objects_get(swigCPtr);
      vectorptr_serviceentrydefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_serviceentrydefinition(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public vectorstring Options {
    set {
      RobotRaconteurNETPINVOKE.ServiceDefinition_Options_set(swigCPtr, vectorstring.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.ServiceDefinition_Options_get(swigCPtr);
      vectorstring ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorstring(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public vectorstring Imports {
    set {
      RobotRaconteurNETPINVOKE.ServiceDefinition_Imports_set(swigCPtr, vectorstring.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.ServiceDefinition_Imports_get(swigCPtr);
      vectorstring ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorstring(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public vectorptr_exceptiondefinition Exceptions {
    set {
      RobotRaconteurNETPINVOKE.ServiceDefinition_Exceptions_set(swigCPtr, vectorptr_exceptiondefinition.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.ServiceDefinition_Exceptions_get(swigCPtr);
      vectorptr_exceptiondefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_exceptiondefinition(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public vector_usingdefinition Using {
    set {
      RobotRaconteurNETPINVOKE.ServiceDefinition_Using_set(swigCPtr, vector_usingdefinition.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.ServiceDefinition_Using_get(swigCPtr);
      vector_usingdefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new vector_usingdefinition(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public vectorptr_constantdefinition Constants {
    set {
      RobotRaconteurNETPINVOKE.ServiceDefinition_Constants_set(swigCPtr, vectorptr_constantdefinition.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.ServiceDefinition_Constants_get(swigCPtr);
      vectorptr_constantdefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_constantdefinition(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public vectorptr_enumdefinition Enums {
    set {
      RobotRaconteurNETPINVOKE.ServiceDefinition_Enums_set(swigCPtr, vectorptr_enumdefinition.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.ServiceDefinition_Enums_get(swigCPtr);
      vectorptr_enumdefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_enumdefinition(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public RobotRaconteurVersion StdVer {
    set {
      RobotRaconteurNETPINVOKE.ServiceDefinition_StdVer_set(swigCPtr, RobotRaconteurVersion.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.ServiceDefinition_StdVer_get(swigCPtr);
      RobotRaconteurVersion ret = (cPtr == global::System.IntPtr.Zero) ? null : new RobotRaconteurVersion(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public ServiceDefinitionParseInfo ParseInfo {
    set {
      RobotRaconteurNETPINVOKE.ServiceDefinition_ParseInfo_set(swigCPtr, ServiceDefinitionParseInfo.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.ServiceDefinition_ParseInfo_get(swigCPtr);
      ServiceDefinitionParseInfo ret = (cPtr == global::System.IntPtr.Zero) ? null : new ServiceDefinitionParseInfo(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string DocString {
    set {
      RobotRaconteurNETPINVOKE.ServiceDefinition_DocString_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.ServiceDefinition_DocString_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public override string ToString() {
    string ret = RobotRaconteurNETPINVOKE.ServiceDefinition_ToString(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void FromString(string s, ServiceDefinitionParseInfo parse_info) {
    RobotRaconteurNETPINVOKE.ServiceDefinition_FromString__SWIG_0(swigCPtr, s, ServiceDefinitionParseInfo.getCPtr(parse_info));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void FromString(string s) {
    RobotRaconteurNETPINVOKE.ServiceDefinition_FromString__SWIG_1(swigCPtr, s);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public ServiceDefinition() : this(RobotRaconteurNETPINVOKE.new_ServiceDefinition(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Reset() {
    RobotRaconteurNETPINVOKE.ServiceDefinition_Reset(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class ServiceEntryDefinition : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal ServiceEntryDefinition(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(ServiceEntryDefinition obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~ServiceEntryDefinition() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_ServiceEntryDefinition(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public string Name {
    set {
      RobotRaconteurNETPINVOKE.ServiceEntryDefinition_Name_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.ServiceEntryDefinition_Name_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public vectorptr_memberdefinition Members {
    set {
      RobotRaconteurNETPINVOKE.ServiceEntryDefinition_Members_set(swigCPtr, vectorptr_memberdefinition.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.ServiceEntryDefinition_Members_get(swigCPtr);
      vectorptr_memberdefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_memberdefinition(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public DataTypes EntryType {
    set {
      RobotRaconteurNETPINVOKE.ServiceEntryDefinition_EntryType_set(swigCPtr, (int)value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      DataTypes ret = (DataTypes)RobotRaconteurNETPINVOKE.ServiceEntryDefinition_EntryType_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public vectorstring Implements {
    set {
      RobotRaconteurNETPINVOKE.ServiceEntryDefinition_Implements_set(swigCPtr, vectorstring.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.ServiceEntryDefinition_Implements_get(swigCPtr);
      vectorstring ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorstring(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public vectorstring Options {
    set {
      RobotRaconteurNETPINVOKE.ServiceEntryDefinition_Options_set(swigCPtr, vectorstring.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.ServiceEntryDefinition_Options_get(swigCPtr);
      vectorstring ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorstring(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public vectorptr_constantdefinition Constants {
    set {
      RobotRaconteurNETPINVOKE.ServiceEntryDefinition_Constants_set(swigCPtr, vectorptr_constantdefinition.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.ServiceEntryDefinition_Constants_get(swigCPtr);
      vectorptr_constantdefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_constantdefinition(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public ServiceDefinitionParseInfo ParseInfo {
    set {
      RobotRaconteurNETPINVOKE.ServiceEntryDefinition_ParseInfo_set(swigCPtr, ServiceDefinitionParseInfo.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.ServiceEntryDefinition_ParseInfo_get(swigCPtr);
      ServiceDefinitionParseInfo ret = (cPtr == global::System.IntPtr.Zero) ? null : new ServiceDefinitionParseInfo(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string DocString {
    set {
      RobotRaconteurNETPINVOKE.ServiceEntryDefinition_DocString_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.ServiceEntryDefinition_DocString_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public ServiceEntryDefinition(ServiceDefinition def) : this(RobotRaconteurNETPINVOKE.new_ServiceEntryDefinition(ServiceDefinition.getCPtr(def)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public override string ToString() {
    string ret = RobotRaconteurNETPINVOKE.ServiceEntryDefinition_ToString(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void FromString(string s, ServiceDefinitionParseInfo parse_info) {
    RobotRaconteurNETPINVOKE.ServiceEntryDefinition_FromString__SWIG_0(swigCPtr, s, ServiceDefinitionParseInfo.getCPtr(parse_info));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void FromString(string s) {
    RobotRaconteurNETPINVOKE.ServiceEntryDefinition_FromString__SWIG_1(swigCPtr, s);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public ServiceDefinition GetServiceDefinition() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.ServiceEntryDefinition_GetServiceDefinition(swigCPtr);
    ServiceDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new ServiceDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void SetServiceDefinition(ServiceDefinition value) {
    RobotRaconteurNETPINVOKE.ServiceEntryDefinition_SetServiceDefinition(swigCPtr, ServiceDefinition.getCPtr(value));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Reset() {
    RobotRaconteurNETPINVOKE.ServiceEntryDefinition_Reset(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class MemberDefinition : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal MemberDefinition(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(MemberDefinition obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~MemberDefinition() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_MemberDefinition(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public string Name {
    set {
      RobotRaconteurNETPINVOKE.MemberDefinition_Name_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.MemberDefinition_Name_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string DocString {
    set {
      RobotRaconteurNETPINVOKE.MemberDefinition_DocString_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.MemberDefinition_DocString_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public MemberDefinition(ServiceEntryDefinition ServiceEntry) : this(RobotRaconteurNETPINVOKE.new_MemberDefinition(ServiceEntryDefinition.getCPtr(ServiceEntry)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual MemberDefinition_NoLock NoLock() {
    MemberDefinition_NoLock ret = (MemberDefinition_NoLock)RobotRaconteurNETPINVOKE.MemberDefinition_NoLock(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public override string ToString() {
    string ret = RobotRaconteurNETPINVOKE.MemberDefinition_ToString(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public ServiceEntryDefinition GetServiceEntry() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MemberDefinition_GetServiceEntry(swigCPtr);
    ServiceEntryDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new ServiceEntryDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void SetServiceEntry(ServiceEntryDefinition value) {
    RobotRaconteurNETPINVOKE.MemberDefinition_SetServiceEntry(swigCPtr, ServiceEntryDefinition.getCPtr(value));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorstring Modifiers {
    set {
      RobotRaconteurNETPINVOKE.MemberDefinition_Modifiers_set(swigCPtr, vectorstring.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MemberDefinition_Modifiers_get(swigCPtr);
      vectorstring ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorstring(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public ServiceDefinitionParseInfo ParseInfo {
    set {
      RobotRaconteurNETPINVOKE.MemberDefinition_ParseInfo_set(swigCPtr, ServiceDefinitionParseInfo.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MemberDefinition_ParseInfo_get(swigCPtr);
      ServiceDefinitionParseInfo ret = (cPtr == global::System.IntPtr.Zero) ? null : new ServiceDefinitionParseInfo(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public void Reset() {
    RobotRaconteurNETPINVOKE.MemberDefinition_Reset(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class PropertyDefinition : MemberDefinition {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnDerived;

  internal PropertyDefinition(global::System.IntPtr cPtr, bool cMemoryOwn) : base(RobotRaconteurNETPINVOKE.PropertyDefinition_SWIGSmartPtrUpcast(cPtr), true) {
    swigCMemOwnDerived = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(PropertyDefinition obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  protected override void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnDerived) {
          swigCMemOwnDerived = false;
          RobotRaconteurNETPINVOKE.delete_PropertyDefinition(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
      base.Dispose(disposing);
    }
  }

  public TypeDefinition Type {
    set {
      RobotRaconteurNETPINVOKE.PropertyDefinition_Type_set(swigCPtr, TypeDefinition.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.PropertyDefinition_Type_get(swigCPtr);
      TypeDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new TypeDefinition(cPtr, true);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public PropertyDefinition(ServiceEntryDefinition ServiceEntry) : this(RobotRaconteurNETPINVOKE.new_PropertyDefinition(ServiceEntryDefinition.getCPtr(ServiceEntry)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public override string ToString() {
    string ret = RobotRaconteurNETPINVOKE.PropertyDefinition_ToString__SWIG_0(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual string ToString(bool isstruct) {
    string ret = RobotRaconteurNETPINVOKE.PropertyDefinition_ToString__SWIG_1(swigCPtr, isstruct);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void FromString(string s, ServiceDefinitionParseInfo parse_info) {
    RobotRaconteurNETPINVOKE.PropertyDefinition_FromString__SWIG_0(swigCPtr, s, ServiceDefinitionParseInfo.getCPtr(parse_info));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void FromString(string s) {
    RobotRaconteurNETPINVOKE.PropertyDefinition_FromString__SWIG_1(swigCPtr, s);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class FunctionDefinition : MemberDefinition {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnDerived;

  internal FunctionDefinition(global::System.IntPtr cPtr, bool cMemoryOwn) : base(RobotRaconteurNETPINVOKE.FunctionDefinition_SWIGSmartPtrUpcast(cPtr), true) {
    swigCMemOwnDerived = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(FunctionDefinition obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  protected override void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnDerived) {
          swigCMemOwnDerived = false;
          RobotRaconteurNETPINVOKE.delete_FunctionDefinition(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
      base.Dispose(disposing);
    }
  }

  public TypeDefinition ReturnType {
    set {
      RobotRaconteurNETPINVOKE.FunctionDefinition_ReturnType_set(swigCPtr, TypeDefinition.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.FunctionDefinition_ReturnType_get(swigCPtr);
      TypeDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new TypeDefinition(cPtr, true);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public vectorptr_typedefinition Parameters {
    set {
      RobotRaconteurNETPINVOKE.FunctionDefinition_Parameters_set(swigCPtr, vectorptr_typedefinition.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.FunctionDefinition_Parameters_get(swigCPtr);
      vectorptr_typedefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_typedefinition(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public FunctionDefinition(ServiceEntryDefinition ServiceEntry) : this(RobotRaconteurNETPINVOKE.new_FunctionDefinition(ServiceEntryDefinition.getCPtr(ServiceEntry)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public override string ToString() {
    string ret = RobotRaconteurNETPINVOKE.FunctionDefinition_ToString(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void FromString(string s, ServiceDefinitionParseInfo parse_info) {
    RobotRaconteurNETPINVOKE.FunctionDefinition_FromString__SWIG_0(swigCPtr, s, ServiceDefinitionParseInfo.getCPtr(parse_info));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void FromString(string s) {
    RobotRaconteurNETPINVOKE.FunctionDefinition_FromString__SWIG_1(swigCPtr, s);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public bool IsGenerator() {
    bool ret = RobotRaconteurNETPINVOKE.FunctionDefinition_IsGenerator(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class EventDefinition : MemberDefinition {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnDerived;

  internal EventDefinition(global::System.IntPtr cPtr, bool cMemoryOwn) : base(RobotRaconteurNETPINVOKE.EventDefinition_SWIGSmartPtrUpcast(cPtr), true) {
    swigCMemOwnDerived = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(EventDefinition obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  protected override void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnDerived) {
          swigCMemOwnDerived = false;
          RobotRaconteurNETPINVOKE.delete_EventDefinition(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
      base.Dispose(disposing);
    }
  }

  public vectorptr_typedefinition Parameters {
    set {
      RobotRaconteurNETPINVOKE.EventDefinition_Parameters_set(swigCPtr, vectorptr_typedefinition.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.EventDefinition_Parameters_get(swigCPtr);
      vectorptr_typedefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_typedefinition(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public EventDefinition(ServiceEntryDefinition ServiceEntry) : this(RobotRaconteurNETPINVOKE.new_EventDefinition(ServiceEntryDefinition.getCPtr(ServiceEntry)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public override string ToString() {
    string ret = RobotRaconteurNETPINVOKE.EventDefinition_ToString(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void FromString(string s, ServiceDefinitionParseInfo parse_info) {
    RobotRaconteurNETPINVOKE.EventDefinition_FromString__SWIG_0(swigCPtr, s, ServiceDefinitionParseInfo.getCPtr(parse_info));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void FromString(string s) {
    RobotRaconteurNETPINVOKE.EventDefinition_FromString__SWIG_1(swigCPtr, s);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class ObjRefDefinition : MemberDefinition {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnDerived;

  internal ObjRefDefinition(global::System.IntPtr cPtr, bool cMemoryOwn) : base(RobotRaconteurNETPINVOKE.ObjRefDefinition_SWIGSmartPtrUpcast(cPtr), true) {
    swigCMemOwnDerived = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(ObjRefDefinition obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  protected override void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnDerived) {
          swigCMemOwnDerived = false;
          RobotRaconteurNETPINVOKE.delete_ObjRefDefinition(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
      base.Dispose(disposing);
    }
  }

  public string ObjectType {
    set {
      RobotRaconteurNETPINVOKE.ObjRefDefinition_ObjectType_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.ObjRefDefinition_ObjectType_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public DataTypes_ArrayTypes ArrayType {
    set {
      RobotRaconteurNETPINVOKE.ObjRefDefinition_ArrayType_set(swigCPtr, (int)value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      DataTypes_ArrayTypes ret = (DataTypes_ArrayTypes)RobotRaconteurNETPINVOKE.ObjRefDefinition_ArrayType_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public DataTypes_ContainerTypes ContainerType {
    set {
      RobotRaconteurNETPINVOKE.ObjRefDefinition_ContainerType_set(swigCPtr, (int)value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      DataTypes_ContainerTypes ret = (DataTypes_ContainerTypes)RobotRaconteurNETPINVOKE.ObjRefDefinition_ContainerType_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public ObjRefDefinition(ServiceEntryDefinition ServiceEntry) : this(RobotRaconteurNETPINVOKE.new_ObjRefDefinition(ServiceEntryDefinition.getCPtr(ServiceEntry)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public override string ToString() {
    string ret = RobotRaconteurNETPINVOKE.ObjRefDefinition_ToString(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void FromString(string s, ServiceDefinitionParseInfo parse_info) {
    RobotRaconteurNETPINVOKE.ObjRefDefinition_FromString__SWIG_0(swigCPtr, s, ServiceDefinitionParseInfo.getCPtr(parse_info));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void FromString(string s) {
    RobotRaconteurNETPINVOKE.ObjRefDefinition_FromString__SWIG_1(swigCPtr, s);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class PipeDefinition : MemberDefinition {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnDerived;

  internal PipeDefinition(global::System.IntPtr cPtr, bool cMemoryOwn) : base(RobotRaconteurNETPINVOKE.PipeDefinition_SWIGSmartPtrUpcast(cPtr), true) {
    swigCMemOwnDerived = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(PipeDefinition obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  protected override void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnDerived) {
          swigCMemOwnDerived = false;
          RobotRaconteurNETPINVOKE.delete_PipeDefinition(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
      base.Dispose(disposing);
    }
  }

  public TypeDefinition Type {
    set {
      RobotRaconteurNETPINVOKE.PipeDefinition_Type_set(swigCPtr, TypeDefinition.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.PipeDefinition_Type_get(swigCPtr);
      TypeDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new TypeDefinition(cPtr, true);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public PipeDefinition(ServiceEntryDefinition ServiceEntry) : this(RobotRaconteurNETPINVOKE.new_PipeDefinition(ServiceEntryDefinition.getCPtr(ServiceEntry)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public override string ToString() {
    string ret = RobotRaconteurNETPINVOKE.PipeDefinition_ToString(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void FromString(string s, ServiceDefinitionParseInfo parse_info) {
    RobotRaconteurNETPINVOKE.PipeDefinition_FromString__SWIG_0(swigCPtr, s, ServiceDefinitionParseInfo.getCPtr(parse_info));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void FromString(string s) {
    RobotRaconteurNETPINVOKE.PipeDefinition_FromString__SWIG_1(swigCPtr, s);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class CallbackDefinition : MemberDefinition {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnDerived;

  internal CallbackDefinition(global::System.IntPtr cPtr, bool cMemoryOwn) : base(RobotRaconteurNETPINVOKE.CallbackDefinition_SWIGSmartPtrUpcast(cPtr), true) {
    swigCMemOwnDerived = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(CallbackDefinition obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  protected override void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnDerived) {
          swigCMemOwnDerived = false;
          RobotRaconteurNETPINVOKE.delete_CallbackDefinition(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
      base.Dispose(disposing);
    }
  }

  public TypeDefinition ReturnType {
    set {
      RobotRaconteurNETPINVOKE.CallbackDefinition_ReturnType_set(swigCPtr, TypeDefinition.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.CallbackDefinition_ReturnType_get(swigCPtr);
      TypeDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new TypeDefinition(cPtr, true);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public vectorptr_typedefinition Parameters {
    set {
      RobotRaconteurNETPINVOKE.CallbackDefinition_Parameters_set(swigCPtr, vectorptr_typedefinition.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.CallbackDefinition_Parameters_get(swigCPtr);
      vectorptr_typedefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_typedefinition(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public CallbackDefinition(ServiceEntryDefinition ServiceEntry) : this(RobotRaconteurNETPINVOKE.new_CallbackDefinition(ServiceEntryDefinition.getCPtr(ServiceEntry)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public override string ToString() {
    string ret = RobotRaconteurNETPINVOKE.CallbackDefinition_ToString(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void FromString(string s, ServiceDefinitionParseInfo parse_info) {
    RobotRaconteurNETPINVOKE.CallbackDefinition_FromString__SWIG_0(swigCPtr, s, ServiceDefinitionParseInfo.getCPtr(parse_info));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void FromString(string s) {
    RobotRaconteurNETPINVOKE.CallbackDefinition_FromString__SWIG_1(swigCPtr, s);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WireDefinition : MemberDefinition {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnDerived;

  internal WireDefinition(global::System.IntPtr cPtr, bool cMemoryOwn) : base(RobotRaconteurNETPINVOKE.WireDefinition_SWIGSmartPtrUpcast(cPtr), true) {
    swigCMemOwnDerived = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WireDefinition obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  protected override void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnDerived) {
          swigCMemOwnDerived = false;
          RobotRaconteurNETPINVOKE.delete_WireDefinition(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
      base.Dispose(disposing);
    }
  }

  public TypeDefinition Type {
    set {
      RobotRaconteurNETPINVOKE.WireDefinition_Type_set(swigCPtr, TypeDefinition.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WireDefinition_Type_get(swigCPtr);
      TypeDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new TypeDefinition(cPtr, true);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public WireDefinition(ServiceEntryDefinition ServiceEntry) : this(RobotRaconteurNETPINVOKE.new_WireDefinition(ServiceEntryDefinition.getCPtr(ServiceEntry)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public override string ToString() {
    string ret = RobotRaconteurNETPINVOKE.WireDefinition_ToString(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void FromString(string s, ServiceDefinitionParseInfo parse_info) {
    RobotRaconteurNETPINVOKE.WireDefinition_FromString__SWIG_0(swigCPtr, s, ServiceDefinitionParseInfo.getCPtr(parse_info));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void FromString(string s) {
    RobotRaconteurNETPINVOKE.WireDefinition_FromString__SWIG_1(swigCPtr, s);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class MemoryDefinition : MemberDefinition {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnDerived;

  internal MemoryDefinition(global::System.IntPtr cPtr, bool cMemoryOwn) : base(RobotRaconteurNETPINVOKE.MemoryDefinition_SWIGSmartPtrUpcast(cPtr), true) {
    swigCMemOwnDerived = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(MemoryDefinition obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  protected override void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnDerived) {
          swigCMemOwnDerived = false;
          RobotRaconteurNETPINVOKE.delete_MemoryDefinition(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
      base.Dispose(disposing);
    }
  }

  public TypeDefinition Type {
    set {
      RobotRaconteurNETPINVOKE.MemoryDefinition_Type_set(swigCPtr, TypeDefinition.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MemoryDefinition_Type_get(swigCPtr);
      TypeDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new TypeDefinition(cPtr, true);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public MemoryDefinition(ServiceEntryDefinition ServiceEntry) : this(RobotRaconteurNETPINVOKE.new_MemoryDefinition(ServiceEntryDefinition.getCPtr(ServiceEntry)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public override string ToString() {
    string ret = RobotRaconteurNETPINVOKE.MemoryDefinition_ToString(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void FromString(string s, ServiceDefinitionParseInfo parse_info) {
    RobotRaconteurNETPINVOKE.MemoryDefinition_FromString__SWIG_0(swigCPtr, s, ServiceDefinitionParseInfo.getCPtr(parse_info));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void FromString(string s) {
    RobotRaconteurNETPINVOKE.MemoryDefinition_FromString__SWIG_1(swigCPtr, s);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public partial class TypeDefinition : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal TypeDefinition(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(TypeDefinition obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~TypeDefinition() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_TypeDefinition(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

public MemberDefinition Member
{
	get { return MemberDefinitionUtil.SwigCast(_GetMember()); }
	set {_SetMember(value); }

}

  public string Name {
    set {
      RobotRaconteurNETPINVOKE.TypeDefinition_Name_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.TypeDefinition_Name_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public DataTypes Type {
    set {
      RobotRaconteurNETPINVOKE.TypeDefinition_Type_set(swigCPtr, (int)value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      DataTypes ret = (DataTypes)RobotRaconteurNETPINVOKE.TypeDefinition_Type_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string TypeString {
    set {
      RobotRaconteurNETPINVOKE.TypeDefinition_TypeString_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.TypeDefinition_TypeString_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public DataTypes_ArrayTypes ArrayType {
    set {
      RobotRaconteurNETPINVOKE.TypeDefinition_ArrayType_set(swigCPtr, (int)value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      DataTypes_ArrayTypes ret = (DataTypes_ArrayTypes)RobotRaconteurNETPINVOKE.TypeDefinition_ArrayType_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public bool ArrayVarLength {
    set {
      RobotRaconteurNETPINVOKE.TypeDefinition_ArrayVarLength_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      bool ret = RobotRaconteurNETPINVOKE.TypeDefinition_ArrayVarLength_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public vectorint32 ArrayLength {
    set {
      RobotRaconteurNETPINVOKE.TypeDefinition_ArrayLength_set(swigCPtr, vectorint32.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.TypeDefinition_ArrayLength_get(swigCPtr);
      vectorint32 ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorint32(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public DataTypes_ContainerTypes ContainerType {
    set {
      RobotRaconteurNETPINVOKE.TypeDefinition_ContainerType_set(swigCPtr, (int)value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      DataTypes_ContainerTypes ret = (DataTypes_ContainerTypes)RobotRaconteurNETPINVOKE.TypeDefinition_ContainerType_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public TypeDefinition() : this(RobotRaconteurNETPINVOKE.new_TypeDefinition__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public override string ToString() {
    string ret = RobotRaconteurNETPINVOKE.TypeDefinition_ToString(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void FromString(string s, ServiceDefinitionParseInfo parse_info) {
    RobotRaconteurNETPINVOKE.TypeDefinition_FromString__SWIG_0(swigCPtr, s, ServiceDefinitionParseInfo.getCPtr(parse_info));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void FromString(string s) {
    RobotRaconteurNETPINVOKE.TypeDefinition_FromString__SWIG_1(swigCPtr, s);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static DataTypes DataTypeFromString(string d) {
    DataTypes ret = (DataTypes)RobotRaconteurNETPINVOKE.TypeDefinition_DataTypeFromString(d);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static string StringFromDataType(DataTypes d) {
    string ret = RobotRaconteurNETPINVOKE.TypeDefinition_StringFromDataType((int)d);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private MemberDefinition _GetMember() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.TypeDefinition__GetMember(swigCPtr);
    MemberDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new MemberDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _SetMember(MemberDefinition value) {
    RobotRaconteurNETPINVOKE.TypeDefinition__SetMember(swigCPtr, MemberDefinition.getCPtr(value));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void CopyTo(TypeDefinition def) {
    RobotRaconteurNETPINVOKE.TypeDefinition_CopyTo(swigCPtr, TypeDefinition.getCPtr(def));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public TypeDefinition Clone() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.TypeDefinition_Clone(swigCPtr);
    TypeDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new TypeDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Rename(string name) {
    RobotRaconteurNETPINVOKE.TypeDefinition_Rename(swigCPtr, name);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveContainers() {
    RobotRaconteurNETPINVOKE.TypeDefinition_RemoveContainers(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveArray() {
    RobotRaconteurNETPINVOKE.TypeDefinition_RemoveArray(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void QualifyTypeStringWithUsing() {
    RobotRaconteurNETPINVOKE.TypeDefinition_QualifyTypeStringWithUsing(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void UnqualifyTypeStringWithUsing() {
    RobotRaconteurNETPINVOKE.TypeDefinition_UnqualifyTypeStringWithUsing(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Reset() {
    RobotRaconteurNETPINVOKE.TypeDefinition_Reset(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public TypeDefinition(TypeDefinition other) : this(RobotRaconteurNETPINVOKE.new_TypeDefinition__SWIG_1(TypeDefinition.getCPtr(other)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class UsingDefinition : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal UsingDefinition(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(UsingDefinition obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~UsingDefinition() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_UsingDefinition(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public string QualifiedName {
    set {
      RobotRaconteurNETPINVOKE.UsingDefinition_QualifiedName_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.UsingDefinition_QualifiedName_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string UnqualifiedName {
    set {
      RobotRaconteurNETPINVOKE.UsingDefinition_UnqualifiedName_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.UsingDefinition_UnqualifiedName_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public ServiceDefinitionParseInfo ParseInfo {
    set {
      RobotRaconteurNETPINVOKE.UsingDefinition_ParseInfo_set(swigCPtr, ServiceDefinitionParseInfo.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.UsingDefinition_ParseInfo_get(swigCPtr);
      ServiceDefinitionParseInfo ret = (cPtr == global::System.IntPtr.Zero) ? null : new ServiceDefinitionParseInfo(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  private ServiceDefinition _GetService() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.UsingDefinition__GetService(swigCPtr);
    ServiceDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new ServiceDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _SetService(ServiceDefinition value) {
    RobotRaconteurNETPINVOKE.UsingDefinition__SetService(swigCPtr, ServiceDefinition.getCPtr(value));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public UsingDefinition(ServiceDefinition service) : this(RobotRaconteurNETPINVOKE.new_UsingDefinition(ServiceDefinition.getCPtr(service)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public override string ToString() {
    string ret = RobotRaconteurNETPINVOKE.UsingDefinition_ToString(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void FromString(string s, ServiceDefinitionParseInfo parse_info) {
    RobotRaconteurNETPINVOKE.UsingDefinition_FromString__SWIG_0(swigCPtr, s, ServiceDefinitionParseInfo.getCPtr(parse_info));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void FromString(string s) {
    RobotRaconteurNETPINVOKE.UsingDefinition_FromString__SWIG_1(swigCPtr, s);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class ConstantDefinition_StructField : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal ConstantDefinition_StructField(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(ConstantDefinition_StructField obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~ConstantDefinition_StructField() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_ConstantDefinition_StructField(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public string Name {
    set {
      RobotRaconteurNETPINVOKE.ConstantDefinition_StructField_Name_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.ConstantDefinition_StructField_Name_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string ConstantRefName {
    set {
      RobotRaconteurNETPINVOKE.ConstantDefinition_StructField_ConstantRefName_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.ConstantDefinition_StructField_ConstantRefName_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public ConstantDefinition_StructField() : this(RobotRaconteurNETPINVOKE.new_ConstantDefinition_StructField(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class ConstantDefinition : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal ConstantDefinition(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(ConstantDefinition obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~ConstantDefinition() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_ConstantDefinition(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public string Name {
    set {
      RobotRaconteurNETPINVOKE.ConstantDefinition_Name_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.ConstantDefinition_Name_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string DocString {
    set {
      RobotRaconteurNETPINVOKE.ConstantDefinition_DocString_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.ConstantDefinition_DocString_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public TypeDefinition Type {
    set {
      RobotRaconteurNETPINVOKE.ConstantDefinition_Type_set(swigCPtr, TypeDefinition.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.ConstantDefinition_Type_get(swigCPtr);
      TypeDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new TypeDefinition(cPtr, true);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string Value {
    set {
      RobotRaconteurNETPINVOKE.ConstantDefinition_Value_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.ConstantDefinition_Value_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public ServiceDefinitionParseInfo ParseInfo {
    set {
      RobotRaconteurNETPINVOKE.ConstantDefinition_ParseInfo_set(swigCPtr, ServiceDefinitionParseInfo.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.ConstantDefinition_ParseInfo_get(swigCPtr);
      ServiceDefinitionParseInfo ret = (cPtr == global::System.IntPtr.Zero) ? null : new ServiceDefinitionParseInfo(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  private ServiceDefinition _GetService() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.ConstantDefinition__GetService(swigCPtr);
    ServiceDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new ServiceDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _SetService(ServiceDefinition value) {
    RobotRaconteurNETPINVOKE.ConstantDefinition__SetService(swigCPtr, ServiceDefinition.getCPtr(value));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private ServiceEntryDefinition _GetServiceEntry() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.ConstantDefinition__GetServiceEntry(swigCPtr);
    ServiceEntryDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new ServiceEntryDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _SetServiceEntry(ServiceEntryDefinition value) {
    RobotRaconteurNETPINVOKE.ConstantDefinition__SetServiceEntry(swigCPtr, ServiceEntryDefinition.getCPtr(value));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public ConstantDefinition(ServiceDefinition service) : this(RobotRaconteurNETPINVOKE.new_ConstantDefinition__SWIG_0(ServiceDefinition.getCPtr(service)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public ConstantDefinition(ServiceEntryDefinition service_entry) : this(RobotRaconteurNETPINVOKE.new_ConstantDefinition__SWIG_1(ServiceEntryDefinition.getCPtr(service_entry)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public override string ToString() {
    string ret = RobotRaconteurNETPINVOKE.ConstantDefinition_ToString(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void FromString(string s, ServiceDefinitionParseInfo parse_info) {
    RobotRaconteurNETPINVOKE.ConstantDefinition_FromString__SWIG_0(swigCPtr, s, ServiceDefinitionParseInfo.getCPtr(parse_info));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void FromString(string s) {
    RobotRaconteurNETPINVOKE.ConstantDefinition_FromString__SWIG_1(swigCPtr, s);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Reset() {
    RobotRaconteurNETPINVOKE.ConstantDefinition_Reset(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public bool VerifyValue() {
    bool ret = RobotRaconteurNETPINVOKE.ConstantDefinition_VerifyValue(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public string ValueToString() {
    string ret = RobotRaconteurNETPINVOKE.ConstantDefinition_ValueToString(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public vector_constantdefinition_structfield ValueToStructFields() {
    vector_constantdefinition_structfield ret = new vector_constantdefinition_structfield(RobotRaconteurNETPINVOKE.ConstantDefinition_ValueToStructFields(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static string UnescapeString(string in_) {
    string ret = RobotRaconteurNETPINVOKE.ConstantDefinition_UnescapeString(in_);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static string EscapeString(string in_) {
    string ret = RobotRaconteurNETPINVOKE.ConstantDefinition_EscapeString(in_);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class EnumDefinition : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal EnumDefinition(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(EnumDefinition obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~EnumDefinition() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_EnumDefinition(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public string Name {
    set {
      RobotRaconteurNETPINVOKE.EnumDefinition_Name_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.EnumDefinition_Name_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string DocString {
    set {
      RobotRaconteurNETPINVOKE.EnumDefinition_DocString_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.EnumDefinition_DocString_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public vector_enumdefinitionvalues Values {
    set {
      RobotRaconteurNETPINVOKE.EnumDefinition_Values_set(swigCPtr, vector_enumdefinitionvalues.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.EnumDefinition_Values_get(swigCPtr);
      vector_enumdefinitionvalues ret = (cPtr == global::System.IntPtr.Zero) ? null : new vector_enumdefinitionvalues(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public ServiceDefinitionParseInfo ParseInfo {
    set {
      RobotRaconteurNETPINVOKE.EnumDefinition_ParseInfo_set(swigCPtr, ServiceDefinitionParseInfo.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.EnumDefinition_ParseInfo_get(swigCPtr);
      ServiceDefinitionParseInfo ret = (cPtr == global::System.IntPtr.Zero) ? null : new ServiceDefinitionParseInfo(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  private ServiceDefinition _GetService() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.EnumDefinition__GetService(swigCPtr);
    ServiceDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new ServiceDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _SetService(ServiceDefinition value) {
    RobotRaconteurNETPINVOKE.EnumDefinition__SetService(swigCPtr, ServiceDefinition.getCPtr(value));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public EnumDefinition(ServiceDefinition service) : this(RobotRaconteurNETPINVOKE.new_EnumDefinition(ServiceDefinition.getCPtr(service)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public override string ToString() {
    string ret = RobotRaconteurNETPINVOKE.EnumDefinition_ToString(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void FromString(string s, ServiceDefinitionParseInfo parse_info) {
    RobotRaconteurNETPINVOKE.EnumDefinition_FromString__SWIG_0(swigCPtr, s, ServiceDefinitionParseInfo.getCPtr(parse_info));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void FromString(string s) {
    RobotRaconteurNETPINVOKE.EnumDefinition_FromString__SWIG_1(swigCPtr, s);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public bool VerifyValues() {
    bool ret = RobotRaconteurNETPINVOKE.EnumDefinition_VerifyValues(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Reset() {
    RobotRaconteurNETPINVOKE.EnumDefinition_Reset(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class EnumDefinitionValue : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal EnumDefinitionValue(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(EnumDefinitionValue obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~EnumDefinitionValue() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_EnumDefinitionValue(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public EnumDefinitionValue() : this(RobotRaconteurNETPINVOKE.new_EnumDefinitionValue(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public string Name {
    set {
      RobotRaconteurNETPINVOKE.EnumDefinitionValue_Name_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.EnumDefinitionValue_Name_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string DocString {
    set {
      RobotRaconteurNETPINVOKE.EnumDefinitionValue_DocString_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.EnumDefinitionValue_DocString_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public int Value {
    set {
      RobotRaconteurNETPINVOKE.EnumDefinitionValue_Value_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      int ret = RobotRaconteurNETPINVOKE.EnumDefinitionValue_Value_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public bool ImplicitValue {
    set {
      RobotRaconteurNETPINVOKE.EnumDefinitionValue_ImplicitValue_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      bool ret = RobotRaconteurNETPINVOKE.EnumDefinitionValue_ImplicitValue_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public bool HexValue {
    set {
      RobotRaconteurNETPINVOKE.EnumDefinitionValue_HexValue_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      bool ret = RobotRaconteurNETPINVOKE.EnumDefinitionValue_HexValue_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class ExceptionDefinition : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal ExceptionDefinition(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(ExceptionDefinition obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~ExceptionDefinition() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_ExceptionDefinition(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public string Name {
    set {
      RobotRaconteurNETPINVOKE.ExceptionDefinition_Name_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.ExceptionDefinition_Name_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string DocString {
    set {
      RobotRaconteurNETPINVOKE.ExceptionDefinition_DocString_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.ExceptionDefinition_DocString_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public ServiceDefinitionParseInfo ParseInfo {
    set {
      RobotRaconteurNETPINVOKE.ExceptionDefinition_ParseInfo_set(swigCPtr, ServiceDefinitionParseInfo.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.ExceptionDefinition_ParseInfo_get(swigCPtr);
      ServiceDefinitionParseInfo ret = (cPtr == global::System.IntPtr.Zero) ? null : new ServiceDefinitionParseInfo(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  private ServiceDefinition _GetService() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.ExceptionDefinition__GetService(swigCPtr);
    ServiceDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new ServiceDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _SetService(ServiceDefinition value) {
    RobotRaconteurNETPINVOKE.ExceptionDefinition__SetService(swigCPtr, ServiceDefinition.getCPtr(value));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public ExceptionDefinition(ServiceDefinition service) : this(RobotRaconteurNETPINVOKE.new_ExceptionDefinition(ServiceDefinition.getCPtr(service)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public override string ToString() {
    string ret = RobotRaconteurNETPINVOKE.ExceptionDefinition_ToString(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void FromString(string s, ServiceDefinitionParseInfo parse_info) {
    RobotRaconteurNETPINVOKE.ExceptionDefinition_FromString__SWIG_0(swigCPtr, s, ServiceDefinitionParseInfo.getCPtr(parse_info));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void FromString(string s) {
    RobotRaconteurNETPINVOKE.ExceptionDefinition_FromString__SWIG_1(swigCPtr, s);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Reset() {
    RobotRaconteurNETPINVOKE.ExceptionDefinition_Reset(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class MemberDefinitionUtil : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal MemberDefinitionUtil(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(MemberDefinitionUtil obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~MemberDefinitionUtil() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_MemberDefinitionUtil(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }


public static MemberDefinition SwigCast(MemberDefinition i)
{
	MemberDefinition o=null;
	o=ToProperty(i);
	if (o!=null) return (PropertyDefinition)o;
	o=ToFunction(i);
	if (o!=null) return (FunctionDefinition)o;
	o=ToEvent(i);
	if (o!=null) return (EventDefinition)o;
	o=ToObjRef(i);
	if (o!=null) return (ObjRefDefinition)o;
	o=ToPipe(i);
	if (o!=null) return (PipeDefinition)o;
	o=ToCallback(i);
	if (o!=null) return (CallbackDefinition)o;
	o=ToWire(i);
	if (o!=null) return (WireDefinition)o;
	o=ToMemory(i);
	if (o!=null) return (MemoryDefinition)o;
	throw new Exception("Invalid MemberDefinition");
}


  public static PropertyDefinition ToProperty(MemberDefinition t) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MemberDefinitionUtil_ToProperty(MemberDefinition.getCPtr(t));
    PropertyDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new PropertyDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static FunctionDefinition ToFunction(MemberDefinition t) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MemberDefinitionUtil_ToFunction(MemberDefinition.getCPtr(t));
    FunctionDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new FunctionDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static ObjRefDefinition ToObjRef(MemberDefinition t) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MemberDefinitionUtil_ToObjRef(MemberDefinition.getCPtr(t));
    ObjRefDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new ObjRefDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static EventDefinition ToEvent(MemberDefinition t) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MemberDefinitionUtil_ToEvent(MemberDefinition.getCPtr(t));
    EventDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new EventDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static PipeDefinition ToPipe(MemberDefinition t) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MemberDefinitionUtil_ToPipe(MemberDefinition.getCPtr(t));
    PipeDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new PipeDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static CallbackDefinition ToCallback(MemberDefinition t) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MemberDefinitionUtil_ToCallback(MemberDefinition.getCPtr(t));
    CallbackDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new CallbackDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static WireDefinition ToWire(MemberDefinition t) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MemberDefinitionUtil_ToWire(MemberDefinition.getCPtr(t));
    WireDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new WireDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static MemoryDefinition ToMemory(MemberDefinition t) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MemberDefinitionUtil_ToMemory(MemberDefinition.getCPtr(t));
    MemoryDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new MemoryDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public MemberDefinitionUtil() : this(RobotRaconteurNETPINVOKE.new_MemberDefinitionUtil(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class NodeID : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal NodeID(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(NodeID obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~NodeID() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_NodeID(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }


public static bool operator == (NodeID a, NodeID b)
{
    if (Object.Equals(a,  null)  && Object.Equals(b,  null) ) return true;
    if (Object.Equals(a,  null)  || Object.Equals(b,  null) ) return false;
    return a.eq(b);
}

public override bool Equals(Object o)
{
    if (!(o is NodeID)) return false;
    return this == ((NodeID)o);
}

public override int GetHashCode()
{
	int o=0;
	byte[] b=ToByteArray();
	for (int i=0; i<b.Length; i++) o+=b[i];
    return o;
}

public static bool operator != (NodeID a, NodeID b)
{
    return !(a==b);
}

public byte[] ToByteArray()
{
	byte[] o=new byte[16];
	this.ToByteArrayC(o);
	return o;

}

public NodeID(byte[] bytes) : this(bytes,bytes.Length) {}


  public NodeID() : this(RobotRaconteurNETPINVOKE.new_NodeID__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public override string ToString() {
    string ret = RobotRaconteurNETPINVOKE.NodeID_ToString__SWIG_0(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public string ToString(string format) {
    string ret = RobotRaconteurNETPINVOKE.NodeID_ToString__SWIG_1(swigCPtr, format);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static NodeID NewUniqueID() {
    NodeID ret = new NodeID(RobotRaconteurNETPINVOKE.NodeID_NewUniqueID(), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual bool eq(NodeID id2) {
    bool ret = RobotRaconteurNETPINVOKE.NodeID_eq(swigCPtr, NodeID.getCPtr(id2));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool ne(NodeID id2) {
    bool ret = RobotRaconteurNETPINVOKE.NodeID_ne(swigCPtr, NodeID.getCPtr(id2));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool lt(NodeID id2) {
    bool ret = RobotRaconteurNETPINVOKE.NodeID_lt(swigCPtr, NodeID.getCPtr(id2));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool IsAnyNode() {
    bool ret = RobotRaconteurNETPINVOKE.NodeID_IsAnyNode(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static NodeID GetAny() {
    NodeID ret = new NodeID(RobotRaconteurNETPINVOKE.NodeID_GetAny(), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public NodeID(string id) : this(RobotRaconteurNETPINVOKE.new_NodeID__SWIG_1(id), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public NodeID(NodeID id) : this(RobotRaconteurNETPINVOKE.new_NodeID__SWIG_2(NodeID.getCPtr(id)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private NodeID(byte[] bytes, int bytes_len) : this(RobotRaconteurNETPINVOKE.new_NodeID__SWIG_3(bytes, bytes_len), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private void ToByteArrayC(byte[] bytes) {
    RobotRaconteurNETPINVOKE.NodeID_ToByteArrayC(swigCPtr, bytes);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class vectorptr_messageentry : global::System.IDisposable, global::System.Collections.IEnumerable, global::System.Collections.Generic.IEnumerable<MessageEntry>
 {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal vectorptr_messageentry(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(vectorptr_messageentry obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~vectorptr_messageentry() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_vectorptr_messageentry(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public vectorptr_messageentry(global::System.Collections.IEnumerable c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (MessageEntry element in c) {
      this.Add(element);
    }
  }

  public vectorptr_messageentry(global::System.Collections.Generic.IEnumerable<MessageEntry> c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (MessageEntry element in c) {
      this.Add(element);
    }
  }

  public bool IsFixedSize {
    get {
      return false;
    }
  }

  public bool IsReadOnly {
    get {
      return false;
    }
  }

  public MessageEntry this[int index]  {
    get {
      return getitem(index);
    }
    set {
      setitem(index, value);
    }
  }

  public int Capacity {
    get {
      return (int)capacity();
    }
    set {
      if (value < size())
        throw new global::System.ArgumentOutOfRangeException("Capacity");
      reserve((uint)value);
    }
  }

  public int Count {
    get {
      return (int)size();
    }
  }

  public bool IsSynchronized {
    get {
      return false;
    }
  }

  public void CopyTo(MessageEntry[] array)
  {
    CopyTo(0, array, 0, this.Count);
  }

  public void CopyTo(MessageEntry[] array, int arrayIndex)
  {
    CopyTo(0, array, arrayIndex, this.Count);
  }

  public void CopyTo(int index, MessageEntry[] array, int arrayIndex, int count)
  {
    if (array == null)
      throw new global::System.ArgumentNullException("array");
    if (index < 0)
      throw new global::System.ArgumentOutOfRangeException("index", "Value is less than zero");
    if (arrayIndex < 0)
      throw new global::System.ArgumentOutOfRangeException("arrayIndex", "Value is less than zero");
    if (count < 0)
      throw new global::System.ArgumentOutOfRangeException("count", "Value is less than zero");
    if (array.Rank > 1)
      throw new global::System.ArgumentException("Multi dimensional array.", "array");
    if (index+count > this.Count || arrayIndex+count > array.Length)
      throw new global::System.ArgumentException("Number of elements to copy is too large.");
    for (int i=0; i<count; i++)
      array.SetValue(getitemcopy(index+i), arrayIndex+i);
  }

  public MessageEntry[] ToArray() {
    MessageEntry[] array = new MessageEntry[this.Count];
    this.CopyTo(array);
    return array;
  }

  global::System.Collections.Generic.IEnumerator<MessageEntry> global::System.Collections.Generic.IEnumerable<MessageEntry>.GetEnumerator() {
    return new vectorptr_messageentryEnumerator(this);
  }

  global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator() {
    return new vectorptr_messageentryEnumerator(this);
  }

  public vectorptr_messageentryEnumerator GetEnumerator() {
    return new vectorptr_messageentryEnumerator(this);
  }

  // Type-safe enumerator
  /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown
  /// whenever the collection is modified. This has been done for changes in the size of the
  /// collection but not when one of the elements of the collection is modified as it is a bit
  /// tricky to detect unmanaged code that modifies the collection under our feet.
  public sealed class vectorptr_messageentryEnumerator : global::System.Collections.IEnumerator
    , global::System.Collections.Generic.IEnumerator<MessageEntry>
  {
    private vectorptr_messageentry collectionRef;
    private int currentIndex;
    private object currentObject;
    private int currentSize;

    public vectorptr_messageentryEnumerator(vectorptr_messageentry collection) {
      collectionRef = collection;
      currentIndex = -1;
      currentObject = null;
      currentSize = collectionRef.Count;
    }

    // Type-safe iterator Current
    public MessageEntry Current {
      get {
        if (currentIndex == -1)
          throw new global::System.InvalidOperationException("Enumeration not started.");
        if (currentIndex > currentSize - 1)
          throw new global::System.InvalidOperationException("Enumeration finished.");
        if (currentObject == null)
          throw new global::System.InvalidOperationException("Collection modified.");
        return (MessageEntry)currentObject;
      }
    }

    // Type-unsafe IEnumerator.Current
    object global::System.Collections.IEnumerator.Current {
      get {
        return Current;
      }
    }

    public bool MoveNext() {
      int size = collectionRef.Count;
      bool moveOkay = (currentIndex+1 < size) && (size == currentSize);
      if (moveOkay) {
        currentIndex++;
        currentObject = collectionRef[currentIndex];
      } else {
        currentObject = null;
      }
      return moveOkay;
    }

    public void Reset() {
      currentIndex = -1;
      currentObject = null;
      if (collectionRef.Count != currentSize) {
        throw new global::System.InvalidOperationException("Collection modified.");
      }
    }

    public void Dispose() {
        currentIndex = -1;
        currentObject = null;
    }
  }

  public void Clear() {
    RobotRaconteurNETPINVOKE.vectorptr_messageentry_Clear(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Add(MessageEntry x) {
    RobotRaconteurNETPINVOKE.vectorptr_messageentry_Add(swigCPtr, MessageEntry.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private uint size() {
    uint ret = RobotRaconteurNETPINVOKE.vectorptr_messageentry_size(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private uint capacity() {
    uint ret = RobotRaconteurNETPINVOKE.vectorptr_messageentry_capacity(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void reserve(uint n) {
    RobotRaconteurNETPINVOKE.vectorptr_messageentry_reserve(swigCPtr, n);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_messageentry() : this(RobotRaconteurNETPINVOKE.new_vectorptr_messageentry__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_messageentry(vectorptr_messageentry other) : this(RobotRaconteurNETPINVOKE.new_vectorptr_messageentry__SWIG_1(vectorptr_messageentry.getCPtr(other)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_messageentry(int capacity) : this(RobotRaconteurNETPINVOKE.new_vectorptr_messageentry__SWIG_2(capacity), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private MessageEntry getitemcopy(int index) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_messageentry_getitemcopy(swigCPtr, index);
    MessageEntry ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageEntry(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private MessageEntry getitem(int index) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_messageentry_getitem(swigCPtr, index);
    MessageEntry ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageEntry(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void setitem(int index, MessageEntry val) {
    RobotRaconteurNETPINVOKE.vectorptr_messageentry_setitem(swigCPtr, index, MessageEntry.getCPtr(val));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void AddRange(vectorptr_messageentry values) {
    RobotRaconteurNETPINVOKE.vectorptr_messageentry_AddRange(swigCPtr, vectorptr_messageentry.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_messageentry GetRange(int index, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_messageentry_GetRange(swigCPtr, index, count);
    vectorptr_messageentry ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_messageentry(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Insert(int index, MessageEntry x) {
    RobotRaconteurNETPINVOKE.vectorptr_messageentry_Insert(swigCPtr, index, MessageEntry.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void InsertRange(int index, vectorptr_messageentry values) {
    RobotRaconteurNETPINVOKE.vectorptr_messageentry_InsertRange(swigCPtr, index, vectorptr_messageentry.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveAt(int index) {
    RobotRaconteurNETPINVOKE.vectorptr_messageentry_RemoveAt(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveRange(int index, int count) {
    RobotRaconteurNETPINVOKE.vectorptr_messageentry_RemoveRange(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static vectorptr_messageentry Repeat(MessageEntry value, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_messageentry_Repeat(MessageEntry.getCPtr(value), count);
    vectorptr_messageentry ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_messageentry(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Reverse() {
    RobotRaconteurNETPINVOKE.vectorptr_messageentry_Reverse__SWIG_0(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Reverse(int index, int count) {
    RobotRaconteurNETPINVOKE.vectorptr_messageentry_Reverse__SWIG_1(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SetRange(int index, vectorptr_messageentry values) {
    RobotRaconteurNETPINVOKE.vectorptr_messageentry_SetRange(swigCPtr, index, vectorptr_messageentry.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class vectorptr_messageelement : global::System.IDisposable, global::System.Collections.IEnumerable, global::System.Collections.Generic.IEnumerable<MessageElement>
 {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal vectorptr_messageelement(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(vectorptr_messageelement obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~vectorptr_messageelement() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_vectorptr_messageelement(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public vectorptr_messageelement(global::System.Collections.IEnumerable c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (MessageElement element in c) {
      this.Add(element);
    }
  }

  public vectorptr_messageelement(global::System.Collections.Generic.IEnumerable<MessageElement> c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (MessageElement element in c) {
      this.Add(element);
    }
  }

  public bool IsFixedSize {
    get {
      return false;
    }
  }

  public bool IsReadOnly {
    get {
      return false;
    }
  }

  public MessageElement this[int index]  {
    get {
      return getitem(index);
    }
    set {
      setitem(index, value);
    }
  }

  public int Capacity {
    get {
      return (int)capacity();
    }
    set {
      if (value < size())
        throw new global::System.ArgumentOutOfRangeException("Capacity");
      reserve((uint)value);
    }
  }

  public int Count {
    get {
      return (int)size();
    }
  }

  public bool IsSynchronized {
    get {
      return false;
    }
  }

  public void CopyTo(MessageElement[] array)
  {
    CopyTo(0, array, 0, this.Count);
  }

  public void CopyTo(MessageElement[] array, int arrayIndex)
  {
    CopyTo(0, array, arrayIndex, this.Count);
  }

  public void CopyTo(int index, MessageElement[] array, int arrayIndex, int count)
  {
    if (array == null)
      throw new global::System.ArgumentNullException("array");
    if (index < 0)
      throw new global::System.ArgumentOutOfRangeException("index", "Value is less than zero");
    if (arrayIndex < 0)
      throw new global::System.ArgumentOutOfRangeException("arrayIndex", "Value is less than zero");
    if (count < 0)
      throw new global::System.ArgumentOutOfRangeException("count", "Value is less than zero");
    if (array.Rank > 1)
      throw new global::System.ArgumentException("Multi dimensional array.", "array");
    if (index+count > this.Count || arrayIndex+count > array.Length)
      throw new global::System.ArgumentException("Number of elements to copy is too large.");
    for (int i=0; i<count; i++)
      array.SetValue(getitemcopy(index+i), arrayIndex+i);
  }

  public MessageElement[] ToArray() {
    MessageElement[] array = new MessageElement[this.Count];
    this.CopyTo(array);
    return array;
  }

  global::System.Collections.Generic.IEnumerator<MessageElement> global::System.Collections.Generic.IEnumerable<MessageElement>.GetEnumerator() {
    return new vectorptr_messageelementEnumerator(this);
  }

  global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator() {
    return new vectorptr_messageelementEnumerator(this);
  }

  public vectorptr_messageelementEnumerator GetEnumerator() {
    return new vectorptr_messageelementEnumerator(this);
  }

  // Type-safe enumerator
  /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown
  /// whenever the collection is modified. This has been done for changes in the size of the
  /// collection but not when one of the elements of the collection is modified as it is a bit
  /// tricky to detect unmanaged code that modifies the collection under our feet.
  public sealed class vectorptr_messageelementEnumerator : global::System.Collections.IEnumerator
    , global::System.Collections.Generic.IEnumerator<MessageElement>
  {
    private vectorptr_messageelement collectionRef;
    private int currentIndex;
    private object currentObject;
    private int currentSize;

    public vectorptr_messageelementEnumerator(vectorptr_messageelement collection) {
      collectionRef = collection;
      currentIndex = -1;
      currentObject = null;
      currentSize = collectionRef.Count;
    }

    // Type-safe iterator Current
    public MessageElement Current {
      get {
        if (currentIndex == -1)
          throw new global::System.InvalidOperationException("Enumeration not started.");
        if (currentIndex > currentSize - 1)
          throw new global::System.InvalidOperationException("Enumeration finished.");
        if (currentObject == null)
          throw new global::System.InvalidOperationException("Collection modified.");
        return (MessageElement)currentObject;
      }
    }

    // Type-unsafe IEnumerator.Current
    object global::System.Collections.IEnumerator.Current {
      get {
        return Current;
      }
    }

    public bool MoveNext() {
      int size = collectionRef.Count;
      bool moveOkay = (currentIndex+1 < size) && (size == currentSize);
      if (moveOkay) {
        currentIndex++;
        currentObject = collectionRef[currentIndex];
      } else {
        currentObject = null;
      }
      return moveOkay;
    }

    public void Reset() {
      currentIndex = -1;
      currentObject = null;
      if (collectionRef.Count != currentSize) {
        throw new global::System.InvalidOperationException("Collection modified.");
      }
    }

    public void Dispose() {
        currentIndex = -1;
        currentObject = null;
    }
  }

  public void Clear() {
    RobotRaconteurNETPINVOKE.vectorptr_messageelement_Clear(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Add(MessageElement x) {
    RobotRaconteurNETPINVOKE.vectorptr_messageelement_Add(swigCPtr, MessageElement.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private uint size() {
    uint ret = RobotRaconteurNETPINVOKE.vectorptr_messageelement_size(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private uint capacity() {
    uint ret = RobotRaconteurNETPINVOKE.vectorptr_messageelement_capacity(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void reserve(uint n) {
    RobotRaconteurNETPINVOKE.vectorptr_messageelement_reserve(swigCPtr, n);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_messageelement() : this(RobotRaconteurNETPINVOKE.new_vectorptr_messageelement__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_messageelement(vectorptr_messageelement other) : this(RobotRaconteurNETPINVOKE.new_vectorptr_messageelement__SWIG_1(vectorptr_messageelement.getCPtr(other)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_messageelement(int capacity) : this(RobotRaconteurNETPINVOKE.new_vectorptr_messageelement__SWIG_2(capacity), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private MessageElement getitemcopy(int index) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_messageelement_getitemcopy(swigCPtr, index);
    MessageElement ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElement(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private MessageElement getitem(int index) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_messageelement_getitem(swigCPtr, index);
    MessageElement ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElement(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void setitem(int index, MessageElement val) {
    RobotRaconteurNETPINVOKE.vectorptr_messageelement_setitem(swigCPtr, index, MessageElement.getCPtr(val));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void AddRange(vectorptr_messageelement values) {
    RobotRaconteurNETPINVOKE.vectorptr_messageelement_AddRange(swigCPtr, vectorptr_messageelement.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_messageelement GetRange(int index, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_messageelement_GetRange(swigCPtr, index, count);
    vectorptr_messageelement ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_messageelement(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Insert(int index, MessageElement x) {
    RobotRaconteurNETPINVOKE.vectorptr_messageelement_Insert(swigCPtr, index, MessageElement.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void InsertRange(int index, vectorptr_messageelement values) {
    RobotRaconteurNETPINVOKE.vectorptr_messageelement_InsertRange(swigCPtr, index, vectorptr_messageelement.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveAt(int index) {
    RobotRaconteurNETPINVOKE.vectorptr_messageelement_RemoveAt(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveRange(int index, int count) {
    RobotRaconteurNETPINVOKE.vectorptr_messageelement_RemoveRange(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static vectorptr_messageelement Repeat(MessageElement value, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_messageelement_Repeat(MessageElement.getCPtr(value), count);
    vectorptr_messageelement ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_messageelement(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Reverse() {
    RobotRaconteurNETPINVOKE.vectorptr_messageelement_Reverse__SWIG_0(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Reverse(int index, int count) {
    RobotRaconteurNETPINVOKE.vectorptr_messageelement_Reverse__SWIG_1(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SetRange(int index, vectorptr_messageelement values) {
    RobotRaconteurNETPINVOKE.vectorptr_messageelement_SetRange(swigCPtr, index, vectorptr_messageelement.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class Message : RRValue {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnDerived;

  internal Message(global::System.IntPtr cPtr, bool cMemoryOwn) : base(RobotRaconteurNETPINVOKE.Message_SWIGSmartPtrUpcast(cPtr), true) {
    swigCMemOwnDerived = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(Message obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  protected override void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnDerived) {
          swigCMemOwnDerived = false;
          RobotRaconteurNETPINVOKE.delete_Message(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
      base.Dispose(disposing);
    }
  }

  public MessageHeader header {
    set {
      RobotRaconteurNETPINVOKE.Message_header_set(swigCPtr, MessageHeader.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.Message_header_get(swigCPtr);
      MessageHeader ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageHeader(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public vectorptr_messageentry entries {
    set {
      RobotRaconteurNETPINVOKE.Message_entries_set(swigCPtr, vectorptr_messageentry.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.Message_entries_get(swigCPtr);
      vectorptr_messageentry ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_messageentry(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public Message() : this(RobotRaconteurNETPINVOKE.new_Message(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public uint ComputeSize() {
    uint ret = RobotRaconteurNETPINVOKE.Message_ComputeSize(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public MessageEntry FindEntry(string name) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.Message_FindEntry(swigCPtr, name);
    MessageEntry ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageEntry(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public MessageEntry AddEntry(MessageEntryType t, string name) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.Message_AddEntry(swigCPtr, (int)t, name);
    MessageEntry ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageEntry(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class MessageHeader : RRValue {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnDerived;

  internal MessageHeader(global::System.IntPtr cPtr, bool cMemoryOwn) : base(RobotRaconteurNETPINVOKE.MessageHeader_SWIGSmartPtrUpcast(cPtr), true) {
    swigCMemOwnDerived = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(MessageHeader obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  protected override void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnDerived) {
          swigCMemOwnDerived = false;
          RobotRaconteurNETPINVOKE.delete_MessageHeader(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
      base.Dispose(disposing);
    }
  }

  public ushort HeaderSize {
    set {
      RobotRaconteurNETPINVOKE.MessageHeader_HeaderSize_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      ushort ret = RobotRaconteurNETPINVOKE.MessageHeader_HeaderSize_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public byte MessageFlags {
    set {
      RobotRaconteurNETPINVOKE.MessageHeader_MessageFlags_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      byte ret = RobotRaconteurNETPINVOKE.MessageHeader_MessageFlags_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public uint SenderEndpoint {
    set {
      RobotRaconteurNETPINVOKE.MessageHeader_SenderEndpoint_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      uint ret = RobotRaconteurNETPINVOKE.MessageHeader_SenderEndpoint_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public uint ReceiverEndpoint {
    set {
      RobotRaconteurNETPINVOKE.MessageHeader_ReceiverEndpoint_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      uint ret = RobotRaconteurNETPINVOKE.MessageHeader_ReceiverEndpoint_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string SenderNodeName {
    set {
      RobotRaconteurNETPINVOKE.MessageHeader_SenderNodeName_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.MessageHeader_SenderNodeName_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string ReceiverNodeName {
    set {
      RobotRaconteurNETPINVOKE.MessageHeader_ReceiverNodeName_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.MessageHeader_ReceiverNodeName_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public NodeID SenderNodeID {
    set {
      RobotRaconteurNETPINVOKE.MessageHeader_SenderNodeID_set(swigCPtr, NodeID.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MessageHeader_SenderNodeID_get(swigCPtr);
      NodeID ret = (cPtr == global::System.IntPtr.Zero) ? null : new NodeID(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public NodeID ReceiverNodeID {
    set {
      RobotRaconteurNETPINVOKE.MessageHeader_ReceiverNodeID_set(swigCPtr, NodeID.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MessageHeader_ReceiverNodeID_get(swigCPtr);
      NodeID ret = (cPtr == global::System.IntPtr.Zero) ? null : new NodeID(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string MetaData {
    set {
      RobotRaconteurNETPINVOKE.MessageHeader_MetaData_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.MessageHeader_MetaData_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public ushort EntryCount {
    set {
      RobotRaconteurNETPINVOKE.MessageHeader_EntryCount_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      ushort ret = RobotRaconteurNETPINVOKE.MessageHeader_EntryCount_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public ushort MessageID {
    set {
      RobotRaconteurNETPINVOKE.MessageHeader_MessageID_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      ushort ret = RobotRaconteurNETPINVOKE.MessageHeader_MessageID_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public ushort MessageResID {
    set {
      RobotRaconteurNETPINVOKE.MessageHeader_MessageResID_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      ushort ret = RobotRaconteurNETPINVOKE.MessageHeader_MessageResID_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public uint MessageSize {
    set {
      RobotRaconteurNETPINVOKE.MessageHeader_MessageSize_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      uint ret = RobotRaconteurNETPINVOKE.MessageHeader_MessageSize_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public ushort Priority {
    set {
      RobotRaconteurNETPINVOKE.MessageHeader_Priority_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      ushort ret = RobotRaconteurNETPINVOKE.MessageHeader_Priority_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public vector_uint8_t Extended {
    set {
      RobotRaconteurNETPINVOKE.MessageHeader_Extended_set(swigCPtr, vector_uint8_t.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MessageHeader_Extended_get(swigCPtr);
      vector_uint8_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new vector_uint8_t(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public ushort ComputeSize() {
    ushort ret = RobotRaconteurNETPINVOKE.MessageHeader_ComputeSize(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void UpdateHeader(uint message_size, ushort entry_count) {
    RobotRaconteurNETPINVOKE.MessageHeader_UpdateHeader(swigCPtr, message_size, entry_count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public MessageHeader() : this(RobotRaconteurNETPINVOKE.new_MessageHeader(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public partial class MessageEntry : RRValue {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnDerived;

  internal MessageEntry(global::System.IntPtr cPtr, bool cMemoryOwn) : base(RobotRaconteurNETPINVOKE.MessageEntry_SWIGSmartPtrUpcast(cPtr), true) {
    swigCMemOwnDerived = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(MessageEntry obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  protected override void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnDerived) {
          swigCMemOwnDerived = false;
          RobotRaconteurNETPINVOKE.delete_MessageEntry(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
      base.Dispose(disposing);
    }
  }

  public uint EntrySize {
    set {
      RobotRaconteurNETPINVOKE.MessageEntry_EntrySize_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      uint ret = RobotRaconteurNETPINVOKE.MessageEntry_EntrySize_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public byte EntryFlags {
    set {
      RobotRaconteurNETPINVOKE.MessageEntry_EntryFlags_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      byte ret = RobotRaconteurNETPINVOKE.MessageEntry_EntryFlags_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public MessageEntryType EntryType {
    set {
      RobotRaconteurNETPINVOKE.MessageEntry_EntryType_set(swigCPtr, (int)value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      MessageEntryType ret = (MessageEntryType)RobotRaconteurNETPINVOKE.MessageEntry_EntryType_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string ServicePath {
    set {
      RobotRaconteurNETPINVOKE.MessageEntry_ServicePath_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.MessageEntry_ServicePath_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string MemberName {
    set {
      RobotRaconteurNETPINVOKE.MessageEntry_MemberName_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.MessageEntry_MemberName_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public uint MemberNameCode {
    set {
      RobotRaconteurNETPINVOKE.MessageEntry_MemberNameCode_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      uint ret = RobotRaconteurNETPINVOKE.MessageEntry_MemberNameCode_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public uint RequestID {
    set {
      RobotRaconteurNETPINVOKE.MessageEntry_RequestID_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      uint ret = RobotRaconteurNETPINVOKE.MessageEntry_RequestID_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public MessageErrorType Error {
    set {
      RobotRaconteurNETPINVOKE.MessageEntry_Error_set(swigCPtr, (int)value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      MessageErrorType ret = (MessageErrorType)RobotRaconteurNETPINVOKE.MessageEntry_Error_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string MetaData {
    set {
      RobotRaconteurNETPINVOKE.MessageEntry_MetaData_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.MessageEntry_MetaData_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public vector_uint8_t Extended {
    set {
      RobotRaconteurNETPINVOKE.MessageEntry_Extended_set(swigCPtr, vector_uint8_t.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MessageEntry_Extended_get(swigCPtr);
      vector_uint8_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new vector_uint8_t(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public vectorptr_messageelement elements {
    set {
      RobotRaconteurNETPINVOKE.MessageEntry_elements_set(swigCPtr, vectorptr_messageelement.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MessageEntry_elements_get(swigCPtr);
      vectorptr_messageelement ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_messageelement(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public MessageEntry() : this(RobotRaconteurNETPINVOKE.new_MessageEntry__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public MessageEntry(MessageEntryType t, string n) : this(RobotRaconteurNETPINVOKE.new_MessageEntry__SWIG_1((int)t, n), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public uint ComputeSize() {
    uint ret = RobotRaconteurNETPINVOKE.MessageEntry_ComputeSize(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public MessageElement FindElement(string name) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MessageEntry_FindElement(swigCPtr, name);
    MessageElement ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElement(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public MessageElement AddElement(MessageElement m) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MessageEntry_AddElement(swigCPtr, MessageElement.getCPtr(m));
    MessageElement ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElement(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public partial class MessageElement : RRValue {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnDerived;

  internal MessageElement(global::System.IntPtr cPtr, bool cMemoryOwn) : base(RobotRaconteurNETPINVOKE.MessageElement_SWIGSmartPtrUpcast(cPtr), true) {
    swigCMemOwnDerived = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(MessageElement obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  protected override void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnDerived) {
          swigCMemOwnDerived = false;
          RobotRaconteurNETPINVOKE.delete_MessageElement(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
      base.Dispose(disposing);
    }
  }

  public uint ElementSize {
    set {
      RobotRaconteurNETPINVOKE.MessageElement_ElementSize_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      uint ret = RobotRaconteurNETPINVOKE.MessageElement_ElementSize_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public byte ElementFlags {
    set {
      RobotRaconteurNETPINVOKE.MessageElement_ElementFlags_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      byte ret = RobotRaconteurNETPINVOKE.MessageElement_ElementFlags_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string ElementName {
    set {
      RobotRaconteurNETPINVOKE.MessageElement_ElementName_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.MessageElement_ElementName_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public uint ElementNameCode {
    set {
      RobotRaconteurNETPINVOKE.MessageElement_ElementNameCode_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      uint ret = RobotRaconteurNETPINVOKE.MessageElement_ElementNameCode_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public int ElementNumber {
    set {
      RobotRaconteurNETPINVOKE.MessageElement_ElementNumber_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      int ret = RobotRaconteurNETPINVOKE.MessageElement_ElementNumber_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public DataTypes ElementType {
    set {
      RobotRaconteurNETPINVOKE.MessageElement_ElementType_set(swigCPtr, (int)value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      DataTypes ret = (DataTypes)RobotRaconteurNETPINVOKE.MessageElement_ElementType_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string ElementTypeName {
    set {
      RobotRaconteurNETPINVOKE.MessageElement_ElementTypeName_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.MessageElement_ElementTypeName_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public uint ElementTypeNameCode {
    set {
      RobotRaconteurNETPINVOKE.MessageElement_ElementTypeNameCode_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      uint ret = RobotRaconteurNETPINVOKE.MessageElement_ElementTypeNameCode_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string MetaData {
    set {
      RobotRaconteurNETPINVOKE.MessageElement_MetaData_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.MessageElement_MetaData_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public vector_uint8_t Extended {
    set {
      RobotRaconteurNETPINVOKE.MessageElement_Extended_set(swigCPtr, vector_uint8_t.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MessageElement_Extended_get(swigCPtr);
      vector_uint8_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new vector_uint8_t(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public uint DataCount {
    set {
      RobotRaconteurNETPINVOKE.MessageElement_DataCount_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      uint ret = RobotRaconteurNETPINVOKE.MessageElement_DataCount_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public MessageElement() : this(RobotRaconteurNETPINVOKE.new_MessageElement(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private MessageElementData _GetData() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MessageElement__GetData(swigCPtr);
    MessageElementData ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElementData(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _SetData(MessageElementData value) {
    RobotRaconteurNETPINVOKE.MessageElement__SetData(swigCPtr, MessageElementData.getCPtr(value));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public uint ComputeSize() {
    uint ret = RobotRaconteurNETPINVOKE.MessageElement_ComputeSize(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void UpdateData() {
    RobotRaconteurNETPINVOKE.MessageElement_UpdateData(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static MessageElement FindElement(vectorptr_messageelement m, string name) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MessageElement_FindElement(vectorptr_messageelement.getCPtr(m), name);
    MessageElement ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElement(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static bool ContainsElement(vectorptr_messageelement m, string name) {
    bool ret = RobotRaconteurNETPINVOKE.MessageElement_ContainsElement(vectorptr_messageelement.getCPtr(m), name);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class MessageElementNestedElementList : MessageElementData {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnDerived;

  internal MessageElementNestedElementList(global::System.IntPtr cPtr, bool cMemoryOwn) : base(RobotRaconteurNETPINVOKE.MessageElementNestedElementList_SWIGSmartPtrUpcast(cPtr), true) {
    swigCMemOwnDerived = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(MessageElementNestedElementList obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  protected override void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnDerived) {
          swigCMemOwnDerived = false;
          RobotRaconteurNETPINVOKE.delete_MessageElementNestedElementList(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
      base.Dispose(disposing);
    }
  }

  public DataTypes Type {
    set {
      RobotRaconteurNETPINVOKE.MessageElementNestedElementList_Type_set(swigCPtr, (int)value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      DataTypes ret = (DataTypes)RobotRaconteurNETPINVOKE.MessageElementNestedElementList_Type_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string TypeName {
    set {
      RobotRaconteurNETPINVOKE.MessageElementNestedElementList_TypeName_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.MessageElementNestedElementList_TypeName_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public vectorptr_messageelement Elements {
    set {
      RobotRaconteurNETPINVOKE.MessageElementNestedElementList_Elements_set(swigCPtr, vectorptr_messageelement.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MessageElementNestedElementList_Elements_get(swigCPtr);
      vectorptr_messageelement ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_messageelement(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public MessageElementNestedElementList(DataTypes type_, string type_name_, vectorptr_messageelement elements_) : this(RobotRaconteurNETPINVOKE.new_MessageElementNestedElementList((int)type_, type_name_, vectorptr_messageelement.getCPtr(elements_)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public override string GetTypeString() {
    string ret = RobotRaconteurNETPINVOKE.MessageElementNestedElementList_GetTypeString(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public override DataTypes GetTypeID() {
    DataTypes ret = (DataTypes)RobotRaconteurNETPINVOKE.MessageElementNestedElementList_GetTypeID(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public partial class MessageElementDataUtil : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal MessageElementDataUtil(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(MessageElementDataUtil obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~MessageElementDataUtil() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_MessageElementDataUtil(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public static RRBaseArray ToRRBaseArray(MessageElementData m) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MessageElementDataUtil_ToRRBaseArray(MessageElementData.getCPtr(m));
    RRBaseArray ret = (cPtr == global::System.IntPtr.Zero) ? null : new RRBaseArray(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static MessageElementNestedElementList ToMessageElementNestedElementList(MessageElementData m) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MessageElementDataUtil_ToMessageElementNestedElementList(MessageElementData.getCPtr(m));
    MessageElementNestedElementList ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElementNestedElementList(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static string RRBaseArrayToString(RRBaseArray rrarray) {
    string ret = RobotRaconteurNETPINVOKE.MessageElementDataUtil_RRBaseArrayToString(RRBaseArray.getCPtr(rrarray));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static void RRBaseArrayToDoubles(RRBaseArray rrarray, double[] array_out, int len) {
    RobotRaconteurNETPINVOKE.MessageElementDataUtil_RRBaseArrayToDoubles(RRBaseArray.getCPtr(rrarray), array_out, len);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static void RRBaseArrayToFloats(RRBaseArray rrarray, float[] array_out, int len) {
    RobotRaconteurNETPINVOKE.MessageElementDataUtil_RRBaseArrayToFloats(RRBaseArray.getCPtr(rrarray), array_out, len);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static void RRBaseArrayToBytes(RRBaseArray rrarray, sbyte[] array_out, int len) {
    RobotRaconteurNETPINVOKE.MessageElementDataUtil_RRBaseArrayToBytes__SWIG_0(RRBaseArray.getCPtr(rrarray), array_out, len);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static void RRBaseArrayToBytes(RRBaseArray rrarray, byte[] array_out, int len) {
    RobotRaconteurNETPINVOKE.MessageElementDataUtil_RRBaseArrayToBytes__SWIG_1(RRBaseArray.getCPtr(rrarray), array_out, len);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static void RRBaseArrayToShorts(RRBaseArray rrarray, short[] array_out, int len) {
    RobotRaconteurNETPINVOKE.MessageElementDataUtil_RRBaseArrayToShorts__SWIG_0(RRBaseArray.getCPtr(rrarray), array_out, len);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static void RRBaseArrayToShorts(RRBaseArray rrarray, ushort[] array_out, int len) {
    RobotRaconteurNETPINVOKE.MessageElementDataUtil_RRBaseArrayToShorts__SWIG_1(RRBaseArray.getCPtr(rrarray), array_out, len);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static void RRBaseArrayToInts(RRBaseArray rrarray, int[] array_out, int len) {
    RobotRaconteurNETPINVOKE.MessageElementDataUtil_RRBaseArrayToInts__SWIG_0(RRBaseArray.getCPtr(rrarray), array_out, len);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static void RRBaseArrayToInts(RRBaseArray rrarray, uint[] array_out, int len) {
    RobotRaconteurNETPINVOKE.MessageElementDataUtil_RRBaseArrayToInts__SWIG_1(RRBaseArray.getCPtr(rrarray), array_out, len);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static void RRBaseArrayToLongs(RRBaseArray rrarray, int[] array_out, int len) {
    RobotRaconteurNETPINVOKE.MessageElementDataUtil_RRBaseArrayToLongs__SWIG_0(RRBaseArray.getCPtr(rrarray), array_out, len);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static void RRBaseArrayToLongs(RRBaseArray rrarray, uint[] array_out, int len) {
    RobotRaconteurNETPINVOKE.MessageElementDataUtil_RRBaseArrayToLongs__SWIG_1(RRBaseArray.getCPtr(rrarray), array_out, len);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static void RRBaseArrayComplexToDoubles(RRBaseArray rrarray, double[] array_out, int len) {
    RobotRaconteurNETPINVOKE.MessageElementDataUtil_RRBaseArrayComplexToDoubles(RRBaseArray.getCPtr(rrarray), array_out, len);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static void RRBaseArrayComplexToFloats(RRBaseArray rrarray, float[] array_out, int len) {
    RobotRaconteurNETPINVOKE.MessageElementDataUtil_RRBaseArrayComplexToFloats(RRBaseArray.getCPtr(rrarray), array_out, len);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static void RRBaseArrayBoolToBytes(RRBaseArray rrarray, byte[] array_out, int len) {
    RobotRaconteurNETPINVOKE.MessageElementDataUtil_RRBaseArrayBoolToBytes__SWIG_0(RRBaseArray.getCPtr(rrarray), array_out, len);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static void RRBaseArrayBoolToBytes(RRBaseArray rrarray, sbyte[] array_out, int len) {
    RobotRaconteurNETPINVOKE.MessageElementDataUtil_RRBaseArrayBoolToBytes__SWIG_1(RRBaseArray.getCPtr(rrarray), array_out, len);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static RRBaseArray stringToRRBaseArray(string str) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MessageElementDataUtil_stringToRRBaseArray(str);
    RRBaseArray ret = (cPtr == global::System.IntPtr.Zero) ? null : new RRBaseArray(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static RRBaseArray DoublesToRRBaseArray(double[] array_in, int len) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MessageElementDataUtil_DoublesToRRBaseArray__SWIG_0(array_in, len);
    RRBaseArray ret = (cPtr == global::System.IntPtr.Zero) ? null : new RRBaseArray(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static RRBaseArray FloatsToRRBaseArray(float[] array_in, int len) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MessageElementDataUtil_FloatsToRRBaseArray__SWIG_0(array_in, len);
    RRBaseArray ret = (cPtr == global::System.IntPtr.Zero) ? null : new RRBaseArray(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static RRBaseArray BytesToRRBaseArray(sbyte[] array_in, int len, DataTypes type) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MessageElementDataUtil_BytesToRRBaseArray__SWIG_0(array_in, len, (int)type);
    RRBaseArray ret = (cPtr == global::System.IntPtr.Zero) ? null : new RRBaseArray(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static RRBaseArray BytesToRRBaseArray(byte[] array_in, int len) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MessageElementDataUtil_BytesToRRBaseArray__SWIG_1(array_in, len);
    RRBaseArray ret = (cPtr == global::System.IntPtr.Zero) ? null : new RRBaseArray(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static RRBaseArray ShortsToRRBaseArray(short[] array_in, int len, DataTypes type) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MessageElementDataUtil_ShortsToRRBaseArray__SWIG_0(array_in, len, (int)type);
    RRBaseArray ret = (cPtr == global::System.IntPtr.Zero) ? null : new RRBaseArray(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static RRBaseArray ShortsToRRBaseArray(ushort[] array_in, int len) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MessageElementDataUtil_ShortsToRRBaseArray__SWIG_1(array_in, len);
    RRBaseArray ret = (cPtr == global::System.IntPtr.Zero) ? null : new RRBaseArray(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static RRBaseArray IntsToRRBaseArray(int[] array_in, int len, DataTypes type) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MessageElementDataUtil_IntsToRRBaseArray__SWIG_0(array_in, len, (int)type);
    RRBaseArray ret = (cPtr == global::System.IntPtr.Zero) ? null : new RRBaseArray(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static RRBaseArray IntsToRRBaseArray(uint[] array_in, int len) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MessageElementDataUtil_IntsToRRBaseArray__SWIG_1(array_in, len);
    RRBaseArray ret = (cPtr == global::System.IntPtr.Zero) ? null : new RRBaseArray(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static RRBaseArray LongsToRRBaseArray(int[] array_in, int len, DataTypes type) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MessageElementDataUtil_LongsToRRBaseArray__SWIG_0(array_in, len, (int)type);
    RRBaseArray ret = (cPtr == global::System.IntPtr.Zero) ? null : new RRBaseArray(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static RRBaseArray LongsToRRBaseArray(uint[] array_in, int len) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MessageElementDataUtil_LongsToRRBaseArray__SWIG_1(array_in, len);
    RRBaseArray ret = (cPtr == global::System.IntPtr.Zero) ? null : new RRBaseArray(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static RRBaseArray DoublesToComplexRRBaseArray(double[] array_in, int len) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MessageElementDataUtil_DoublesToComplexRRBaseArray__SWIG_0(array_in, len);
    RRBaseArray ret = (cPtr == global::System.IntPtr.Zero) ? null : new RRBaseArray(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static RRBaseArray FloatsToComplexRRBaseArray(float[] array_in, int len) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MessageElementDataUtil_FloatsToComplexRRBaseArray__SWIG_0(array_in, len);
    RRBaseArray ret = (cPtr == global::System.IntPtr.Zero) ? null : new RRBaseArray(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static RRBaseArray BytesToBoolRRBaseArray(byte[] array_in, int len) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MessageElementDataUtil_BytesToBoolRRBaseArray__SWIG_0(array_in, len);
    RRBaseArray ret = (cPtr == global::System.IntPtr.Zero) ? null : new RRBaseArray(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static RRBaseArray BytesToBoolRRBaseArray(sbyte[] array_in, int len) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MessageElementDataUtil_BytesToBoolRRBaseArray__SWIG_1(array_in, len);
    RRBaseArray ret = (cPtr == global::System.IntPtr.Zero) ? null : new RRBaseArray(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static void DoublesToRRBaseArray(double[] array_in, int len, RRBaseArray rrarray) {
    RobotRaconteurNETPINVOKE.MessageElementDataUtil_DoublesToRRBaseArray__SWIG_1(array_in, len, RRBaseArray.getCPtr(rrarray));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static void FloatsToRRBaseArray(float[] array_in, int len, RRBaseArray rrarray) {
    RobotRaconteurNETPINVOKE.MessageElementDataUtil_FloatsToRRBaseArray__SWIG_1(array_in, len, RRBaseArray.getCPtr(rrarray));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static void BytesToRRBaseArray(sbyte[] array_in, int len, RRBaseArray rrarray) {
    RobotRaconteurNETPINVOKE.MessageElementDataUtil_BytesToRRBaseArray__SWIG_2(array_in, len, RRBaseArray.getCPtr(rrarray));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static void BytesToRRBaseArray(byte[] array_in, int len, RRBaseArray rrarray) {
    RobotRaconteurNETPINVOKE.MessageElementDataUtil_BytesToRRBaseArray__SWIG_3(array_in, len, RRBaseArray.getCPtr(rrarray));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static void ShortsToRRBaseArray(short[] array_in, int len, RRBaseArray rrarray) {
    RobotRaconteurNETPINVOKE.MessageElementDataUtil_ShortsToRRBaseArray__SWIG_2(array_in, len, RRBaseArray.getCPtr(rrarray));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static void ShortsToRRBaseArray(ushort[] array_in, int len, RRBaseArray rrarray) {
    RobotRaconteurNETPINVOKE.MessageElementDataUtil_ShortsToRRBaseArray__SWIG_3(array_in, len, RRBaseArray.getCPtr(rrarray));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static void IntsToRRBaseArray(int[] array_in, int len, RRBaseArray rrarray) {
    RobotRaconteurNETPINVOKE.MessageElementDataUtil_IntsToRRBaseArray__SWIG_2(array_in, len, RRBaseArray.getCPtr(rrarray));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static void IntsToRRBaseArray(uint[] array_in, int len, RRBaseArray rrarray) {
    RobotRaconteurNETPINVOKE.MessageElementDataUtil_IntsToRRBaseArray__SWIG_3(array_in, len, RRBaseArray.getCPtr(rrarray));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static void LongsToRRBaseArray(int[] array_in, int len, RRBaseArray rrarray) {
    RobotRaconteurNETPINVOKE.MessageElementDataUtil_LongsToRRBaseArray__SWIG_2(array_in, len, RRBaseArray.getCPtr(rrarray));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static void LongsToRRBaseArray(uint[] array_in, int len, RRBaseArray rrarray) {
    RobotRaconteurNETPINVOKE.MessageElementDataUtil_LongsToRRBaseArray__SWIG_3(array_in, len, RRBaseArray.getCPtr(rrarray));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static void DoublesToComplexRRBaseArray(double[] array_in, int len, RRBaseArray rrarray) {
    RobotRaconteurNETPINVOKE.MessageElementDataUtil_DoublesToComplexRRBaseArray__SWIG_1(array_in, len, RRBaseArray.getCPtr(rrarray));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static void FloatsToComplexRRBaseArray(float[] array_in, int len, RRBaseArray rrarray) {
    RobotRaconteurNETPINVOKE.MessageElementDataUtil_FloatsToComplexRRBaseArray__SWIG_1(array_in, len, RRBaseArray.getCPtr(rrarray));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static void BytesToBoolRRBaseArray(sbyte[] array_in, int len, RRBaseArray rrarray) {
    RobotRaconteurNETPINVOKE.MessageElementDataUtil_BytesToBoolRRBaseArray__SWIG_2(array_in, len, RRBaseArray.getCPtr(rrarray));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static void BytesToBoolRRBaseArray(byte[] array_in, int len, RRBaseArray rrarray) {
    RobotRaconteurNETPINVOKE.MessageElementDataUtil_BytesToBoolRRBaseArray__SWIG_3(array_in, len, RRBaseArray.getCPtr(rrarray));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public MessageElementDataUtil() : this(RobotRaconteurNETPINVOKE.new_MessageElementDataUtil(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class HandlerErrorInfo : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal HandlerErrorInfo(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(HandlerErrorInfo obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~HandlerErrorInfo() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_HandlerErrorInfo(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public uint error_code {
    set {
      RobotRaconteurNETPINVOKE.HandlerErrorInfo_error_code_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      uint ret = RobotRaconteurNETPINVOKE.HandlerErrorInfo_error_code_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string errorname {
    set {
      RobotRaconteurNETPINVOKE.HandlerErrorInfo_errorname_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.HandlerErrorInfo_errorname_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string errormessage {
    set {
      RobotRaconteurNETPINVOKE.HandlerErrorInfo_errormessage_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.HandlerErrorInfo_errormessage_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string errorsubname {
    set {
      RobotRaconteurNETPINVOKE.HandlerErrorInfo_errorsubname_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.HandlerErrorInfo_errorsubname_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public MessageElement param_ {
    set {
      RobotRaconteurNETPINVOKE.HandlerErrorInfo_param__set(swigCPtr, MessageElement.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.HandlerErrorInfo_param__get(swigCPtr);
      MessageElement ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElement(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public HandlerErrorInfo() : this(RobotRaconteurNETPINVOKE.new_HandlerErrorInfo(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class AsyncRequestDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal AsyncRequestDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(AsyncRequestDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~AsyncRequestDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_AsyncRequestDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual void handler(MessageElement ret, HandlerErrorInfo error) {
    RobotRaconteurNETPINVOKE.AsyncRequestDirector_handler(swigCPtr, MessageElement.getCPtr(ret), HandlerErrorInfo.getCPtr(error));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public AsyncRequestDirector() : this(RobotRaconteurNETPINVOKE.new_AsyncRequestDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("handler", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateAsyncRequestDirector_0(SwigDirectorMethodhandler);
    RobotRaconteurNETPINVOKE.AsyncRequestDirector_director_connect(swigCPtr, swigDelegate0);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(AsyncRequestDirector));
    return hasDerivedMethod;
  }

  private void SwigDirectorMethodhandler(global::System.IntPtr ret, global::System.IntPtr error) {
    handler((ret == global::System.IntPtr.Zero) ? null : new MessageElement(ret, true), new HandlerErrorInfo(error, false));
  }

  public delegate void SwigDelegateAsyncRequestDirector_0(global::System.IntPtr ret, global::System.IntPtr error);

  private SwigDelegateAsyncRequestDirector_0 swigDelegate0;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(MessageElement), typeof(HandlerErrorInfo) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class AsyncVoidReturnDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal AsyncVoidReturnDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(AsyncVoidReturnDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~AsyncVoidReturnDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_AsyncVoidReturnDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual void handler(HandlerErrorInfo error) {
    RobotRaconteurNETPINVOKE.AsyncVoidReturnDirector_handler(swigCPtr, HandlerErrorInfo.getCPtr(error));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public AsyncVoidReturnDirector() : this(RobotRaconteurNETPINVOKE.new_AsyncVoidReturnDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("handler", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateAsyncVoidReturnDirector_0(SwigDirectorMethodhandler);
    RobotRaconteurNETPINVOKE.AsyncVoidReturnDirector_director_connect(swigCPtr, swigDelegate0);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(AsyncVoidReturnDirector));
    return hasDerivedMethod;
  }

  private void SwigDirectorMethodhandler(global::System.IntPtr error) {
    handler(new HandlerErrorInfo(error, false));
  }

  public delegate void SwigDelegateAsyncVoidReturnDirector_0(global::System.IntPtr error);

  private SwigDelegateAsyncVoidReturnDirector_0 swigDelegate0;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(HandlerErrorInfo) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class AsyncVoidNoErrReturnDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal AsyncVoidNoErrReturnDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(AsyncVoidNoErrReturnDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~AsyncVoidNoErrReturnDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_AsyncVoidNoErrReturnDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual void handler() {
    RobotRaconteurNETPINVOKE.AsyncVoidNoErrReturnDirector_handler(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public AsyncVoidNoErrReturnDirector() : this(RobotRaconteurNETPINVOKE.new_AsyncVoidNoErrReturnDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("handler", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateAsyncVoidNoErrReturnDirector_0(SwigDirectorMethodhandler);
    RobotRaconteurNETPINVOKE.AsyncVoidNoErrReturnDirector_director_connect(swigCPtr, swigDelegate0);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(AsyncVoidNoErrReturnDirector));
    return hasDerivedMethod;
  }

  private void SwigDirectorMethodhandler() {
    handler();
  }

  public delegate void SwigDelegateAsyncVoidNoErrReturnDirector_0();

  private SwigDelegateAsyncVoidNoErrReturnDirector_0 swigDelegate0;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] {  };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class AsyncStringReturnDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal AsyncStringReturnDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(AsyncStringReturnDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~AsyncStringReturnDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_AsyncStringReturnDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual void handler(string ret, HandlerErrorInfo error) {
    RobotRaconteurNETPINVOKE.AsyncStringReturnDirector_handler(swigCPtr, ret, HandlerErrorInfo.getCPtr(error));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public AsyncStringReturnDirector() : this(RobotRaconteurNETPINVOKE.new_AsyncStringReturnDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("handler", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateAsyncStringReturnDirector_0(SwigDirectorMethodhandler);
    RobotRaconteurNETPINVOKE.AsyncStringReturnDirector_director_connect(swigCPtr, swigDelegate0);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(AsyncStringReturnDirector));
    return hasDerivedMethod;
  }

  private void SwigDirectorMethodhandler(string ret, global::System.IntPtr error) {
    handler(ret, new HandlerErrorInfo(error, false));
  }

  public delegate void SwigDelegateAsyncStringReturnDirector_0(string ret, global::System.IntPtr error);

  private SwigDelegateAsyncStringReturnDirector_0 swigDelegate0;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(string), typeof(HandlerErrorInfo) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class AsyncUInt32ReturnDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal AsyncUInt32ReturnDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(AsyncUInt32ReturnDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~AsyncUInt32ReturnDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_AsyncUInt32ReturnDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual void handler(uint ret, HandlerErrorInfo error) {
    RobotRaconteurNETPINVOKE.AsyncUInt32ReturnDirector_handler(swigCPtr, ret, HandlerErrorInfo.getCPtr(error));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public AsyncUInt32ReturnDirector() : this(RobotRaconteurNETPINVOKE.new_AsyncUInt32ReturnDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("handler", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateAsyncUInt32ReturnDirector_0(SwigDirectorMethodhandler);
    RobotRaconteurNETPINVOKE.AsyncUInt32ReturnDirector_director_connect(swigCPtr, swigDelegate0);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(AsyncUInt32ReturnDirector));
    return hasDerivedMethod;
  }

  private void SwigDirectorMethodhandler(uint ret, global::System.IntPtr error) {
    handler(ret, new HandlerErrorInfo(error, false));
  }

  public delegate void SwigDelegateAsyncUInt32ReturnDirector_0(uint ret, global::System.IntPtr error);

  private SwigDelegateAsyncUInt32ReturnDirector_0 swigDelegate0;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(uint), typeof(HandlerErrorInfo) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

internal class rr_memcpy : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal rr_memcpy(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(rr_memcpy obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~rr_memcpy() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          throw new global::System.MethodAccessException("C++ destructor does not have public access");
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public static void memcpy(IntPtr destination, IntPtr source, int num) {
    RobotRaconteurNETPINVOKE.rr_memcpy_memcpy(new HandleRef(null, destination), new HandleRef(null, source), num);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class Transport : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal Transport(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(Transport obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~Transport() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_Transport(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual string GetUrlSchemeString() {
    string ret = RobotRaconteurNETPINVOKE.Transport_GetUrlSchemeString(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static string GetCurrentTransportConnectionURL() {
    string ret = RobotRaconteurNETPINVOKE.Transport_GetCurrentTransportConnectionURL();
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual vectorstring GetServerListenUrls() {
    vectorstring ret = new vectorstring(RobotRaconteurNETPINVOKE.Transport_GetServerListenUrls(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

public enum IPNodeDiscoveryFlags {
  IPNodeDiscoveryFlags_NODE_LOCAL = 0x1,
  IPNodeDiscoveryFlags_LINK_LOCAL = 0x2,
  IPNodeDiscoveryFlags_SITE_LOCAL = 0x4,
  IPNodeDiscoveryFlags_IPV4_BROADCAST = 0x8
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class TcpTransport : Transport {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnDerived;

  internal TcpTransport(global::System.IntPtr cPtr, bool cMemoryOwn) : base(RobotRaconteurNETPINVOKE.TcpTransport_SWIGSmartPtrUpcast(cPtr), true) {
    swigCMemOwnDerived = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(TcpTransport obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  protected override void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnDerived) {
          swigCMemOwnDerived = false;
          RobotRaconteurNETPINVOKE.delete_TcpTransport(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
      base.Dispose(disposing);
    }
  }

public void EnableNodeDiscoveryListening(IPNodeDiscoveryFlags flags)
{
	EnableNodeDiscoveryListening((uint)flags);
}

public void EnableNodeAnnounce(IPNodeDiscoveryFlags flags)
{
	EnableNodeAnnounce((uint)flags);
}

public int DefaultReceiveTimeout
{
	get
	{
		return _GetDefaultReceiveTimeout();
	}
	set
	{
		_SetDefaultReceiveTimeout(value);
	}

}

public int DefaultConnectTimeout
{
	get
	{
		return _GetDefaultConnectTimeout();
	}
	set
	{
		_SetDefaultConnectTimeout(value);
	}

}

public int DefaultHeartbeatPeriod
{
	get
	{
		return _GetDefaultHeartbeatPeriod();
	}
	set
	{
		_SetDefaultHeartbeatPeriod(value);
	}

}

public int MaxMessageSize
{
	get
	{
		return _GetMaxMessageSize();
	}
	set
	{
		_SetMaxMessageSize(value);
	}

}

public int MaxConnectionCount
{
	get
	{
		return _GetMaxConnectionCount();
	}
	set
	{
		_SetMaxConnectionCount(value);
	}

}

public bool RequireTls
{
	get
	{
		return _GetRequireTls();
	}
	set
	{
		_SetRequireTls(value);
	}
}

public bool IsTlsNodeCertificateLoaded
{
	get
	{
		return _IsTlsNodeCertificateLoaded();
	}

}




public bool IsPortSharerRunning
{
	get
	{
		return _IsPortSharerRunning();
	}

}

public bool IsTransportConnectionSecure(object obj)
{
	if (obj==null) throw new NullReferenceException();
	RobotRaconteur.ServiceStub s=obj as RobotRaconteur.ServiceStub;
	if (s==null) throw new InvalidOperationException("Object is not a Robot Raconteur reference");
	return _IsTransportConnectionSecure(s.rr_innerstub);

}

public bool IsSecurePeerIdentityVerified(object obj)
{
	if (obj==null) throw new NullReferenceException();
	RobotRaconteur.ServiceStub s=obj as RobotRaconteur.ServiceStub;
	if (s==null) throw new InvalidOperationException("Object is not a Robot Raconteur reference");
	return _IsSecurePeerIdentityVerified(s.rr_innerstub);

}

public string GetSecurePeerIdentity(object obj)
{
	if (obj==null) throw new NullReferenceException();
	RobotRaconteur.ServiceStub s=obj as RobotRaconteur.ServiceStub;
	if (s==null) throw new InvalidOperationException("Object is not a Robot Raconteur reference");
	return _GetSecurePeerIdentity(s.rr_innerstub);

}

public bool AcceptWebSockets
{
	get
	{
		return _GetAcceptWebSockets();
	}
	set
	{
		_SetAcceptWebSockets(value);
	}

}

public bool DisableMessage4
{
	get
	{
		return _GetDisableMessage4();
	}
	set
	{
		_SetDisableMessage4(value);
	}
}

public bool DisableStringTable
{
	get
	{
		return _GetDisableStringTable();
	}
	set
	{
		_SetDisableStringTable(value);
	}
}

public bool DisableAsyncMessageIO
{
	get
	{
		return _GetDisableAsyncMessageIO();
	}
	set
	{
		_SetDisableAsyncMessageIO(value);
	}
}

public int NodeAnnouncePeriod
{
	get
	{
		return _GetNodeAnnouncePeriod();
	}
	set
	{
		_SetNodeAnnouncePeriod(value);
	}

}


  public TcpTransport() : this(RobotRaconteurNETPINVOKE.new_TcpTransport__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public TcpTransport(RobotRaconteurNode node) : this(RobotRaconteurNETPINVOKE.new_TcpTransport__SWIG_1(RobotRaconteurNode.getCPtr(node)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private int _GetDefaultReceiveTimeout() {
    int ret = RobotRaconteurNETPINVOKE.TcpTransport__GetDefaultReceiveTimeout(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _SetDefaultReceiveTimeout(int milliseconds) {
    RobotRaconteurNETPINVOKE.TcpTransport__SetDefaultReceiveTimeout(swigCPtr, milliseconds);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private int _GetDefaultConnectTimeout() {
    int ret = RobotRaconteurNETPINVOKE.TcpTransport__GetDefaultConnectTimeout(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _SetDefaultConnectTimeout(int milliseconds) {
    RobotRaconteurNETPINVOKE.TcpTransport__SetDefaultConnectTimeout(swigCPtr, milliseconds);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private int _GetDefaultHeartbeatPeriod() {
    int ret = RobotRaconteurNETPINVOKE.TcpTransport__GetDefaultHeartbeatPeriod(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _SetDefaultHeartbeatPeriod(int milliseconds) {
    RobotRaconteurNETPINVOKE.TcpTransport__SetDefaultHeartbeatPeriod(swigCPtr, milliseconds);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public override string GetUrlSchemeString() {
    string ret = RobotRaconteurNETPINVOKE.TcpTransport_GetUrlSchemeString(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public override vectorstring GetServerListenUrls() {
    vectorstring ret = new vectorstring(RobotRaconteurNETPINVOKE.TcpTransport_GetServerListenUrls(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual int GetListenPort() {
    int ret = RobotRaconteurNETPINVOKE.TcpTransport_GetListenPort(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual void StartServer(int porte, bool localhost_only) {
    RobotRaconteurNETPINVOKE.TcpTransport_StartServer__SWIG_0(swigCPtr, porte, localhost_only);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void StartServer(int porte) {
    RobotRaconteurNETPINVOKE.TcpTransport_StartServer__SWIG_1(swigCPtr, porte);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Close() {
    RobotRaconteurNETPINVOKE.TcpTransport_Close(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void EnableNodeDiscoveryListening(uint flags) {
    RobotRaconteurNETPINVOKE.TcpTransport_EnableNodeDiscoveryListening__SWIG_0(swigCPtr, flags);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void EnableNodeDiscoveryListening() {
    RobotRaconteurNETPINVOKE.TcpTransport_EnableNodeDiscoveryListening__SWIG_1(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void DisableNodeDiscoveryListening() {
    RobotRaconteurNETPINVOKE.TcpTransport_DisableNodeDiscoveryListening(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void EnableNodeAnnounce(uint flags) {
    RobotRaconteurNETPINVOKE.TcpTransport_EnableNodeAnnounce__SWIG_0(swigCPtr, flags);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void EnableNodeAnnounce() {
    RobotRaconteurNETPINVOKE.TcpTransport_EnableNodeAnnounce__SWIG_1(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void DisableNodeAnnounce() {
    RobotRaconteurNETPINVOKE.TcpTransport_DisableNodeAnnounce(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private int _GetNodeAnnouncePeriod() {
    int ret = RobotRaconteurNETPINVOKE.TcpTransport__GetNodeAnnouncePeriod(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _SetNodeAnnouncePeriod(int millis) {
    RobotRaconteurNETPINVOKE.TcpTransport__SetNodeAnnouncePeriod(swigCPtr, millis);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private int _GetMaxMessageSize() {
    int ret = RobotRaconteurNETPINVOKE.TcpTransport__GetMaxMessageSize(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _SetMaxMessageSize(int size) {
    RobotRaconteurNETPINVOKE.TcpTransport__SetMaxMessageSize(swigCPtr, size);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private int _GetMaxConnectionCount() {
    int ret = RobotRaconteurNETPINVOKE.TcpTransport__GetMaxConnectionCount(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _SetMaxConnectionCount(int count) {
    RobotRaconteurNETPINVOKE.TcpTransport__SetMaxConnectionCount(swigCPtr, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private bool _GetRequireTls() {
    bool ret = RobotRaconteurNETPINVOKE.TcpTransport__GetRequireTls(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _SetRequireTls(bool require_tls) {
    RobotRaconteurNETPINVOKE.TcpTransport__SetRequireTls(swigCPtr, require_tls);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void LoadTlsNodeCertificate() {
    RobotRaconteurNETPINVOKE.TcpTransport_LoadTlsNodeCertificate(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private bool _IsTlsNodeCertificateLoaded() {
    bool ret = RobotRaconteurNETPINVOKE.TcpTransport__IsTlsNodeCertificateLoaded(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual bool IsTransportConnectionSecure(uint endpoint) {
    bool ret = RobotRaconteurNETPINVOKE.TcpTransport_IsTransportConnectionSecure(swigCPtr, endpoint);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private bool _IsTransportConnectionSecure(RRObject obj) {
    bool ret = RobotRaconteurNETPINVOKE.TcpTransport__IsTransportConnectionSecure(swigCPtr, RRObject.getCPtr(obj));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual bool IsSecurePeerIdentityVerified(uint endpoint) {
    bool ret = RobotRaconteurNETPINVOKE.TcpTransport_IsSecurePeerIdentityVerified(swigCPtr, endpoint);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private bool _IsSecurePeerIdentityVerified(RRObject obj) {
    bool ret = RobotRaconteurNETPINVOKE.TcpTransport__IsSecurePeerIdentityVerified(swigCPtr, RRObject.getCPtr(obj));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual string GetSecurePeerIdentity(uint endpoint) {
    string ret = RobotRaconteurNETPINVOKE.TcpTransport_GetSecurePeerIdentity(swigCPtr, endpoint);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private string _GetSecurePeerIdentity(RRObject obj) {
    string ret = RobotRaconteurNETPINVOKE.TcpTransport__GetSecurePeerIdentity(swigCPtr, RRObject.getCPtr(obj));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual void StartServerUsingPortSharer() {
    RobotRaconteurNETPINVOKE.TcpTransport_StartServerUsingPortSharer(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private bool _IsPortSharerRunning() {
    bool ret = RobotRaconteurNETPINVOKE.TcpTransport__IsPortSharerRunning(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private bool _GetAcceptWebSockets() {
    bool ret = RobotRaconteurNETPINVOKE.TcpTransport__GetAcceptWebSockets(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _SetAcceptWebSockets(bool value) {
    RobotRaconteurNETPINVOKE.TcpTransport__SetAcceptWebSockets(swigCPtr, value);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual vectorstring GetWebSocketAllowedOrigins() {
    vectorstring ret = new vectorstring(RobotRaconteurNETPINVOKE.TcpTransport_GetWebSocketAllowedOrigins(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual void AddWebSocketAllowedOrigin(string origin) {
    RobotRaconteurNETPINVOKE.TcpTransport_AddWebSocketAllowedOrigin(swigCPtr, origin);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void RemoveWebSocketAllowedOrigin(string origin) {
    RobotRaconteurNETPINVOKE.TcpTransport_RemoveWebSocketAllowedOrigin(swigCPtr, origin);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private bool _GetDisableMessage4() {
    bool ret = RobotRaconteurNETPINVOKE.TcpTransport__GetDisableMessage4(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _SetDisableMessage4(bool d) {
    RobotRaconteurNETPINVOKE.TcpTransport__SetDisableMessage4(swigCPtr, d);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private bool _GetDisableStringTable() {
    bool ret = RobotRaconteurNETPINVOKE.TcpTransport__GetDisableStringTable(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _SetDisableStringTable(bool d) {
    RobotRaconteurNETPINVOKE.TcpTransport__SetDisableStringTable(swigCPtr, d);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private bool _GetDisableAsyncMessageIO() {
    bool ret = RobotRaconteurNETPINVOKE.TcpTransport__GetDisableAsyncMessageIO(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _SetDisableAsyncMessageIO(bool d) {
    RobotRaconteurNETPINVOKE.TcpTransport__SetDisableAsyncMessageIO(swigCPtr, d);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static vectorstring GetLocalAdapterIPAddresses() {
    vectorstring ret = new vectorstring(RobotRaconteurNETPINVOKE.TcpTransport_GetLocalAdapterIPAddresses(), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class LocalTransport : Transport {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnDerived;

  internal LocalTransport(global::System.IntPtr cPtr, bool cMemoryOwn) : base(RobotRaconteurNETPINVOKE.LocalTransport_SWIGSmartPtrUpcast(cPtr), true) {
    swigCMemOwnDerived = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(LocalTransport obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  protected override void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnDerived) {
          swigCMemOwnDerived = false;
          RobotRaconteurNETPINVOKE.delete_LocalTransport(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
      base.Dispose(disposing);
    }
  }


public int MaxMessageSize
{
	get
	{
		return _GetMaxMessageSize();
	}
	set
	{
		_SetMaxMessageSize(value);
	}

}

public bool DisableMessage4
{
	get
	{
		return _GetDisableMessage4();
	}
	set
	{
		_SetDisableMessage4(value);
	}
}

public bool DisableStringTable
{
	get
	{
		return _GetDisableStringTable();
	}
	set
	{
		_SetDisableStringTable(value);
	}
}

public bool DisableAsyncMessageIO
{
	get
	{
		return _GetDisableAsyncMessageIO();
	}
	set
	{
		_SetDisableAsyncMessageIO(value);
	}
}


  public LocalTransport() : this(RobotRaconteurNETPINVOKE.new_LocalTransport__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public LocalTransport(RobotRaconteurNode node) : this(RobotRaconteurNETPINVOKE.new_LocalTransport__SWIG_1(RobotRaconteurNode.getCPtr(node)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static bool IsLocalTransportSupported() {
    bool ret = RobotRaconteurNETPINVOKE.LocalTransport_IsLocalTransportSupported();
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public override string GetUrlSchemeString() {
    string ret = RobotRaconteurNETPINVOKE.LocalTransport_GetUrlSchemeString(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public override vectorstring GetServerListenUrls() {
    vectorstring ret = new vectorstring(RobotRaconteurNETPINVOKE.LocalTransport_GetServerListenUrls(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual void StartClientAsNodeName(string name) {
    RobotRaconteurNETPINVOKE.LocalTransport_StartClientAsNodeName(swigCPtr, name);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void StartServerAsNodeName(string name, bool public_) {
    RobotRaconteurNETPINVOKE.LocalTransport_StartServerAsNodeName__SWIG_0(swigCPtr, name, public_);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void StartServerAsNodeName(string name) {
    RobotRaconteurNETPINVOKE.LocalTransport_StartServerAsNodeName__SWIG_1(swigCPtr, name);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void StartServerAsNodeID(NodeID nodeid, bool public_) {
    RobotRaconteurNETPINVOKE.LocalTransport_StartServerAsNodeID__SWIG_0(swigCPtr, NodeID.getCPtr(nodeid), public_);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void StartServerAsNodeID(NodeID nodeid) {
    RobotRaconteurNETPINVOKE.LocalTransport_StartServerAsNodeID__SWIG_1(swigCPtr, NodeID.getCPtr(nodeid));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Close() {
    RobotRaconteurNETPINVOKE.LocalTransport_Close(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private int _GetMaxMessageSize() {
    int ret = RobotRaconteurNETPINVOKE.LocalTransport__GetMaxMessageSize(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _SetMaxMessageSize(int size) {
    RobotRaconteurNETPINVOKE.LocalTransport__SetMaxMessageSize(swigCPtr, size);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private bool _GetDisableMessage4() {
    bool ret = RobotRaconteurNETPINVOKE.LocalTransport__GetDisableMessage4(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _SetDisableMessage4(bool d) {
    RobotRaconteurNETPINVOKE.LocalTransport__SetDisableMessage4(swigCPtr, d);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private bool _GetDisableStringTable() {
    bool ret = RobotRaconteurNETPINVOKE.LocalTransport__GetDisableStringTable(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _SetDisableStringTable(bool d) {
    RobotRaconteurNETPINVOKE.LocalTransport__SetDisableStringTable(swigCPtr, d);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private bool _GetDisableAsyncMessageIO() {
    bool ret = RobotRaconteurNETPINVOKE.LocalTransport__GetDisableAsyncMessageIO(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _SetDisableAsyncMessageIO(bool d) {
    RobotRaconteurNETPINVOKE.LocalTransport__SetDisableAsyncMessageIO(swigCPtr, d);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void EnableNodeDiscoveryListening() {
    RobotRaconteurNETPINVOKE.LocalTransport_EnableNodeDiscoveryListening(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void DisableNodeDiscoveryListening() {
    RobotRaconteurNETPINVOKE.LocalTransport_DisableNodeDiscoveryListening(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class HardwareTransport : Transport {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnDerived;

  internal HardwareTransport(global::System.IntPtr cPtr, bool cMemoryOwn) : base(RobotRaconteurNETPINVOKE.HardwareTransport_SWIGSmartPtrUpcast(cPtr), true) {
    swigCMemOwnDerived = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(HardwareTransport obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  protected override void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnDerived) {
          swigCMemOwnDerived = false;
          RobotRaconteurNETPINVOKE.delete_HardwareTransport(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
      base.Dispose(disposing);
    }
  }


public int MaxMessageSize
{
	get
	{
		return _GetMaxMessageSize();
	}
	set
	{
		_SetMaxMessageSize(value);
	}

}

public bool DisableMessage4
{
	get
	{
		return _GetDisableMessage4();
	}
	set
	{
		_SetDisableMessage4(value);
	}
}

public bool DisableStringTable
{
	get
	{
		return _GetDisableStringTable();
	}
	set
	{
		_SetDisableStringTable(value);
	}
}

public bool DisableAsyncMessageIO
{
	get
	{
		return _GetDisableAsyncMessageIO();
	}
	set
	{
		_SetDisableAsyncMessageIO(value);
	}
}


  public HardwareTransport() : this(RobotRaconteurNETPINVOKE.new_HardwareTransport__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public HardwareTransport(RobotRaconteurNode node) : this(RobotRaconteurNETPINVOKE.new_HardwareTransport__SWIG_1(RobotRaconteurNode.getCPtr(node)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public override string GetUrlSchemeString() {
    string ret = RobotRaconteurNETPINVOKE.HardwareTransport_GetUrlSchemeString(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public override vectorstring GetServerListenUrls() {
    vectorstring ret = new vectorstring(RobotRaconteurNETPINVOKE.HardwareTransport_GetServerListenUrls(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Close() {
    RobotRaconteurNETPINVOKE.HardwareTransport_Close(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private int _GetMaxMessageSize() {
    int ret = RobotRaconteurNETPINVOKE.HardwareTransport__GetMaxMessageSize(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _SetMaxMessageSize(int size) {
    RobotRaconteurNETPINVOKE.HardwareTransport__SetMaxMessageSize(swigCPtr, size);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private bool _GetDisableMessage4() {
    bool ret = RobotRaconteurNETPINVOKE.HardwareTransport__GetDisableMessage4(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _SetDisableMessage4(bool d) {
    RobotRaconteurNETPINVOKE.HardwareTransport__SetDisableMessage4(swigCPtr, d);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private bool _GetDisableStringTable() {
    bool ret = RobotRaconteurNETPINVOKE.HardwareTransport__GetDisableStringTable(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _SetDisableStringTable(bool d) {
    RobotRaconteurNETPINVOKE.HardwareTransport__SetDisableStringTable(swigCPtr, d);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private bool _GetDisableAsyncMessageIO() {
    bool ret = RobotRaconteurNETPINVOKE.HardwareTransport__GetDisableAsyncMessageIO(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _SetDisableAsyncMessageIO(bool d) {
    RobotRaconteurNETPINVOKE.HardwareTransport__SetDisableAsyncMessageIO(swigCPtr, d);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class IntraTransport : Transport {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnDerived;

  internal IntraTransport(global::System.IntPtr cPtr, bool cMemoryOwn) : base(RobotRaconteurNETPINVOKE.IntraTransport_SWIGSmartPtrUpcast(cPtr), true) {
    swigCMemOwnDerived = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(IntraTransport obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  protected override void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnDerived) {
          swigCMemOwnDerived = false;
          RobotRaconteurNETPINVOKE.delete_IntraTransport(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
      base.Dispose(disposing);
    }
  }

  public IntraTransport() : this(RobotRaconteurNETPINVOKE.new_IntraTransport__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public IntraTransport(RobotRaconteurNode node) : this(RobotRaconteurNETPINVOKE.new_IntraTransport__SWIG_1(RobotRaconteurNode.getCPtr(node)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public override string GetUrlSchemeString() {
    string ret = RobotRaconteurNETPINVOKE.IntraTransport_GetUrlSchemeString(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public override vectorstring GetServerListenUrls() {
    vectorstring ret = new vectorstring(RobotRaconteurNETPINVOKE.IntraTransport_GetServerListenUrls(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Close() {
    RobotRaconteurNETPINVOKE.IntraTransport_Close(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void StartClient() {
    RobotRaconteurNETPINVOKE.IntraTransport_StartClient(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void StartServer() {
    RobotRaconteurNETPINVOKE.IntraTransport_StartServer(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

internal class WallTimer_initstruct : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WallTimer_initstruct(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WallTimer_initstruct obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WallTimer_initstruct() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WallTimer_initstruct(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public AsyncTimerEventReturnDirector handler {
    set {
      RobotRaconteurNETPINVOKE.WallTimer_initstruct_handler_set(swigCPtr, AsyncTimerEventReturnDirector.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WallTimer_initstruct_handler_get(swigCPtr);
      AsyncTimerEventReturnDirector ret = (cPtr == global::System.IntPtr.Zero) ? null : new AsyncTimerEventReturnDirector(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public int id {
    set {
      RobotRaconteurNETPINVOKE.WallTimer_initstruct_id_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      int ret = RobotRaconteurNETPINVOKE.WallTimer_initstruct_id_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public WallTimer_initstruct() : this(RobotRaconteurNETPINVOKE.new_WallTimer_initstruct(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class TimerEvent : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal TimerEvent(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(TimerEvent obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~TimerEvent() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_TimerEvent(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public bool stopped {
    get {
      bool ret = RobotRaconteurNETPINVOKE.TimerEvent_stopped_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public DateTime last_expected {
	get {
    long date_ticks = RobotRaconteurNETPINVOKE.TimerEvent_last_expected_get(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return new DateTime(date_ticks + (new DateTime(1970,1,1)).Ticks);
	}

  }

  public DateTime last_real {
	get {
    long date_ticks = RobotRaconteurNETPINVOKE.TimerEvent_last_real_get(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return new DateTime(date_ticks + (new DateTime(1970,1,1)).Ticks);
	}

  }

  public DateTime current_expected {
	get {
    long date_ticks = RobotRaconteurNETPINVOKE.TimerEvent_current_expected_get(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return new DateTime(date_ticks + (new DateTime(1970,1,1)).Ticks);
	}

  }

  public DateTime current_real {
	get {
    long date_ticks = RobotRaconteurNETPINVOKE.TimerEvent_current_real_get(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return new DateTime(date_ticks + (new DateTime(1970,1,1)).Ticks);
	}

  }

  public TimerEvent() : this(RobotRaconteurNETPINVOKE.new_TimerEvent(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class AsyncTimerEventReturnDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal AsyncTimerEventReturnDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(AsyncTimerEventReturnDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~AsyncTimerEventReturnDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_AsyncTimerEventReturnDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual void handler(TimerEvent ret, HandlerErrorInfo error) {
    RobotRaconteurNETPINVOKE.AsyncTimerEventReturnDirector_handler(swigCPtr, TimerEvent.getCPtr(ret), HandlerErrorInfo.getCPtr(error));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public AsyncTimerEventReturnDirector() : this(RobotRaconteurNETPINVOKE.new_AsyncTimerEventReturnDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("handler", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateAsyncTimerEventReturnDirector_0(SwigDirectorMethodhandler);
    RobotRaconteurNETPINVOKE.AsyncTimerEventReturnDirector_director_connect(swigCPtr, swigDelegate0);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(AsyncTimerEventReturnDirector));
    return hasDerivedMethod;
  }

  private void SwigDirectorMethodhandler(global::System.IntPtr ret, global::System.IntPtr error) {
    handler(new TimerEvent(ret, false), new HandlerErrorInfo(error, false));
  }

  public delegate void SwigDelegateAsyncTimerEventReturnDirector_0(global::System.IntPtr ret, global::System.IntPtr error);

  private SwigDelegateAsyncTimerEventReturnDirector_0 swigDelegate0;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(TimerEvent), typeof(HandlerErrorInfo) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class Timer : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal Timer(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(Timer obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~Timer() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_Timer(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual void Start() {
    RobotRaconteurNETPINVOKE.Timer_Start(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void Stop() {
    RobotRaconteurNETPINVOKE.Timer_Stop(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void TryStop() {
    RobotRaconteurNETPINVOKE.Timer_TryStop(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual int GetPeriod() {
    int t= RobotRaconteurNETPINVOKE.Timer_GetPeriod(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return t;
}

  public virtual void SetPeriod(int period) {
    RobotRaconteurNETPINVOKE.Timer_SetPeriod(swigCPtr, period);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual bool IsRunning() {
    bool ret = RobotRaconteurNETPINVOKE.Timer_IsRunning(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public partial class WallTimer : Timer {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnDerived;

  internal WallTimer(global::System.IntPtr cPtr, bool cMemoryOwn) : base(RobotRaconteurNETPINVOKE.WallTimer_SWIGSmartPtrUpcast(cPtr), true) {
    swigCMemOwnDerived = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WallTimer obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  protected override void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnDerived) {
          swigCMemOwnDerived = false;
          RobotRaconteurNETPINVOKE.delete_WallTimer(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
      base.Dispose(disposing);
    }
  }

  public override void Start() {
    RobotRaconteurNETPINVOKE.WallTimer_Start(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public override void Stop() {
    RobotRaconteurNETPINVOKE.WallTimer_Stop(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public override void TryStop() {
    RobotRaconteurNETPINVOKE.WallTimer_TryStop(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public override int GetPeriod() {
    int t= RobotRaconteurNETPINVOKE.WallTimer_GetPeriod(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return t;
}

  public override void SetPeriod(int period) {
    RobotRaconteurNETPINVOKE.WallTimer_SetPeriod(swigCPtr, period);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public override bool IsRunning() {
    bool ret = RobotRaconteurNETPINVOKE.WallTimer_IsRunning(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  internal WallTimer(int period, bool oneshot, RobotRaconteurNode node, WallTimer_initstruct init) : this(RobotRaconteurNETPINVOKE.new_WallTimer(period, oneshot, RobotRaconteurNode.getCPtr(node), WallTimer_initstruct.getCPtr(init)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class Rate : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal Rate(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(Rate obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~Rate() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_Rate(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual void Sleep() {
    RobotRaconteurNETPINVOKE.Rate_Sleep(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WallRate : Rate {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnDerived;

  internal WallRate(global::System.IntPtr cPtr, bool cMemoryOwn) : base(RobotRaconteurNETPINVOKE.WallRate_SWIGSmartPtrUpcast(cPtr), true) {
    swigCMemOwnDerived = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WallRate obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  protected override void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnDerived) {
          swigCMemOwnDerived = false;
          RobotRaconteurNETPINVOKE.delete_WallRate(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
      base.Dispose(disposing);
    }
  }

  public WallRate(double frequency, RobotRaconteurNode node) : this(RobotRaconteurNETPINVOKE.new_WallRate__SWIG_0(frequency, RobotRaconteurNode.getCPtr(node)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public WallRate(double frequency) : this(RobotRaconteurNETPINVOKE.new_WallRate__SWIG_1(frequency), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public override void Sleep() {
    RobotRaconteurNETPINVOKE.WallRate_Sleep(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class AutoResetEvent : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal AutoResetEvent(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(AutoResetEvent obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~AutoResetEvent() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_AutoResetEvent(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public AutoResetEvent() : this(RobotRaconteurNETPINVOKE.new_AutoResetEvent(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void Set() {
    RobotRaconteurNETPINVOKE.AutoResetEvent_Set(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void Reset() {
    RobotRaconteurNETPINVOKE.AutoResetEvent_Reset(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void WaitOne() {
    RobotRaconteurNETPINVOKE.AutoResetEvent_WaitOne__SWIG_0(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual bool WaitOne(int timeout) {
    bool ret = RobotRaconteurNETPINVOKE.AutoResetEvent_WaitOne__SWIG_1(swigCPtr, timeout);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public partial class TimeSpec : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal TimeSpec(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(TimeSpec obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~TimeSpec() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_TimeSpec(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public int seconds {
    set {
      RobotRaconteurNETPINVOKE.TimeSpec_seconds_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      int ret = RobotRaconteurNETPINVOKE.TimeSpec_seconds_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public int nanoseconds {
    set {
      RobotRaconteurNETPINVOKE.TimeSpec_nanoseconds_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      int ret = RobotRaconteurNETPINVOKE.TimeSpec_nanoseconds_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public TimeSpec() : this(RobotRaconteurNETPINVOKE.new_TimeSpec__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public TimeSpec(int seconds, int nanoseconds) : this(RobotRaconteurNETPINVOKE.new_TimeSpec__SWIG_1(seconds, nanoseconds), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual bool eq(TimeSpec t2) {
    bool ret = RobotRaconteurNETPINVOKE.TimeSpec_eq(swigCPtr, TimeSpec.getCPtr(t2));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool ne(TimeSpec t2) {
    bool ret = RobotRaconteurNETPINVOKE.TimeSpec_ne(swigCPtr, TimeSpec.getCPtr(t2));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public TimeSpec sub(TimeSpec t2) {
    TimeSpec ret = new TimeSpec(RobotRaconteurNETPINVOKE.TimeSpec_sub(swigCPtr, TimeSpec.getCPtr(t2)), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public TimeSpec add(TimeSpec t2) {
    TimeSpec ret = new TimeSpec(RobotRaconteurNETPINVOKE.TimeSpec_add(swigCPtr, TimeSpec.getCPtr(t2)), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool gt(TimeSpec t2) {
    bool ret = RobotRaconteurNETPINVOKE.TimeSpec_gt(swigCPtr, TimeSpec.getCPtr(t2));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool ge(TimeSpec t2) {
    bool ret = RobotRaconteurNETPINVOKE.TimeSpec_ge(swigCPtr, TimeSpec.getCPtr(t2));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool lt(TimeSpec t2) {
    bool ret = RobotRaconteurNETPINVOKE.TimeSpec_lt(swigCPtr, TimeSpec.getCPtr(t2));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool le(TimeSpec t2) {
    bool ret = RobotRaconteurNETPINVOKE.TimeSpec_le(swigCPtr, TimeSpec.getCPtr(t2));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void cleanup_nanosecs() {
    RobotRaconteurNETPINVOKE.TimeSpec_cleanup_nanosecs(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedService_typed_packet : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedService_typed_packet(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedService_typed_packet obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedService_typed_packet() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedService_typed_packet(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public MessageElement packet {
    set {
      RobotRaconteurNETPINVOKE.WrappedService_typed_packet_packet_set(swigCPtr, MessageElement.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedService_typed_packet_packet_get(swigCPtr);
      MessageElement ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElement(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public TypeDefinition type {
    set {
      RobotRaconteurNETPINVOKE.WrappedService_typed_packet_type_set(swigCPtr, TypeDefinition.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedService_typed_packet_type_get(swigCPtr);
      TypeDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new TypeDefinition(cPtr, true);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public WrappedServiceStub stub {
    set {
      RobotRaconteurNETPINVOKE.WrappedService_typed_packet_stub_set(swigCPtr, WrappedServiceStub.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedService_typed_packet_stub_get(swigCPtr);
      WrappedServiceStub ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceStub(cPtr, true);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public uint client {
    set {
      RobotRaconteurNETPINVOKE.WrappedService_typed_packet_client_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      uint ret = RobotRaconteurNETPINVOKE.WrappedService_typed_packet_client_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public WrappedService_typed_packet() : this(RobotRaconteurNETPINVOKE.new_WrappedService_typed_packet(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedPipeEndpointDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedPipeEndpointDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedPipeEndpointDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedPipeEndpointDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedPipeEndpointDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual void PipeEndpointClosedCallback() {
    RobotRaconteurNETPINVOKE.WrappedPipeEndpointDirector_PipeEndpointClosedCallback(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void PacketReceivedEvent() {
    RobotRaconteurNETPINVOKE.WrappedPipeEndpointDirector_PacketReceivedEvent(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void PacketAckReceivedEvent(uint packetnum) {
    RobotRaconteurNETPINVOKE.WrappedPipeEndpointDirector_PacketAckReceivedEvent(swigCPtr, packetnum);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public WrappedPipeEndpointDirector() : this(RobotRaconteurNETPINVOKE.new_WrappedPipeEndpointDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("PipeEndpointClosedCallback", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateWrappedPipeEndpointDirector_0(SwigDirectorMethodPipeEndpointClosedCallback);
    if (SwigDerivedClassHasMethod("PacketReceivedEvent", swigMethodTypes1))
      swigDelegate1 = new SwigDelegateWrappedPipeEndpointDirector_1(SwigDirectorMethodPacketReceivedEvent);
    if (SwigDerivedClassHasMethod("PacketAckReceivedEvent", swigMethodTypes2))
      swigDelegate2 = new SwigDelegateWrappedPipeEndpointDirector_2(SwigDirectorMethodPacketAckReceivedEvent);
    RobotRaconteurNETPINVOKE.WrappedPipeEndpointDirector_director_connect(swigCPtr, swigDelegate0, swigDelegate1, swigDelegate2);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(WrappedPipeEndpointDirector));
    return hasDerivedMethod;
  }

  private void SwigDirectorMethodPipeEndpointClosedCallback() {
    PipeEndpointClosedCallback();
  }

  private void SwigDirectorMethodPacketReceivedEvent() {
    PacketReceivedEvent();
  }

  private void SwigDirectorMethodPacketAckReceivedEvent(uint packetnum) {
    PacketAckReceivedEvent(packetnum);
  }

  public delegate void SwigDelegateWrappedPipeEndpointDirector_0();
  public delegate void SwigDelegateWrappedPipeEndpointDirector_1();
  public delegate void SwigDelegateWrappedPipeEndpointDirector_2(uint packetnum);

  private SwigDelegateWrappedPipeEndpointDirector_0 swigDelegate0;
  private SwigDelegateWrappedPipeEndpointDirector_1 swigDelegate1;
  private SwigDelegateWrappedPipeEndpointDirector_2 swigDelegate2;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] {  };
  private static global::System.Type[] swigMethodTypes1 = new global::System.Type[] {  };
  private static global::System.Type[] swigMethodTypes2 = new global::System.Type[] { typeof(uint) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class AsyncPipeEndpointReturnDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal AsyncPipeEndpointReturnDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(AsyncPipeEndpointReturnDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~AsyncPipeEndpointReturnDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_AsyncPipeEndpointReturnDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual void handler(WrappedPipeEndpoint ep, HandlerErrorInfo error) {
    RobotRaconteurNETPINVOKE.AsyncPipeEndpointReturnDirector_handler(swigCPtr, WrappedPipeEndpoint.getCPtr(ep), HandlerErrorInfo.getCPtr(error));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public AsyncPipeEndpointReturnDirector() : this(RobotRaconteurNETPINVOKE.new_AsyncPipeEndpointReturnDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("handler", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateAsyncPipeEndpointReturnDirector_0(SwigDirectorMethodhandler);
    RobotRaconteurNETPINVOKE.AsyncPipeEndpointReturnDirector_director_connect(swigCPtr, swigDelegate0);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(AsyncPipeEndpointReturnDirector));
    return hasDerivedMethod;
  }

  private void SwigDirectorMethodhandler(global::System.IntPtr ep, global::System.IntPtr error) {
    handler((ep == global::System.IntPtr.Zero) ? null : new WrappedPipeEndpoint(ep, true), new HandlerErrorInfo(error, false));
  }

  public delegate void SwigDelegateAsyncPipeEndpointReturnDirector_0(global::System.IntPtr ep, global::System.IntPtr error);

  private SwigDelegateAsyncPipeEndpointReturnDirector_0 swigDelegate0;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(WrappedPipeEndpoint), typeof(HandlerErrorInfo) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedTryReceivePacketWaitResult : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedTryReceivePacketWaitResult(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedTryReceivePacketWaitResult obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedTryReceivePacketWaitResult() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedTryReceivePacketWaitResult(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public bool res {
    set {
      RobotRaconteurNETPINVOKE.WrappedTryReceivePacketWaitResult_res_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      bool ret = RobotRaconteurNETPINVOKE.WrappedTryReceivePacketWaitResult_res_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public MessageElement packet {
    set {
      RobotRaconteurNETPINVOKE.WrappedTryReceivePacketWaitResult_packet_set(swigCPtr, MessageElement.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedTryReceivePacketWaitResult_packet_get(swigCPtr);
      MessageElement ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElement(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public WrappedTryReceivePacketWaitResult() : this(RobotRaconteurNETPINVOKE.new_WrappedTryReceivePacketWaitResult(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedPipeEndpoint : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal WrappedPipeEndpoint(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedPipeEndpoint obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedPipeEndpoint() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_WrappedPipeEndpoint(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual uint SendPacket(MessageElement packet) {
    uint ret = RobotRaconteurNETPINVOKE.WrappedPipeEndpoint_SendPacket(swigCPtr, MessageElement.getCPtr(packet));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual MessageElement ReceivePacket() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedPipeEndpoint_ReceivePacket(swigCPtr);
    MessageElement ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElement(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual MessageElement PeekNextPacket() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedPipeEndpoint_PeekNextPacket(swigCPtr);
    MessageElement ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElement(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public MessageElement ReceivePacketWait(int timeout) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedPipeEndpoint_ReceivePacketWait__SWIG_0(swigCPtr, timeout);
    MessageElement ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElement(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public MessageElement ReceivePacketWait() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedPipeEndpoint_ReceivePacketWait__SWIG_1(swigCPtr);
    MessageElement ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElement(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public MessageElement PeekNextPacketWait(int timeout) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedPipeEndpoint_PeekNextPacketWait__SWIG_0(swigCPtr, timeout);
    MessageElement ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElement(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public MessageElement PeekNextPacketWait() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedPipeEndpoint_PeekNextPacketWait__SWIG_1(swigCPtr);
    MessageElement ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElement(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedTryReceivePacketWaitResult TryReceivePacketWait(int timeout, bool peek) {
    WrappedTryReceivePacketWaitResult ret = new WrappedTryReceivePacketWaitResult(RobotRaconteurNETPINVOKE.WrappedPipeEndpoint_TryReceivePacketWait__SWIG_0(swigCPtr, timeout, peek), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedTryReceivePacketWaitResult TryReceivePacketWait(int timeout) {
    WrappedTryReceivePacketWaitResult ret = new WrappedTryReceivePacketWaitResult(RobotRaconteurNETPINVOKE.WrappedPipeEndpoint_TryReceivePacketWait__SWIG_1(swigCPtr, timeout), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedTryReceivePacketWaitResult TryReceivePacketWait() {
    WrappedTryReceivePacketWaitResult ret = new WrappedTryReceivePacketWaitResult(RobotRaconteurNETPINVOKE.WrappedPipeEndpoint_TryReceivePacketWait__SWIG_2(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual void Close() {
    RobotRaconteurNETPINVOKE.WrappedPipeEndpoint_Close(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual int GetIndex() {
    int ret = RobotRaconteurNETPINVOKE.WrappedPipeEndpoint_GetIndex(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual uint GetEndpoint() {
    uint ret = RobotRaconteurNETPINVOKE.WrappedPipeEndpoint_GetEndpoint(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public uint Available() {
    uint ret = RobotRaconteurNETPINVOKE.WrappedPipeEndpoint_Available(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool GetRequestPacketAck() {
    bool ret = RobotRaconteurNETPINVOKE.WrappedPipeEndpoint_GetRequestPacketAck(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void SetRequestPacketAck(bool v) {
    RobotRaconteurNETPINVOKE.WrappedPipeEndpoint_SetRequestPacketAck(swigCPtr, v);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public TypeDefinition Type {
    set {
      RobotRaconteurNETPINVOKE.WrappedPipeEndpoint_Type_set(swigCPtr, TypeDefinition.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedPipeEndpoint_Type_get(swigCPtr);
      TypeDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new TypeDefinition(cPtr, true);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public void SetRRDirector(WrappedPipeEndpointDirector director, int id) {
    RobotRaconteurNETPINVOKE.WrappedPipeEndpoint_SetRRDirector(swigCPtr, WrappedPipeEndpointDirector.getCPtr(director), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public bool IsUnreliable() {
    bool ret = RobotRaconteurNETPINVOKE.WrappedPipeEndpoint_IsUnreliable(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public MemberDefinition_Direction Direction() {
    MemberDefinition_Direction ret = (MemberDefinition_Direction)RobotRaconteurNETPINVOKE.WrappedPipeEndpoint_Direction(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual void AsyncSendPacket(MessageElement packet, AsyncUInt32ReturnDirector handler, int id) {
    RobotRaconteurNETPINVOKE.WrappedPipeEndpoint_AsyncSendPacket(swigCPtr, MessageElement.getCPtr(packet), AsyncUInt32ReturnDirector.getCPtr(handler), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void AsyncClose(int timeout, AsyncVoidReturnDirector handler, int id) {
    RobotRaconteurNETPINVOKE.WrappedPipeEndpoint_AsyncClose(swigCPtr, timeout, AsyncVoidReturnDirector.getCPtr(handler), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public RobotRaconteurNode GetNode() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedPipeEndpoint_GetNode(swigCPtr);
    RobotRaconteurNode ret = (cPtr == global::System.IntPtr.Zero) ? null : new RobotRaconteurNode(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool GetIgnoreReceived() {
    bool ret = RobotRaconteurNETPINVOKE.WrappedPipeEndpoint_GetIgnoreReceived(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void SetIgnoreReceived(bool ignore) {
    RobotRaconteurNETPINVOKE.WrappedPipeEndpoint_SetIgnoreReceived(swigCPtr, ignore);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedPipeClient : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal WrappedPipeClient(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedPipeClient obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedPipeClient() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_WrappedPipeClient(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual WrappedPipeEndpoint Connect(int index) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedPipeClient_Connect(swigCPtr, index);
    WrappedPipeEndpoint ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedPipeEndpoint(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void AsyncConnect(int index, int timeout, AsyncPipeEndpointReturnDirector handler, int id) {
    RobotRaconteurNETPINVOKE.WrappedPipeClient_AsyncConnect(swigCPtr, index, timeout, AsyncPipeEndpointReturnDirector.getCPtr(handler), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public string GetMemberName() {
    string ret = RobotRaconteurNETPINVOKE.WrappedPipeClient_GetMemberName(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public TypeDefinition Type {
    set {
      RobotRaconteurNETPINVOKE.WrappedPipeClient_Type_set(swigCPtr, TypeDefinition.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedPipeClient_Type_get(swigCPtr);
      TypeDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new TypeDefinition(cPtr, true);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public RobotRaconteurNode GetNode() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedPipeClient_GetNode(swigCPtr);
    RobotRaconteurNode ret = (cPtr == global::System.IntPtr.Zero) ? null : new RobotRaconteurNode(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public MemberDefinition_Direction Direction() {
    MemberDefinition_Direction ret = (MemberDefinition_Direction)RobotRaconteurNETPINVOKE.WrappedPipeClient_Direction(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedPipeServerConnectDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedPipeServerConnectDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedPipeServerConnectDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedPipeServerConnectDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedPipeServerConnectDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual void PipeConnectCallback(WrappedPipeEndpoint pipeendpoint) {
    RobotRaconteurNETPINVOKE.WrappedPipeServerConnectDirector_PipeConnectCallback(swigCPtr, WrappedPipeEndpoint.getCPtr(pipeendpoint));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public WrappedPipeServerConnectDirector() : this(RobotRaconteurNETPINVOKE.new_WrappedPipeServerConnectDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("PipeConnectCallback", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateWrappedPipeServerConnectDirector_0(SwigDirectorMethodPipeConnectCallback);
    RobotRaconteurNETPINVOKE.WrappedPipeServerConnectDirector_director_connect(swigCPtr, swigDelegate0);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(WrappedPipeServerConnectDirector));
    return hasDerivedMethod;
  }

  private void SwigDirectorMethodPipeConnectCallback(global::System.IntPtr pipeendpoint) {
    PipeConnectCallback((pipeendpoint == global::System.IntPtr.Zero) ? null : new WrappedPipeEndpoint(pipeendpoint, true));
  }

  public delegate void SwigDelegateWrappedPipeServerConnectDirector_0(global::System.IntPtr pipeendpoint);

  private SwigDelegateWrappedPipeServerConnectDirector_0 swigDelegate0;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(WrappedPipeEndpoint) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedPipeServer : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal WrappedPipeServer(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedPipeServer obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedPipeServer() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_WrappedPipeServer(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public string GetMemberName() {
    string ret = RobotRaconteurNETPINVOKE.WrappedPipeServer_GetMemberName(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public TypeDefinition Type {
    set {
      RobotRaconteurNETPINVOKE.WrappedPipeServer_Type_set(swigCPtr, TypeDefinition.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedPipeServer_Type_get(swigCPtr);
      TypeDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new TypeDefinition(cPtr, true);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public void SetWrappedPipeConnectCallback(WrappedPipeServerConnectDirector director, int id) {
    RobotRaconteurNETPINVOKE.WrappedPipeServer_SetWrappedPipeConnectCallback(swigCPtr, WrappedPipeServerConnectDirector.getCPtr(director), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public RobotRaconteurNode GetNode() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedPipeServer_GetNode(swigCPtr);
    RobotRaconteurNode ret = (cPtr == global::System.IntPtr.Zero) ? null : new RobotRaconteurNode(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public MemberDefinition_Direction Direction() {
    MemberDefinition_Direction ret = (MemberDefinition_Direction)RobotRaconteurNETPINVOKE.WrappedPipeServer_Direction(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedPipeBroadcasterPredicateDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedPipeBroadcasterPredicateDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedPipeBroadcasterPredicateDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedPipeBroadcasterPredicateDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedPipeBroadcasterPredicateDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual bool Predicate(uint client_endpoint, int index) {
    bool ret = RobotRaconteurNETPINVOKE.WrappedPipeBroadcasterPredicateDirector_Predicate(swigCPtr, client_endpoint, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedPipeBroadcasterPredicateDirector() : this(RobotRaconteurNETPINVOKE.new_WrappedPipeBroadcasterPredicateDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("Predicate", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateWrappedPipeBroadcasterPredicateDirector_0(SwigDirectorMethodPredicate);
    RobotRaconteurNETPINVOKE.WrappedPipeBroadcasterPredicateDirector_director_connect(swigCPtr, swigDelegate0);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(WrappedPipeBroadcasterPredicateDirector));
    return hasDerivedMethod;
  }

  private bool SwigDirectorMethodPredicate(uint client_endpoint, int index) {
    return Predicate(client_endpoint, index);
  }

  public delegate bool SwigDelegateWrappedPipeBroadcasterPredicateDirector_0(uint client_endpoint, int index);

  private SwigDelegateWrappedPipeBroadcasterPredicateDirector_0 swigDelegate0;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(uint), typeof(int) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedPipeBroadcaster : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal WrappedPipeBroadcaster(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedPipeBroadcaster obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedPipeBroadcaster() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_WrappedPipeBroadcaster(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public void Init(WrappedPipeServer pipe, int maximum_backlog) {
    RobotRaconteurNETPINVOKE.WrappedPipeBroadcaster_Init__SWIG_0(swigCPtr, WrappedPipeServer.getCPtr(pipe), maximum_backlog);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Init(WrappedPipeServer pipe) {
    RobotRaconteurNETPINVOKE.WrappedPipeBroadcaster_Init__SWIG_1(swigCPtr, WrappedPipeServer.getCPtr(pipe));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SendPacket(MessageElement packet) {
    RobotRaconteurNETPINVOKE.WrappedPipeBroadcaster_SendPacket(swigCPtr, MessageElement.getCPtr(packet));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void AsyncSendPacket(MessageElement packet, AsyncVoidNoErrReturnDirector handler, int id) {
    RobotRaconteurNETPINVOKE.WrappedPipeBroadcaster_AsyncSendPacket(swigCPtr, MessageElement.getCPtr(packet), AsyncVoidNoErrReturnDirector.getCPtr(handler), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public uint GetActivePipeEndpointCount() {
    uint ret = RobotRaconteurNETPINVOKE.WrappedPipeBroadcaster_GetActivePipeEndpointCount(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void SetPredicateDirector(WrappedPipeBroadcasterPredicateDirector f, int id) {
    RobotRaconteurNETPINVOKE.WrappedPipeBroadcaster_SetPredicateDirector(swigCPtr, WrappedPipeBroadcasterPredicateDirector.getCPtr(f), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public int GetMaxBacklog() {
    int ret = RobotRaconteurNETPINVOKE.WrappedPipeBroadcaster_GetMaxBacklog(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void SetMaxBacklog(int maximum_backlog) {
    RobotRaconteurNETPINVOKE.WrappedPipeBroadcaster_SetMaxBacklog(swigCPtr, maximum_backlog);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public WrappedPipeBroadcaster() : this(RobotRaconteurNETPINVOKE.new_WrappedPipeBroadcaster(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedWireConnectionDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedWireConnectionDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedWireConnectionDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedWireConnectionDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedWireConnectionDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual void WireValueChanged(MessageElement value, TimeSpec time) {
    RobotRaconteurNETPINVOKE.WrappedWireConnectionDirector_WireValueChanged(swigCPtr, MessageElement.getCPtr(value), TimeSpec.getCPtr(time));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void WireConnectionClosedCallback() {
    RobotRaconteurNETPINVOKE.WrappedWireConnectionDirector_WireConnectionClosedCallback(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public WrappedWireConnectionDirector() : this(RobotRaconteurNETPINVOKE.new_WrappedWireConnectionDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("WireValueChanged", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateWrappedWireConnectionDirector_0(SwigDirectorMethodWireValueChanged);
    if (SwigDerivedClassHasMethod("WireConnectionClosedCallback", swigMethodTypes1))
      swigDelegate1 = new SwigDelegateWrappedWireConnectionDirector_1(SwigDirectorMethodWireConnectionClosedCallback);
    RobotRaconteurNETPINVOKE.WrappedWireConnectionDirector_director_connect(swigCPtr, swigDelegate0, swigDelegate1);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(WrappedWireConnectionDirector));
    return hasDerivedMethod;
  }

  private void SwigDirectorMethodWireValueChanged(global::System.IntPtr value, global::System.IntPtr time) {
    WireValueChanged((value == global::System.IntPtr.Zero) ? null : new MessageElement(value, true), new TimeSpec(time, false));
  }

  private void SwigDirectorMethodWireConnectionClosedCallback() {
    WireConnectionClosedCallback();
  }

  public delegate void SwigDelegateWrappedWireConnectionDirector_0(global::System.IntPtr value, global::System.IntPtr time);
  public delegate void SwigDelegateWrappedWireConnectionDirector_1();

  private SwigDelegateWrappedWireConnectionDirector_0 swigDelegate0;
  private SwigDelegateWrappedWireConnectionDirector_1 swigDelegate1;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(MessageElement), typeof(TimeSpec) };
  private static global::System.Type[] swigMethodTypes1 = new global::System.Type[] {  };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class AsyncWireConnectionReturnDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal AsyncWireConnectionReturnDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(AsyncWireConnectionReturnDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~AsyncWireConnectionReturnDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_AsyncWireConnectionReturnDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual void handler(WrappedWireConnection ep, HandlerErrorInfo error) {
    RobotRaconteurNETPINVOKE.AsyncWireConnectionReturnDirector_handler(swigCPtr, WrappedWireConnection.getCPtr(ep), HandlerErrorInfo.getCPtr(error));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public AsyncWireConnectionReturnDirector() : this(RobotRaconteurNETPINVOKE.new_AsyncWireConnectionReturnDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("handler", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateAsyncWireConnectionReturnDirector_0(SwigDirectorMethodhandler);
    RobotRaconteurNETPINVOKE.AsyncWireConnectionReturnDirector_director_connect(swigCPtr, swigDelegate0);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(AsyncWireConnectionReturnDirector));
    return hasDerivedMethod;
  }

  private void SwigDirectorMethodhandler(global::System.IntPtr ep, global::System.IntPtr error) {
    handler((ep == global::System.IntPtr.Zero) ? null : new WrappedWireConnection(ep, true), new HandlerErrorInfo(error, false));
  }

  public delegate void SwigDelegateAsyncWireConnectionReturnDirector_0(global::System.IntPtr ep, global::System.IntPtr error);

  private SwigDelegateAsyncWireConnectionReturnDirector_0 swigDelegate0;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(WrappedWireConnection), typeof(HandlerErrorInfo) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class AsyncWirePeekReturnDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal AsyncWirePeekReturnDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(AsyncWirePeekReturnDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~AsyncWirePeekReturnDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_AsyncWirePeekReturnDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual void handler(MessageElement value, TimeSpec ts, HandlerErrorInfo error) {
    RobotRaconteurNETPINVOKE.AsyncWirePeekReturnDirector_handler(swigCPtr, MessageElement.getCPtr(value), TimeSpec.getCPtr(ts), HandlerErrorInfo.getCPtr(error));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public AsyncWirePeekReturnDirector() : this(RobotRaconteurNETPINVOKE.new_AsyncWirePeekReturnDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("handler", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateAsyncWirePeekReturnDirector_0(SwigDirectorMethodhandler);
    RobotRaconteurNETPINVOKE.AsyncWirePeekReturnDirector_director_connect(swigCPtr, swigDelegate0);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(AsyncWirePeekReturnDirector));
    return hasDerivedMethod;
  }

  private void SwigDirectorMethodhandler(global::System.IntPtr value, global::System.IntPtr ts, global::System.IntPtr error) {
    handler((value == global::System.IntPtr.Zero) ? null : new MessageElement(value, true), new TimeSpec(ts, false), new HandlerErrorInfo(error, false));
  }

  public delegate void SwigDelegateAsyncWirePeekReturnDirector_0(global::System.IntPtr value, global::System.IntPtr ts, global::System.IntPtr error);

  private SwigDelegateAsyncWirePeekReturnDirector_0 swigDelegate0;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(MessageElement), typeof(TimeSpec), typeof(HandlerErrorInfo) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class TryGetValueResult : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal TryGetValueResult(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(TryGetValueResult obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~TryGetValueResult() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_TryGetValueResult(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public bool res {
    set {
      RobotRaconteurNETPINVOKE.TryGetValueResult_res_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      bool ret = RobotRaconteurNETPINVOKE.TryGetValueResult_res_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public MessageElement value {
    set {
      RobotRaconteurNETPINVOKE.TryGetValueResult_value_set(swigCPtr, MessageElement.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.TryGetValueResult_value_get(swigCPtr);
      MessageElement ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElement(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public TimeSpec ts {
    set {
      RobotRaconteurNETPINVOKE.TryGetValueResult_ts_set(swigCPtr, TimeSpec.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.TryGetValueResult_ts_get(swigCPtr);
      TimeSpec ret = (cPtr == global::System.IntPtr.Zero) ? null : new TimeSpec(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public TryGetValueResult() : this(RobotRaconteurNETPINVOKE.new_TryGetValueResult(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedWireConnection : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal WrappedWireConnection(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedWireConnection obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedWireConnection() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_WrappedWireConnection(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual MessageElement GetInValue() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedWireConnection_GetInValue(swigCPtr);
    MessageElement ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElement(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual MessageElement GetOutValue() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedWireConnection_GetOutValue(swigCPtr);
    MessageElement ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElement(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual void SetOutValue(MessageElement value) {
    RobotRaconteurNETPINVOKE.WrappedWireConnection_SetOutValue(swigCPtr, MessageElement.getCPtr(value));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SetRRDirector(WrappedWireConnectionDirector director, int id) {
    RobotRaconteurNETPINVOKE.WrappedWireConnection_SetRRDirector(swigCPtr, WrappedWireConnectionDirector.getCPtr(director), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public TypeDefinition Type {
    set {
      RobotRaconteurNETPINVOKE.WrappedWireConnection_Type_set(swigCPtr, TypeDefinition.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedWireConnection_Type_get(swigCPtr);
      TypeDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new TypeDefinition(cPtr, true);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public virtual void Close() {
    RobotRaconteurNETPINVOKE.WrappedWireConnection_Close(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual uint GetEndpoint() {
    uint ret = RobotRaconteurNETPINVOKE.WrappedWireConnection_GetEndpoint(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public TimeSpec GetLastValueReceivedTime() {
    TimeSpec ret = new TimeSpec(RobotRaconteurNETPINVOKE.WrappedWireConnection_GetLastValueReceivedTime(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public TimeSpec GetLastValueSentTime() {
    TimeSpec ret = new TimeSpec(RobotRaconteurNETPINVOKE.WrappedWireConnection_GetLastValueSentTime(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool GetInValueValid() {
    bool ret = RobotRaconteurNETPINVOKE.WrappedWireConnection_GetInValueValid(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool GetOutValueValid() {
    bool ret = RobotRaconteurNETPINVOKE.WrappedWireConnection_GetOutValueValid(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public TryGetValueResult TryGetInValue() {
    TryGetValueResult ret = new TryGetValueResult(RobotRaconteurNETPINVOKE.WrappedWireConnection_TryGetInValue(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public TryGetValueResult TryGetOutValue() {
    TryGetValueResult ret = new TryGetValueResult(RobotRaconteurNETPINVOKE.WrappedWireConnection_TryGetOutValue(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void AsyncClose(int timeout, AsyncVoidReturnDirector handler, int id) {
    RobotRaconteurNETPINVOKE.WrappedWireConnection_AsyncClose(swigCPtr, timeout, AsyncVoidReturnDirector.getCPtr(handler), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public RobotRaconteurNode GetNode() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedWireConnection_GetNode(swigCPtr);
    RobotRaconteurNode ret = (cPtr == global::System.IntPtr.Zero) ? null : new RobotRaconteurNode(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool GetIgnoreInValue() {
    bool ret = RobotRaconteurNETPINVOKE.WrappedWireConnection_GetIgnoreInValue(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void SetIgnoreInValue(bool ignore) {
    RobotRaconteurNETPINVOKE.WrappedWireConnection_SetIgnoreInValue(swigCPtr, ignore);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public int GetInValueLifespan() {
    int ret = RobotRaconteurNETPINVOKE.WrappedWireConnection_GetInValueLifespan(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void SetInValueLifespan(int millis) {
    RobotRaconteurNETPINVOKE.WrappedWireConnection_SetInValueLifespan(swigCPtr, millis);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public int GetOutValueLifespan() {
    int ret = RobotRaconteurNETPINVOKE.WrappedWireConnection_GetOutValueLifespan(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void SetOutValueLifespan(int millis) {
    RobotRaconteurNETPINVOKE.WrappedWireConnection_SetOutValueLifespan(swigCPtr, millis);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public bool WaitInValueValid(int timeout) {
    bool ret = RobotRaconteurNETPINVOKE.WrappedWireConnection_WaitInValueValid__SWIG_0(swigCPtr, timeout);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool WaitInValueValid() {
    bool ret = RobotRaconteurNETPINVOKE.WrappedWireConnection_WaitInValueValid__SWIG_1(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool WaitOutValueValid(int timeout) {
    bool ret = RobotRaconteurNETPINVOKE.WrappedWireConnection_WaitOutValueValid__SWIG_0(swigCPtr, timeout);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool WaitOutValueValid() {
    bool ret = RobotRaconteurNETPINVOKE.WrappedWireConnection_WaitOutValueValid__SWIG_1(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public MemberDefinition_Direction Direction() {
    MemberDefinition_Direction ret = (MemberDefinition_Direction)RobotRaconteurNETPINVOKE.WrappedWireConnection_Direction(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedWireClient : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal WrappedWireClient(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedWireClient obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedWireClient() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_WrappedWireClient(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual WrappedWireConnection Connect() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedWireClient_Connect(swigCPtr);
    WrappedWireConnection ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedWireConnection(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void AsyncConnect(int timeout, AsyncWireConnectionReturnDirector handler, int id) {
    RobotRaconteurNETPINVOKE.WrappedWireClient_AsyncConnect(swigCPtr, timeout, AsyncWireConnectionReturnDirector.getCPtr(handler), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual string GetMemberName() {
    string ret = RobotRaconteurNETPINVOKE.WrappedWireClient_GetMemberName(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public MessageElement PeekInValue(TimeSpec ts) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedWireClient_PeekInValue(swigCPtr, TimeSpec.getCPtr(ts));
    MessageElement ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElement(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public MessageElement PeekOutValue(TimeSpec ts) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedWireClient_PeekOutValue(swigCPtr, TimeSpec.getCPtr(ts));
    MessageElement ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElement(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void PokeOutValue(MessageElement value) {
    RobotRaconteurNETPINVOKE.WrappedWireClient_PokeOutValue(swigCPtr, MessageElement.getCPtr(value));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void AsyncPeekInValue(int timeout, AsyncWirePeekReturnDirector handler, int id) {
    RobotRaconteurNETPINVOKE.WrappedWireClient_AsyncPeekInValue(swigCPtr, timeout, AsyncWirePeekReturnDirector.getCPtr(handler), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void AsyncPeekOutValue(int timeout, AsyncWirePeekReturnDirector handler, int id) {
    RobotRaconteurNETPINVOKE.WrappedWireClient_AsyncPeekOutValue(swigCPtr, timeout, AsyncWirePeekReturnDirector.getCPtr(handler), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void AsyncPokeOutValue(MessageElement value, int timeout, AsyncVoidReturnDirector handler, int id) {
    RobotRaconteurNETPINVOKE.WrappedWireClient_AsyncPokeOutValue(swigCPtr, MessageElement.getCPtr(value), timeout, AsyncVoidReturnDirector.getCPtr(handler), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public TypeDefinition Type {
    set {
      RobotRaconteurNETPINVOKE.WrappedWireClient_Type_set(swigCPtr, TypeDefinition.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedWireClient_Type_get(swigCPtr);
      TypeDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new TypeDefinition(cPtr, true);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public RobotRaconteurNode GetNode() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedWireClient_GetNode(swigCPtr);
    RobotRaconteurNode ret = (cPtr == global::System.IntPtr.Zero) ? null : new RobotRaconteurNode(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public MemberDefinition_Direction Direction() {
    MemberDefinition_Direction ret = (MemberDefinition_Direction)RobotRaconteurNETPINVOKE.WrappedWireClient_Direction(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedWireServerConnectDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedWireServerConnectDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedWireServerConnectDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedWireServerConnectDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedWireServerConnectDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual void WireConnectCallback(WrappedWireConnection c) {
    RobotRaconteurNETPINVOKE.WrappedWireServerConnectDirector_WireConnectCallback(swigCPtr, WrappedWireConnection.getCPtr(c));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public WrappedWireServerConnectDirector() : this(RobotRaconteurNETPINVOKE.new_WrappedWireServerConnectDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("WireConnectCallback", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateWrappedWireServerConnectDirector_0(SwigDirectorMethodWireConnectCallback);
    RobotRaconteurNETPINVOKE.WrappedWireServerConnectDirector_director_connect(swigCPtr, swigDelegate0);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(WrappedWireServerConnectDirector));
    return hasDerivedMethod;
  }

  private void SwigDirectorMethodWireConnectCallback(global::System.IntPtr c) {
    WireConnectCallback((c == global::System.IntPtr.Zero) ? null : new WrappedWireConnection(c, true));
  }

  public delegate void SwigDelegateWrappedWireServerConnectDirector_0(global::System.IntPtr c);

  private SwigDelegateWrappedWireServerConnectDirector_0 swigDelegate0;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(WrappedWireConnection) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedWireServerPeekValueDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedWireServerPeekValueDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedWireServerPeekValueDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedWireServerPeekValueDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedWireServerPeekValueDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual MessageElement PeekValue(uint ep) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedWireServerPeekValueDirector_PeekValue(swigCPtr, ep);
    MessageElement ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElement(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedWireServerPeekValueDirector() : this(RobotRaconteurNETPINVOKE.new_WrappedWireServerPeekValueDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("PeekValue", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateWrappedWireServerPeekValueDirector_0(SwigDirectorMethodPeekValue);
    RobotRaconteurNETPINVOKE.WrappedWireServerPeekValueDirector_director_connect(swigCPtr, swigDelegate0);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(WrappedWireServerPeekValueDirector));
    return hasDerivedMethod;
  }

  private global::System.IntPtr SwigDirectorMethodPeekValue(uint ep) {
    return MessageElement.getCPtr(PeekValue(ep)).Handle;
  }

  public delegate global::System.IntPtr SwigDelegateWrappedWireServerPeekValueDirector_0(uint ep);

  private SwigDelegateWrappedWireServerPeekValueDirector_0 swigDelegate0;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(uint) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedWireServerPokeValueDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedWireServerPokeValueDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedWireServerPokeValueDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedWireServerPokeValueDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedWireServerPokeValueDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual void PokeValue(MessageElement value, TimeSpec ts, uint ep) {
    RobotRaconteurNETPINVOKE.WrappedWireServerPokeValueDirector_PokeValue(swigCPtr, MessageElement.getCPtr(value), TimeSpec.getCPtr(ts), ep);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public WrappedWireServerPokeValueDirector() : this(RobotRaconteurNETPINVOKE.new_WrappedWireServerPokeValueDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("PokeValue", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateWrappedWireServerPokeValueDirector_0(SwigDirectorMethodPokeValue);
    RobotRaconteurNETPINVOKE.WrappedWireServerPokeValueDirector_director_connect(swigCPtr, swigDelegate0);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(WrappedWireServerPokeValueDirector));
    return hasDerivedMethod;
  }

  private void SwigDirectorMethodPokeValue(global::System.IntPtr value, global::System.IntPtr ts, uint ep) {
    PokeValue((value == global::System.IntPtr.Zero) ? null : new MessageElement(value, true), new TimeSpec(ts, false), ep);
  }

  public delegate void SwigDelegateWrappedWireServerPokeValueDirector_0(global::System.IntPtr value, global::System.IntPtr ts, uint ep);

  private SwigDelegateWrappedWireServerPokeValueDirector_0 swigDelegate0;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(MessageElement), typeof(TimeSpec), typeof(uint) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedWireServer : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal WrappedWireServer(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedWireServer obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedWireServer() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_WrappedWireServer(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual string GetMemberName() {
    string ret = RobotRaconteurNETPINVOKE.WrappedWireServer_GetMemberName(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public TypeDefinition Type {
    set {
      RobotRaconteurNETPINVOKE.WrappedWireServer_Type_set(swigCPtr, TypeDefinition.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedWireServer_Type_get(swigCPtr);
      TypeDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new TypeDefinition(cPtr, true);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public void SetWrappedWireConnectCallback(WrappedWireServerConnectDirector director, int id) {
    RobotRaconteurNETPINVOKE.WrappedWireServer_SetWrappedWireConnectCallback(swigCPtr, WrappedWireServerConnectDirector.getCPtr(director), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public RobotRaconteurNode GetNode() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedWireServer_GetNode(swigCPtr);
    RobotRaconteurNode ret = (cPtr == global::System.IntPtr.Zero) ? null : new RobotRaconteurNode(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void SetPeekInValueCallback(WrappedWireServerPeekValueDirector director, int id) {
    RobotRaconteurNETPINVOKE.WrappedWireServer_SetPeekInValueCallback(swigCPtr, WrappedWireServerPeekValueDirector.getCPtr(director), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SetPeekOutValueCallback(WrappedWireServerPeekValueDirector director, int id) {
    RobotRaconteurNETPINVOKE.WrappedWireServer_SetPeekOutValueCallback(swigCPtr, WrappedWireServerPeekValueDirector.getCPtr(director), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SetPokeOutValueCallback(WrappedWireServerPokeValueDirector director, int id) {
    RobotRaconteurNETPINVOKE.WrappedWireServer_SetPokeOutValueCallback(swigCPtr, WrappedWireServerPokeValueDirector.getCPtr(director), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public MemberDefinition_Direction Direction() {
    MemberDefinition_Direction ret = (MemberDefinition_Direction)RobotRaconteurNETPINVOKE.WrappedWireServer_Direction(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedWireBroadcasterPredicateDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedWireBroadcasterPredicateDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedWireBroadcasterPredicateDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedWireBroadcasterPredicateDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedWireBroadcasterPredicateDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual bool Predicate(uint client_endpoint) {
    bool ret = RobotRaconteurNETPINVOKE.WrappedWireBroadcasterPredicateDirector_Predicate(swigCPtr, client_endpoint);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedWireBroadcasterPredicateDirector() : this(RobotRaconteurNETPINVOKE.new_WrappedWireBroadcasterPredicateDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("Predicate", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateWrappedWireBroadcasterPredicateDirector_0(SwigDirectorMethodPredicate);
    RobotRaconteurNETPINVOKE.WrappedWireBroadcasterPredicateDirector_director_connect(swigCPtr, swigDelegate0);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(WrappedWireBroadcasterPredicateDirector));
    return hasDerivedMethod;
  }

  private bool SwigDirectorMethodPredicate(uint client_endpoint) {
    return Predicate(client_endpoint);
  }

  public delegate bool SwigDelegateWrappedWireBroadcasterPredicateDirector_0(uint client_endpoint);

  private SwigDelegateWrappedWireBroadcasterPredicateDirector_0 swigDelegate0;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(uint) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedWireBroadcaster : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal WrappedWireBroadcaster(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedWireBroadcaster obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedWireBroadcaster() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_WrappedWireBroadcaster(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public void Init(WrappedWireServer wire) {
    RobotRaconteurNETPINVOKE.WrappedWireBroadcaster_Init(swigCPtr, WrappedWireServer.getCPtr(wire));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SetOutValue(MessageElement value) {
    RobotRaconteurNETPINVOKE.WrappedWireBroadcaster_SetOutValue(swigCPtr, MessageElement.getCPtr(value));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public uint GetActiveWireConnectionCount() {
    uint ret = RobotRaconteurNETPINVOKE.WrappedWireBroadcaster_GetActiveWireConnectionCount(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void SetPredicateDirector(WrappedWireBroadcasterPredicateDirector f, int id) {
    RobotRaconteurNETPINVOKE.WrappedWireBroadcaster_SetPredicateDirector(swigCPtr, WrappedWireBroadcasterPredicateDirector.getCPtr(f), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public int GetOutValueLifespan() {
    int ret = RobotRaconteurNETPINVOKE.WrappedWireBroadcaster_GetOutValueLifespan(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void SetOutValueLifespan(int millis) {
    RobotRaconteurNETPINVOKE.WrappedWireBroadcaster_SetOutValueLifespan(swigCPtr, millis);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SetPeekInValueCallback(WrappedWireServerPeekValueDirector director, int id) {
    RobotRaconteurNETPINVOKE.WrappedWireBroadcaster_SetPeekInValueCallback(swigCPtr, WrappedWireServerPeekValueDirector.getCPtr(director), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public WrappedWireBroadcaster() : this(RobotRaconteurNETPINVOKE.new_WrappedWireBroadcaster(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedWireUnicastReceiver : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal WrappedWireUnicastReceiver(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedWireUnicastReceiver obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedWireUnicastReceiver() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_WrappedWireUnicastReceiver(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public void Init(WrappedWireServer wire) {
    RobotRaconteurNETPINVOKE.WrappedWireUnicastReceiver_Init(swigCPtr, WrappedWireServer.getCPtr(wire));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public MessageElement GetInValue(TimeSpec ts, out uint ep) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedWireUnicastReceiver_GetInValue(swigCPtr, TimeSpec.getCPtr(ts), out ep);
    MessageElement ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElement(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void AddInValueChangedListener(WrappedWireServerPokeValueDirector director, int id) {
    RobotRaconteurNETPINVOKE.WrappedWireUnicastReceiver_AddInValueChangedListener(swigCPtr, WrappedWireServerPokeValueDirector.getCPtr(director), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public int GetInValueLifespan() {
    int ret = RobotRaconteurNETPINVOKE.WrappedWireUnicastReceiver_GetInValueLifespan(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void SetInValueLifespan(int millis) {
    RobotRaconteurNETPINVOKE.WrappedWireUnicastReceiver_SetInValueLifespan(swigCPtr, millis);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public bool TryGetInValue(WrappedService_typed_packet val, TimeSpec time) {
    bool ret = RobotRaconteurNETPINVOKE.WrappedWireUnicastReceiver_TryGetInValue(swigCPtr, WrappedService_typed_packet.getCPtr(val), TimeSpec.getCPtr(time));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedWireUnicastReceiver() : this(RobotRaconteurNETPINVOKE.new_WrappedWireUnicastReceiver(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class ArrayMemoryBase : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal ArrayMemoryBase(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(ArrayMemoryBase obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~ArrayMemoryBase() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_ArrayMemoryBase(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual uint Length() {
    uint ret = RobotRaconteurNETPINVOKE.ArrayMemoryBase_Length(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual DataTypes ElementTypeID() {
    DataTypes ret = (DataTypes)RobotRaconteurNETPINVOKE.ArrayMemoryBase_ElementTypeID(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class MultiDimArrayMemoryBase : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal MultiDimArrayMemoryBase(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(MultiDimArrayMemoryBase obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~MultiDimArrayMemoryBase() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_MultiDimArrayMemoryBase(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual vector_uint64_t Dimensions() {
    vector_uint64_t ret = new vector_uint64_t(RobotRaconteurNETPINVOKE.MultiDimArrayMemoryBase_Dimensions(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual uint DimCount() {
    uint ret = RobotRaconteurNETPINVOKE.MultiDimArrayMemoryBase_DimCount(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual DataTypes ElementTypeID() {
    DataTypes ret = (DataTypes)RobotRaconteurNETPINVOKE.MultiDimArrayMemoryBase_ElementTypeID(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedArrayMemoryClientUtil : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedArrayMemoryClientUtil(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedArrayMemoryClientUtil obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedArrayMemoryClientUtil() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedArrayMemoryClientUtil(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public static RRBaseArray Read(ArrayMemoryBase mem, uint memorypos, uint count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedArrayMemoryClientUtil_Read(ArrayMemoryBase.getCPtr(mem), memorypos, count);
    RRBaseArray ret = (cPtr == global::System.IntPtr.Zero) ? null : new RRBaseArray(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static void Write(ArrayMemoryBase mem, uint memorypos, RRBaseArray buffer, uint bufferpos, uint count) {
    RobotRaconteurNETPINVOKE.WrappedArrayMemoryClientUtil_Write(ArrayMemoryBase.getCPtr(mem), memorypos, RRBaseArray.getCPtr(buffer), bufferpos, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static MemberDefinition_Direction Direction(ArrayMemoryBase mem) {
    MemberDefinition_Direction ret = (MemberDefinition_Direction)RobotRaconteurNETPINVOKE.WrappedArrayMemoryClientUtil_Direction(ArrayMemoryBase.getCPtr(mem));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedArrayMemoryClientUtil() : this(RobotRaconteurNETPINVOKE.new_WrappedArrayMemoryClientUtil(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedMultiDimArrayMemoryClientUtil : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedMultiDimArrayMemoryClientUtil(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedMultiDimArrayMemoryClientUtil obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedMultiDimArrayMemoryClientUtil() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedMultiDimArrayMemoryClientUtil(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public static RRMultiDimArrayUntyped Read(MultiDimArrayMemoryBase mem, vector_uint64_t memorypos, vector_uint64_t count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedMultiDimArrayMemoryClientUtil_Read(MultiDimArrayMemoryBase.getCPtr(mem), vector_uint64_t.getCPtr(memorypos), vector_uint64_t.getCPtr(count));
    RRMultiDimArrayUntyped ret = (cPtr == global::System.IntPtr.Zero) ? null : new RRMultiDimArrayUntyped(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static void Write(MultiDimArrayMemoryBase mem, vector_uint64_t memorypos, RRMultiDimArrayUntyped buffer, vector_uint64_t bufferpos, vector_uint64_t count) {
    RobotRaconteurNETPINVOKE.WrappedMultiDimArrayMemoryClientUtil_Write(MultiDimArrayMemoryBase.getCPtr(mem), vector_uint64_t.getCPtr(memorypos), RRMultiDimArrayUntyped.getCPtr(buffer), vector_uint64_t.getCPtr(bufferpos), vector_uint64_t.getCPtr(count));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static MemberDefinition_Direction Direction(MultiDimArrayMemoryBase mem) {
    MemberDefinition_Direction ret = (MemberDefinition_Direction)RobotRaconteurNETPINVOKE.WrappedMultiDimArrayMemoryClientUtil_Direction(MultiDimArrayMemoryBase.getCPtr(mem));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedMultiDimArrayMemoryClientUtil() : this(RobotRaconteurNETPINVOKE.new_WrappedMultiDimArrayMemoryClientUtil(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedPodArrayMemoryClientBuffer : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedPodArrayMemoryClientBuffer(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedPodArrayMemoryClientBuffer obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedPodArrayMemoryClientBuffer() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedPodArrayMemoryClientBuffer(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual void UnpackReadResult(MessageElementNestedElementList res, uint bufferpos, uint count) {
    RobotRaconteurNETPINVOKE.WrappedPodArrayMemoryClientBuffer_UnpackReadResult(swigCPtr, MessageElementNestedElementList.getCPtr(res), bufferpos, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual MessageElementNestedElementList PackWriteRequest(uint bufferpos, uint count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedPodArrayMemoryClientBuffer_PackWriteRequest(swigCPtr, bufferpos, count);
    MessageElementNestedElementList ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElementNestedElementList(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual uint GetBufferLength() {
    uint ret = RobotRaconteurNETPINVOKE.WrappedPodArrayMemoryClientBuffer_GetBufferLength(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedPodArrayMemoryClientBuffer() : this(RobotRaconteurNETPINVOKE.new_WrappedPodArrayMemoryClientBuffer(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("UnpackReadResult", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateWrappedPodArrayMemoryClientBuffer_0(SwigDirectorMethodUnpackReadResult);
    if (SwigDerivedClassHasMethod("PackWriteRequest", swigMethodTypes1))
      swigDelegate1 = new SwigDelegateWrappedPodArrayMemoryClientBuffer_1(SwigDirectorMethodPackWriteRequest);
    if (SwigDerivedClassHasMethod("GetBufferLength", swigMethodTypes2))
      swigDelegate2 = new SwigDelegateWrappedPodArrayMemoryClientBuffer_2(SwigDirectorMethodGetBufferLength);
    RobotRaconteurNETPINVOKE.WrappedPodArrayMemoryClientBuffer_director_connect(swigCPtr, swigDelegate0, swigDelegate1, swigDelegate2);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(WrappedPodArrayMemoryClientBuffer));
    return hasDerivedMethod;
  }

  private void SwigDirectorMethodUnpackReadResult(global::System.IntPtr res, uint bufferpos, uint count) {
    UnpackReadResult((res == global::System.IntPtr.Zero) ? null : new MessageElementNestedElementList(res, true), bufferpos, count);
  }

  private global::System.IntPtr SwigDirectorMethodPackWriteRequest(uint bufferpos, uint count) {
    return MessageElementNestedElementList.getCPtr(PackWriteRequest(bufferpos, count)).Handle;
  }

  private uint SwigDirectorMethodGetBufferLength() {
    return GetBufferLength();
  }

  public delegate void SwigDelegateWrappedPodArrayMemoryClientBuffer_0(global::System.IntPtr res, uint bufferpos, uint count);
  public delegate global::System.IntPtr SwigDelegateWrappedPodArrayMemoryClientBuffer_1(uint bufferpos, uint count);
  public delegate uint SwigDelegateWrappedPodArrayMemoryClientBuffer_2();

  private SwigDelegateWrappedPodArrayMemoryClientBuffer_0 swigDelegate0;
  private SwigDelegateWrappedPodArrayMemoryClientBuffer_1 swigDelegate1;
  private SwigDelegateWrappedPodArrayMemoryClientBuffer_2 swigDelegate2;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(MessageElementNestedElementList), typeof(uint), typeof(uint) };
  private static global::System.Type[] swigMethodTypes1 = new global::System.Type[] { typeof(uint), typeof(uint) };
  private static global::System.Type[] swigMethodTypes2 = new global::System.Type[] {  };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedPodArrayMemoryClient : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal WrappedPodArrayMemoryClient(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedPodArrayMemoryClient obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedPodArrayMemoryClient() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_WrappedPodArrayMemoryClient(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual uint Length() {
    uint ret = RobotRaconteurNETPINVOKE.WrappedPodArrayMemoryClient_Length(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public MemberDefinition_Direction Direction() {
    MemberDefinition_Direction ret = (MemberDefinition_Direction)RobotRaconteurNETPINVOKE.WrappedPodArrayMemoryClient_Direction(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual void Read(uint memorypos, WrappedPodArrayMemoryClientBuffer buffer, uint bufferpos, uint count) {
    RobotRaconteurNETPINVOKE.WrappedPodArrayMemoryClient_Read(swigCPtr, memorypos, WrappedPodArrayMemoryClientBuffer.getCPtr(buffer), bufferpos, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void Write(uint memorypos, WrappedPodArrayMemoryClientBuffer buffer, uint bufferpos, uint count) {
    RobotRaconteurNETPINVOKE.WrappedPodArrayMemoryClient_Write(swigCPtr, memorypos, WrappedPodArrayMemoryClientBuffer.getCPtr(buffer), bufferpos, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedPodMultiDimArrayMemoryClientBuffer : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedPodMultiDimArrayMemoryClientBuffer(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedPodMultiDimArrayMemoryClientBuffer obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedPodMultiDimArrayMemoryClientBuffer() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedPodMultiDimArrayMemoryClientBuffer(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual void UnpackReadResult(MessageElementNestedElementList res, vector_uint64_t bufferpos, vector_uint64_t count) {
    RobotRaconteurNETPINVOKE.WrappedPodMultiDimArrayMemoryClientBuffer_UnpackReadResult(swigCPtr, MessageElementNestedElementList.getCPtr(res), vector_uint64_t.getCPtr(bufferpos), vector_uint64_t.getCPtr(count));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual MessageElementNestedElementList PackWriteRequest(vector_uint64_t bufferpos, vector_uint64_t count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedPodMultiDimArrayMemoryClientBuffer_PackWriteRequest(swigCPtr, vector_uint64_t.getCPtr(bufferpos), vector_uint64_t.getCPtr(count));
    MessageElementNestedElementList ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElementNestedElementList(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedPodMultiDimArrayMemoryClientBuffer() : this(RobotRaconteurNETPINVOKE.new_WrappedPodMultiDimArrayMemoryClientBuffer(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("UnpackReadResult", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateWrappedPodMultiDimArrayMemoryClientBuffer_0(SwigDirectorMethodUnpackReadResult);
    if (SwigDerivedClassHasMethod("PackWriteRequest", swigMethodTypes1))
      swigDelegate1 = new SwigDelegateWrappedPodMultiDimArrayMemoryClientBuffer_1(SwigDirectorMethodPackWriteRequest);
    RobotRaconteurNETPINVOKE.WrappedPodMultiDimArrayMemoryClientBuffer_director_connect(swigCPtr, swigDelegate0, swigDelegate1);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(WrappedPodMultiDimArrayMemoryClientBuffer));
    return hasDerivedMethod;
  }

  private void SwigDirectorMethodUnpackReadResult(global::System.IntPtr res, global::System.IntPtr bufferpos, global::System.IntPtr count) {
    UnpackReadResult((res == global::System.IntPtr.Zero) ? null : new MessageElementNestedElementList(res, true), new vector_uint64_t(bufferpos, false), new vector_uint64_t(count, false));
  }

  private global::System.IntPtr SwigDirectorMethodPackWriteRequest(global::System.IntPtr bufferpos, global::System.IntPtr count) {
    return MessageElementNestedElementList.getCPtr(PackWriteRequest(new vector_uint64_t(bufferpos, false), new vector_uint64_t(count, false))).Handle;
  }

  public delegate void SwigDelegateWrappedPodMultiDimArrayMemoryClientBuffer_0(global::System.IntPtr res, global::System.IntPtr bufferpos, global::System.IntPtr count);
  public delegate global::System.IntPtr SwigDelegateWrappedPodMultiDimArrayMemoryClientBuffer_1(global::System.IntPtr bufferpos, global::System.IntPtr count);

  private SwigDelegateWrappedPodMultiDimArrayMemoryClientBuffer_0 swigDelegate0;
  private SwigDelegateWrappedPodMultiDimArrayMemoryClientBuffer_1 swigDelegate1;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(MessageElementNestedElementList), typeof(vector_uint64_t), typeof(vector_uint64_t) };
  private static global::System.Type[] swigMethodTypes1 = new global::System.Type[] { typeof(vector_uint64_t), typeof(vector_uint64_t) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedPodMultiDimArrayMemoryClient : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal WrappedPodMultiDimArrayMemoryClient(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedPodMultiDimArrayMemoryClient obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedPodMultiDimArrayMemoryClient() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_WrappedPodMultiDimArrayMemoryClient(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual vector_uint64_t Dimensions() {
    vector_uint64_t ret = new vector_uint64_t(RobotRaconteurNETPINVOKE.WrappedPodMultiDimArrayMemoryClient_Dimensions(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual uint DimCount() {
    uint ret = RobotRaconteurNETPINVOKE.WrappedPodMultiDimArrayMemoryClient_DimCount(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public MemberDefinition_Direction Direction() {
    MemberDefinition_Direction ret = (MemberDefinition_Direction)RobotRaconteurNETPINVOKE.WrappedPodMultiDimArrayMemoryClient_Direction(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual void Read(vector_uint64_t memorypos, WrappedPodMultiDimArrayMemoryClientBuffer buffer, vector_uint64_t bufferpos, vector_uint64_t count) {
    RobotRaconteurNETPINVOKE.WrappedPodMultiDimArrayMemoryClient_Read(swigCPtr, vector_uint64_t.getCPtr(memorypos), WrappedPodMultiDimArrayMemoryClientBuffer.getCPtr(buffer), vector_uint64_t.getCPtr(bufferpos), vector_uint64_t.getCPtr(count));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void Write(vector_uint64_t memorypos, WrappedPodMultiDimArrayMemoryClientBuffer buffer, vector_uint64_t bufferpos, vector_uint64_t count) {
    RobotRaconteurNETPINVOKE.WrappedPodMultiDimArrayMemoryClient_Write(swigCPtr, vector_uint64_t.getCPtr(memorypos), WrappedPodMultiDimArrayMemoryClientBuffer.getCPtr(buffer), vector_uint64_t.getCPtr(bufferpos), vector_uint64_t.getCPtr(count));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedArrayMemoryDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedArrayMemoryDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedArrayMemoryDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedArrayMemoryDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedArrayMemoryDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual uint Length() {
    uint ret = RobotRaconteurNETPINVOKE.WrappedArrayMemoryDirector_Length(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual void Read(uint memorypos, RRBaseArray buffer, uint bufferpos, uint count) {
    RobotRaconteurNETPINVOKE.WrappedArrayMemoryDirector_Read(swigCPtr, memorypos, RRBaseArray.getCPtr(buffer), bufferpos, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void Write(uint memorypos, RRBaseArray buffer, uint bufferpos, uint count) {
    RobotRaconteurNETPINVOKE.WrappedArrayMemoryDirector_Write(swigCPtr, memorypos, RRBaseArray.getCPtr(buffer), bufferpos, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public int objectheapid {
    set {
      RobotRaconteurNETPINVOKE.WrappedArrayMemoryDirector_objectheapid_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      int ret = RobotRaconteurNETPINVOKE.WrappedArrayMemoryDirector_objectheapid_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public WrappedArrayMemoryDirector() : this(RobotRaconteurNETPINVOKE.new_WrappedArrayMemoryDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("Length", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateWrappedArrayMemoryDirector_0(SwigDirectorMethodLength);
    if (SwigDerivedClassHasMethod("Read", swigMethodTypes1))
      swigDelegate1 = new SwigDelegateWrappedArrayMemoryDirector_1(SwigDirectorMethodRead);
    if (SwigDerivedClassHasMethod("Write", swigMethodTypes2))
      swigDelegate2 = new SwigDelegateWrappedArrayMemoryDirector_2(SwigDirectorMethodWrite);
    RobotRaconteurNETPINVOKE.WrappedArrayMemoryDirector_director_connect(swigCPtr, swigDelegate0, swigDelegate1, swigDelegate2);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(WrappedArrayMemoryDirector));
    return hasDerivedMethod;
  }

  private uint SwigDirectorMethodLength() {
    return Length();
  }

  private void SwigDirectorMethodRead(uint memorypos, global::System.IntPtr buffer, uint bufferpos, uint count) {
    Read(memorypos, (buffer == global::System.IntPtr.Zero) ? null : new RRBaseArray(buffer, true), bufferpos, count);
  }

  private void SwigDirectorMethodWrite(uint memorypos, global::System.IntPtr buffer, uint bufferpos, uint count) {
    Write(memorypos, (buffer == global::System.IntPtr.Zero) ? null : new RRBaseArray(buffer, true), bufferpos, count);
  }

  public delegate uint SwigDelegateWrappedArrayMemoryDirector_0();
  public delegate void SwigDelegateWrappedArrayMemoryDirector_1(uint memorypos, global::System.IntPtr buffer, uint bufferpos, uint count);
  public delegate void SwigDelegateWrappedArrayMemoryDirector_2(uint memorypos, global::System.IntPtr buffer, uint bufferpos, uint count);

  private SwigDelegateWrappedArrayMemoryDirector_0 swigDelegate0;
  private SwigDelegateWrappedArrayMemoryDirector_1 swigDelegate1;
  private SwigDelegateWrappedArrayMemoryDirector_2 swigDelegate2;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] {  };
  private static global::System.Type[] swigMethodTypes1 = new global::System.Type[] { typeof(uint), typeof(RRBaseArray), typeof(uint), typeof(uint) };
  private static global::System.Type[] swigMethodTypes2 = new global::System.Type[] { typeof(uint), typeof(RRBaseArray), typeof(uint), typeof(uint) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedMultiDimArrayMemoryParams : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedMultiDimArrayMemoryParams(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedMultiDimArrayMemoryParams obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedMultiDimArrayMemoryParams() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedMultiDimArrayMemoryParams(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public vector_uint64_t memorypos {
    set {
      RobotRaconteurNETPINVOKE.WrappedMultiDimArrayMemoryParams_memorypos_set(swigCPtr, vector_uint64_t.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedMultiDimArrayMemoryParams_memorypos_get(swigCPtr);
      vector_uint64_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new vector_uint64_t(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public RRMultiDimArrayUntyped buffer {
    set {
      RobotRaconteurNETPINVOKE.WrappedMultiDimArrayMemoryParams_buffer_set(swigCPtr, RRMultiDimArrayUntyped.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedMultiDimArrayMemoryParams_buffer_get(swigCPtr);
      RRMultiDimArrayUntyped ret = (cPtr == global::System.IntPtr.Zero) ? null : new RRMultiDimArrayUntyped(cPtr, true);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public vector_uint64_t bufferpos {
    set {
      RobotRaconteurNETPINVOKE.WrappedMultiDimArrayMemoryParams_bufferpos_set(swigCPtr, vector_uint64_t.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedMultiDimArrayMemoryParams_bufferpos_get(swigCPtr);
      vector_uint64_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new vector_uint64_t(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public vector_uint64_t count {
    set {
      RobotRaconteurNETPINVOKE.WrappedMultiDimArrayMemoryParams_count_set(swigCPtr, vector_uint64_t.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedMultiDimArrayMemoryParams_count_get(swigCPtr);
      vector_uint64_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new vector_uint64_t(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public WrappedMultiDimArrayMemoryParams() : this(RobotRaconteurNETPINVOKE.new_WrappedMultiDimArrayMemoryParams(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedMultiDimArrayMemoryDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedMultiDimArrayMemoryDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedMultiDimArrayMemoryDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedMultiDimArrayMemoryDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedMultiDimArrayMemoryDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual vector_uint64_t Dimensions() {
    vector_uint64_t ret = new vector_uint64_t(RobotRaconteurNETPINVOKE.WrappedMultiDimArrayMemoryDirector_Dimensions(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual uint DimCount() {
    uint ret = RobotRaconteurNETPINVOKE.WrappedMultiDimArrayMemoryDirector_DimCount(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual void Read(WrappedMultiDimArrayMemoryParams p) {
    RobotRaconteurNETPINVOKE.WrappedMultiDimArrayMemoryDirector_Read(swigCPtr, WrappedMultiDimArrayMemoryParams.getCPtr(p));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void Write(WrappedMultiDimArrayMemoryParams p) {
    RobotRaconteurNETPINVOKE.WrappedMultiDimArrayMemoryDirector_Write(swigCPtr, WrappedMultiDimArrayMemoryParams.getCPtr(p));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public int objectheapid {
    set {
      RobotRaconteurNETPINVOKE.WrappedMultiDimArrayMemoryDirector_objectheapid_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      int ret = RobotRaconteurNETPINVOKE.WrappedMultiDimArrayMemoryDirector_objectheapid_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public WrappedMultiDimArrayMemoryDirector() : this(RobotRaconteurNETPINVOKE.new_WrappedMultiDimArrayMemoryDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("Dimensions", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateWrappedMultiDimArrayMemoryDirector_0(SwigDirectorMethodDimensions);
    if (SwigDerivedClassHasMethod("DimCount", swigMethodTypes1))
      swigDelegate1 = new SwigDelegateWrappedMultiDimArrayMemoryDirector_1(SwigDirectorMethodDimCount);
    if (SwigDerivedClassHasMethod("Read", swigMethodTypes2))
      swigDelegate2 = new SwigDelegateWrappedMultiDimArrayMemoryDirector_2(SwigDirectorMethodRead);
    if (SwigDerivedClassHasMethod("Write", swigMethodTypes3))
      swigDelegate3 = new SwigDelegateWrappedMultiDimArrayMemoryDirector_3(SwigDirectorMethodWrite);
    RobotRaconteurNETPINVOKE.WrappedMultiDimArrayMemoryDirector_director_connect(swigCPtr, swigDelegate0, swigDelegate1, swigDelegate2, swigDelegate3);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(WrappedMultiDimArrayMemoryDirector));
    return hasDerivedMethod;
  }

  private global::System.IntPtr SwigDirectorMethodDimensions() {
    return vector_uint64_t.getCPtr(Dimensions()).Handle;
  }

  private uint SwigDirectorMethodDimCount() {
    return DimCount();
  }

  private void SwigDirectorMethodRead(global::System.IntPtr p) {
    Read((p == global::System.IntPtr.Zero) ? null : new WrappedMultiDimArrayMemoryParams(p, false));
  }

  private void SwigDirectorMethodWrite(global::System.IntPtr p) {
    Write((p == global::System.IntPtr.Zero) ? null : new WrappedMultiDimArrayMemoryParams(p, false));
  }

  public delegate global::System.IntPtr SwigDelegateWrappedMultiDimArrayMemoryDirector_0();
  public delegate uint SwigDelegateWrappedMultiDimArrayMemoryDirector_1();
  public delegate void SwigDelegateWrappedMultiDimArrayMemoryDirector_2(global::System.IntPtr p);
  public delegate void SwigDelegateWrappedMultiDimArrayMemoryDirector_3(global::System.IntPtr p);

  private SwigDelegateWrappedMultiDimArrayMemoryDirector_0 swigDelegate0;
  private SwigDelegateWrappedMultiDimArrayMemoryDirector_1 swigDelegate1;
  private SwigDelegateWrappedMultiDimArrayMemoryDirector_2 swigDelegate2;
  private SwigDelegateWrappedMultiDimArrayMemoryDirector_3 swigDelegate3;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] {  };
  private static global::System.Type[] swigMethodTypes1 = new global::System.Type[] {  };
  private static global::System.Type[] swigMethodTypes2 = new global::System.Type[] { typeof(WrappedMultiDimArrayMemoryParams) };
  private static global::System.Type[] swigMethodTypes3 = new global::System.Type[] { typeof(WrappedMultiDimArrayMemoryParams) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedPodArrayMemoryDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedPodArrayMemoryDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedPodArrayMemoryDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedPodArrayMemoryDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedPodArrayMemoryDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public WrappedPodArrayMemoryDirector() : this(RobotRaconteurNETPINVOKE.new_WrappedPodArrayMemoryDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  public virtual uint Length() {
    uint ret = RobotRaconteurNETPINVOKE.WrappedPodArrayMemoryDirector_Length(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual MessageElementNestedElementList Read(uint memorypos, uint bufferpos, uint count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedPodArrayMemoryDirector_Read(swigCPtr, memorypos, bufferpos, count);
    MessageElementNestedElementList ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElementNestedElementList(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual void Write(uint memorypos, MessageElementNestedElementList buffer, uint bufferpos, uint count) {
    RobotRaconteurNETPINVOKE.WrappedPodArrayMemoryDirector_Write(swigCPtr, memorypos, MessageElementNestedElementList.getCPtr(buffer), bufferpos, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public int objectheapid {
    set {
      RobotRaconteurNETPINVOKE.WrappedPodArrayMemoryDirector_objectheapid_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      int ret = RobotRaconteurNETPINVOKE.WrappedPodArrayMemoryDirector_objectheapid_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("Length", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateWrappedPodArrayMemoryDirector_0(SwigDirectorMethodLength);
    if (SwigDerivedClassHasMethod("Read", swigMethodTypes1))
      swigDelegate1 = new SwigDelegateWrappedPodArrayMemoryDirector_1(SwigDirectorMethodRead);
    if (SwigDerivedClassHasMethod("Write", swigMethodTypes2))
      swigDelegate2 = new SwigDelegateWrappedPodArrayMemoryDirector_2(SwigDirectorMethodWrite);
    RobotRaconteurNETPINVOKE.WrappedPodArrayMemoryDirector_director_connect(swigCPtr, swigDelegate0, swigDelegate1, swigDelegate2);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(WrappedPodArrayMemoryDirector));
    return hasDerivedMethod;
  }

  private uint SwigDirectorMethodLength() {
    return Length();
  }

  private global::System.IntPtr SwigDirectorMethodRead(uint memorypos, uint bufferpos, uint count) {
    return MessageElementNestedElementList.getCPtr(Read(memorypos, bufferpos, count)).Handle;
  }

  private void SwigDirectorMethodWrite(uint memorypos, global::System.IntPtr buffer, uint bufferpos, uint count) {
    Write(memorypos, (buffer == global::System.IntPtr.Zero) ? null : new MessageElementNestedElementList(buffer, true), bufferpos, count);
  }

  public delegate uint SwigDelegateWrappedPodArrayMemoryDirector_0();
  public delegate global::System.IntPtr SwigDelegateWrappedPodArrayMemoryDirector_1(uint memorypos, uint bufferpos, uint count);
  public delegate void SwigDelegateWrappedPodArrayMemoryDirector_2(uint memorypos, global::System.IntPtr buffer, uint bufferpos, uint count);

  private SwigDelegateWrappedPodArrayMemoryDirector_0 swigDelegate0;
  private SwigDelegateWrappedPodArrayMemoryDirector_1 swigDelegate1;
  private SwigDelegateWrappedPodArrayMemoryDirector_2 swigDelegate2;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] {  };
  private static global::System.Type[] swigMethodTypes1 = new global::System.Type[] { typeof(uint), typeof(uint), typeof(uint) };
  private static global::System.Type[] swigMethodTypes2 = new global::System.Type[] { typeof(uint), typeof(MessageElementNestedElementList), typeof(uint), typeof(uint) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedPodMultiDimArrayMemoryDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedPodMultiDimArrayMemoryDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedPodMultiDimArrayMemoryDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedPodMultiDimArrayMemoryDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedPodMultiDimArrayMemoryDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual vector_uint64_t Dimensions() {
    vector_uint64_t ret = new vector_uint64_t(RobotRaconteurNETPINVOKE.WrappedPodMultiDimArrayMemoryDirector_Dimensions(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual uint DimCount() {
    uint ret = RobotRaconteurNETPINVOKE.WrappedPodMultiDimArrayMemoryDirector_DimCount(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual MessageElementNestedElementList Read(vector_uint64_t memorypos, vector_uint64_t bufferpos, vector_uint64_t count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedPodMultiDimArrayMemoryDirector_Read(swigCPtr, vector_uint64_t.getCPtr(memorypos), vector_uint64_t.getCPtr(bufferpos), vector_uint64_t.getCPtr(count));
    MessageElementNestedElementList ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElementNestedElementList(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual void Write(vector_uint64_t memorypos, MessageElementNestedElementList buffer, vector_uint64_t bufferpos, vector_uint64_t count) {
    RobotRaconteurNETPINVOKE.WrappedPodMultiDimArrayMemoryDirector_Write(swigCPtr, vector_uint64_t.getCPtr(memorypos), MessageElementNestedElementList.getCPtr(buffer), vector_uint64_t.getCPtr(bufferpos), vector_uint64_t.getCPtr(count));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public int objectheapid {
    set {
      RobotRaconteurNETPINVOKE.WrappedPodMultiDimArrayMemoryDirector_objectheapid_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      int ret = RobotRaconteurNETPINVOKE.WrappedPodMultiDimArrayMemoryDirector_objectheapid_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public WrappedPodMultiDimArrayMemoryDirector() : this(RobotRaconteurNETPINVOKE.new_WrappedPodMultiDimArrayMemoryDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("Dimensions", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateWrappedPodMultiDimArrayMemoryDirector_0(SwigDirectorMethodDimensions);
    if (SwigDerivedClassHasMethod("DimCount", swigMethodTypes1))
      swigDelegate1 = new SwigDelegateWrappedPodMultiDimArrayMemoryDirector_1(SwigDirectorMethodDimCount);
    if (SwigDerivedClassHasMethod("Read", swigMethodTypes2))
      swigDelegate2 = new SwigDelegateWrappedPodMultiDimArrayMemoryDirector_2(SwigDirectorMethodRead);
    if (SwigDerivedClassHasMethod("Write", swigMethodTypes3))
      swigDelegate3 = new SwigDelegateWrappedPodMultiDimArrayMemoryDirector_3(SwigDirectorMethodWrite);
    RobotRaconteurNETPINVOKE.WrappedPodMultiDimArrayMemoryDirector_director_connect(swigCPtr, swigDelegate0, swigDelegate1, swigDelegate2, swigDelegate3);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(WrappedPodMultiDimArrayMemoryDirector));
    return hasDerivedMethod;
  }

  private global::System.IntPtr SwigDirectorMethodDimensions() {
    return vector_uint64_t.getCPtr(Dimensions()).Handle;
  }

  private uint SwigDirectorMethodDimCount() {
    return DimCount();
  }

  private global::System.IntPtr SwigDirectorMethodRead(global::System.IntPtr memorypos, global::System.IntPtr bufferpos, global::System.IntPtr count) {
    return MessageElementNestedElementList.getCPtr(Read(new vector_uint64_t(memorypos, false), new vector_uint64_t(bufferpos, false), new vector_uint64_t(count, false))).Handle;
  }

  private void SwigDirectorMethodWrite(global::System.IntPtr memorypos, global::System.IntPtr buffer, global::System.IntPtr bufferpos, global::System.IntPtr count) {
    Write(new vector_uint64_t(memorypos, false), (buffer == global::System.IntPtr.Zero) ? null : new MessageElementNestedElementList(buffer, true), new vector_uint64_t(bufferpos, false), new vector_uint64_t(count, false));
  }

  public delegate global::System.IntPtr SwigDelegateWrappedPodMultiDimArrayMemoryDirector_0();
  public delegate uint SwigDelegateWrappedPodMultiDimArrayMemoryDirector_1();
  public delegate global::System.IntPtr SwigDelegateWrappedPodMultiDimArrayMemoryDirector_2(global::System.IntPtr memorypos, global::System.IntPtr bufferpos, global::System.IntPtr count);
  public delegate void SwigDelegateWrappedPodMultiDimArrayMemoryDirector_3(global::System.IntPtr memorypos, global::System.IntPtr buffer, global::System.IntPtr bufferpos, global::System.IntPtr count);

  private SwigDelegateWrappedPodMultiDimArrayMemoryDirector_0 swigDelegate0;
  private SwigDelegateWrappedPodMultiDimArrayMemoryDirector_1 swigDelegate1;
  private SwigDelegateWrappedPodMultiDimArrayMemoryDirector_2 swigDelegate2;
  private SwigDelegateWrappedPodMultiDimArrayMemoryDirector_3 swigDelegate3;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] {  };
  private static global::System.Type[] swigMethodTypes1 = new global::System.Type[] {  };
  private static global::System.Type[] swigMethodTypes2 = new global::System.Type[] { typeof(vector_uint64_t), typeof(vector_uint64_t), typeof(vector_uint64_t) };
  private static global::System.Type[] swigMethodTypes3 = new global::System.Type[] { typeof(vector_uint64_t), typeof(MessageElementNestedElementList), typeof(vector_uint64_t), typeof(vector_uint64_t) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedNamedArrayMemoryClientBuffer : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedNamedArrayMemoryClientBuffer(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedNamedArrayMemoryClientBuffer obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedNamedArrayMemoryClientBuffer() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedNamedArrayMemoryClientBuffer(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual void UnpackReadResult(MessageElementNestedElementList res, uint bufferpos, uint count) {
    RobotRaconteurNETPINVOKE.WrappedNamedArrayMemoryClientBuffer_UnpackReadResult(swigCPtr, MessageElementNestedElementList.getCPtr(res), bufferpos, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual MessageElementNestedElementList PackWriteRequest(uint bufferpos, uint count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedNamedArrayMemoryClientBuffer_PackWriteRequest(swigCPtr, bufferpos, count);
    MessageElementNestedElementList ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElementNestedElementList(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual uint GetBufferLength() {
    uint ret = RobotRaconteurNETPINVOKE.WrappedNamedArrayMemoryClientBuffer_GetBufferLength(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedNamedArrayMemoryClientBuffer() : this(RobotRaconteurNETPINVOKE.new_WrappedNamedArrayMemoryClientBuffer(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("UnpackReadResult", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateWrappedNamedArrayMemoryClientBuffer_0(SwigDirectorMethodUnpackReadResult);
    if (SwigDerivedClassHasMethod("PackWriteRequest", swigMethodTypes1))
      swigDelegate1 = new SwigDelegateWrappedNamedArrayMemoryClientBuffer_1(SwigDirectorMethodPackWriteRequest);
    if (SwigDerivedClassHasMethod("GetBufferLength", swigMethodTypes2))
      swigDelegate2 = new SwigDelegateWrappedNamedArrayMemoryClientBuffer_2(SwigDirectorMethodGetBufferLength);
    RobotRaconteurNETPINVOKE.WrappedNamedArrayMemoryClientBuffer_director_connect(swigCPtr, swigDelegate0, swigDelegate1, swigDelegate2);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(WrappedNamedArrayMemoryClientBuffer));
    return hasDerivedMethod;
  }

  private void SwigDirectorMethodUnpackReadResult(global::System.IntPtr res, uint bufferpos, uint count) {
    UnpackReadResult((res == global::System.IntPtr.Zero) ? null : new MessageElementNestedElementList(res, true), bufferpos, count);
  }

  private global::System.IntPtr SwigDirectorMethodPackWriteRequest(uint bufferpos, uint count) {
    return MessageElementNestedElementList.getCPtr(PackWriteRequest(bufferpos, count)).Handle;
  }

  private uint SwigDirectorMethodGetBufferLength() {
    return GetBufferLength();
  }

  public delegate void SwigDelegateWrappedNamedArrayMemoryClientBuffer_0(global::System.IntPtr res, uint bufferpos, uint count);
  public delegate global::System.IntPtr SwigDelegateWrappedNamedArrayMemoryClientBuffer_1(uint bufferpos, uint count);
  public delegate uint SwigDelegateWrappedNamedArrayMemoryClientBuffer_2();

  private SwigDelegateWrappedNamedArrayMemoryClientBuffer_0 swigDelegate0;
  private SwigDelegateWrappedNamedArrayMemoryClientBuffer_1 swigDelegate1;
  private SwigDelegateWrappedNamedArrayMemoryClientBuffer_2 swigDelegate2;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(MessageElementNestedElementList), typeof(uint), typeof(uint) };
  private static global::System.Type[] swigMethodTypes1 = new global::System.Type[] { typeof(uint), typeof(uint) };
  private static global::System.Type[] swigMethodTypes2 = new global::System.Type[] {  };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedNamedArrayMemoryClient : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal WrappedNamedArrayMemoryClient(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedNamedArrayMemoryClient obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedNamedArrayMemoryClient() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_WrappedNamedArrayMemoryClient(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual uint Length() {
    uint ret = RobotRaconteurNETPINVOKE.WrappedNamedArrayMemoryClient_Length(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public MemberDefinition_Direction Direction() {
    MemberDefinition_Direction ret = (MemberDefinition_Direction)RobotRaconteurNETPINVOKE.WrappedNamedArrayMemoryClient_Direction(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual void Read(uint memorypos, WrappedNamedArrayMemoryClientBuffer buffer, uint bufferpos, uint count) {
    RobotRaconteurNETPINVOKE.WrappedNamedArrayMemoryClient_Read(swigCPtr, memorypos, WrappedNamedArrayMemoryClientBuffer.getCPtr(buffer), bufferpos, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void Write(uint memorypos, WrappedNamedArrayMemoryClientBuffer buffer, uint bufferpos, uint count) {
    RobotRaconteurNETPINVOKE.WrappedNamedArrayMemoryClient_Write(swigCPtr, memorypos, WrappedNamedArrayMemoryClientBuffer.getCPtr(buffer), bufferpos, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedNamedMultiDimArrayMemoryClientBuffer : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedNamedMultiDimArrayMemoryClientBuffer(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedNamedMultiDimArrayMemoryClientBuffer obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedNamedMultiDimArrayMemoryClientBuffer() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedNamedMultiDimArrayMemoryClientBuffer(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual void UnpackReadResult(MessageElementNestedElementList res, vector_uint64_t bufferpos, vector_uint64_t count) {
    RobotRaconteurNETPINVOKE.WrappedNamedMultiDimArrayMemoryClientBuffer_UnpackReadResult(swigCPtr, MessageElementNestedElementList.getCPtr(res), vector_uint64_t.getCPtr(bufferpos), vector_uint64_t.getCPtr(count));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual MessageElementNestedElementList PackWriteRequest(vector_uint64_t bufferpos, vector_uint64_t count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedNamedMultiDimArrayMemoryClientBuffer_PackWriteRequest(swigCPtr, vector_uint64_t.getCPtr(bufferpos), vector_uint64_t.getCPtr(count));
    MessageElementNestedElementList ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElementNestedElementList(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedNamedMultiDimArrayMemoryClientBuffer() : this(RobotRaconteurNETPINVOKE.new_WrappedNamedMultiDimArrayMemoryClientBuffer(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("UnpackReadResult", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateWrappedNamedMultiDimArrayMemoryClientBuffer_0(SwigDirectorMethodUnpackReadResult);
    if (SwigDerivedClassHasMethod("PackWriteRequest", swigMethodTypes1))
      swigDelegate1 = new SwigDelegateWrappedNamedMultiDimArrayMemoryClientBuffer_1(SwigDirectorMethodPackWriteRequest);
    RobotRaconteurNETPINVOKE.WrappedNamedMultiDimArrayMemoryClientBuffer_director_connect(swigCPtr, swigDelegate0, swigDelegate1);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(WrappedNamedMultiDimArrayMemoryClientBuffer));
    return hasDerivedMethod;
  }

  private void SwigDirectorMethodUnpackReadResult(global::System.IntPtr res, global::System.IntPtr bufferpos, global::System.IntPtr count) {
    UnpackReadResult((res == global::System.IntPtr.Zero) ? null : new MessageElementNestedElementList(res, true), new vector_uint64_t(bufferpos, false), new vector_uint64_t(count, false));
  }

  private global::System.IntPtr SwigDirectorMethodPackWriteRequest(global::System.IntPtr bufferpos, global::System.IntPtr count) {
    return MessageElementNestedElementList.getCPtr(PackWriteRequest(new vector_uint64_t(bufferpos, false), new vector_uint64_t(count, false))).Handle;
  }

  public delegate void SwigDelegateWrappedNamedMultiDimArrayMemoryClientBuffer_0(global::System.IntPtr res, global::System.IntPtr bufferpos, global::System.IntPtr count);
  public delegate global::System.IntPtr SwigDelegateWrappedNamedMultiDimArrayMemoryClientBuffer_1(global::System.IntPtr bufferpos, global::System.IntPtr count);

  private SwigDelegateWrappedNamedMultiDimArrayMemoryClientBuffer_0 swigDelegate0;
  private SwigDelegateWrappedNamedMultiDimArrayMemoryClientBuffer_1 swigDelegate1;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(MessageElementNestedElementList), typeof(vector_uint64_t), typeof(vector_uint64_t) };
  private static global::System.Type[] swigMethodTypes1 = new global::System.Type[] { typeof(vector_uint64_t), typeof(vector_uint64_t) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedNamedMultiDimArrayMemoryClient : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal WrappedNamedMultiDimArrayMemoryClient(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedNamedMultiDimArrayMemoryClient obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedNamedMultiDimArrayMemoryClient() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_WrappedNamedMultiDimArrayMemoryClient(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual vector_uint64_t Dimensions() {
    vector_uint64_t ret = new vector_uint64_t(RobotRaconteurNETPINVOKE.WrappedNamedMultiDimArrayMemoryClient_Dimensions(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual uint DimCount() {
    uint ret = RobotRaconteurNETPINVOKE.WrappedNamedMultiDimArrayMemoryClient_DimCount(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public MemberDefinition_Direction Direction() {
    MemberDefinition_Direction ret = (MemberDefinition_Direction)RobotRaconteurNETPINVOKE.WrappedNamedMultiDimArrayMemoryClient_Direction(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual void Read(vector_uint64_t memorypos, WrappedNamedMultiDimArrayMemoryClientBuffer buffer, vector_uint64_t bufferpos, vector_uint64_t count) {
    RobotRaconteurNETPINVOKE.WrappedNamedMultiDimArrayMemoryClient_Read(swigCPtr, vector_uint64_t.getCPtr(memorypos), WrappedNamedMultiDimArrayMemoryClientBuffer.getCPtr(buffer), vector_uint64_t.getCPtr(bufferpos), vector_uint64_t.getCPtr(count));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void Write(vector_uint64_t memorypos, WrappedNamedMultiDimArrayMemoryClientBuffer buffer, vector_uint64_t bufferpos, vector_uint64_t count) {
    RobotRaconteurNETPINVOKE.WrappedNamedMultiDimArrayMemoryClient_Write(swigCPtr, vector_uint64_t.getCPtr(memorypos), WrappedNamedMultiDimArrayMemoryClientBuffer.getCPtr(buffer), vector_uint64_t.getCPtr(bufferpos), vector_uint64_t.getCPtr(count));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedNamedArrayMemoryDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedNamedArrayMemoryDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedNamedArrayMemoryDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedNamedArrayMemoryDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedNamedArrayMemoryDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public WrappedNamedArrayMemoryDirector() : this(RobotRaconteurNETPINVOKE.new_WrappedNamedArrayMemoryDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  public virtual uint Length() {
    uint ret = RobotRaconteurNETPINVOKE.WrappedNamedArrayMemoryDirector_Length(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual MessageElementNestedElementList Read(uint memorypos, uint bufferpos, uint count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedNamedArrayMemoryDirector_Read(swigCPtr, memorypos, bufferpos, count);
    MessageElementNestedElementList ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElementNestedElementList(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual void Write(uint memorypos, MessageElementNestedElementList buffer, uint bufferpos, uint count) {
    RobotRaconteurNETPINVOKE.WrappedNamedArrayMemoryDirector_Write(swigCPtr, memorypos, MessageElementNestedElementList.getCPtr(buffer), bufferpos, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public int objectheapid {
    set {
      RobotRaconteurNETPINVOKE.WrappedNamedArrayMemoryDirector_objectheapid_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      int ret = RobotRaconteurNETPINVOKE.WrappedNamedArrayMemoryDirector_objectheapid_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("Length", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateWrappedNamedArrayMemoryDirector_0(SwigDirectorMethodLength);
    if (SwigDerivedClassHasMethod("Read", swigMethodTypes1))
      swigDelegate1 = new SwigDelegateWrappedNamedArrayMemoryDirector_1(SwigDirectorMethodRead);
    if (SwigDerivedClassHasMethod("Write", swigMethodTypes2))
      swigDelegate2 = new SwigDelegateWrappedNamedArrayMemoryDirector_2(SwigDirectorMethodWrite);
    RobotRaconteurNETPINVOKE.WrappedNamedArrayMemoryDirector_director_connect(swigCPtr, swigDelegate0, swigDelegate1, swigDelegate2);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(WrappedNamedArrayMemoryDirector));
    return hasDerivedMethod;
  }

  private uint SwigDirectorMethodLength() {
    return Length();
  }

  private global::System.IntPtr SwigDirectorMethodRead(uint memorypos, uint bufferpos, uint count) {
    return MessageElementNestedElementList.getCPtr(Read(memorypos, bufferpos, count)).Handle;
  }

  private void SwigDirectorMethodWrite(uint memorypos, global::System.IntPtr buffer, uint bufferpos, uint count) {
    Write(memorypos, (buffer == global::System.IntPtr.Zero) ? null : new MessageElementNestedElementList(buffer, true), bufferpos, count);
  }

  public delegate uint SwigDelegateWrappedNamedArrayMemoryDirector_0();
  public delegate global::System.IntPtr SwigDelegateWrappedNamedArrayMemoryDirector_1(uint memorypos, uint bufferpos, uint count);
  public delegate void SwigDelegateWrappedNamedArrayMemoryDirector_2(uint memorypos, global::System.IntPtr buffer, uint bufferpos, uint count);

  private SwigDelegateWrappedNamedArrayMemoryDirector_0 swigDelegate0;
  private SwigDelegateWrappedNamedArrayMemoryDirector_1 swigDelegate1;
  private SwigDelegateWrappedNamedArrayMemoryDirector_2 swigDelegate2;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] {  };
  private static global::System.Type[] swigMethodTypes1 = new global::System.Type[] { typeof(uint), typeof(uint), typeof(uint) };
  private static global::System.Type[] swigMethodTypes2 = new global::System.Type[] { typeof(uint), typeof(MessageElementNestedElementList), typeof(uint), typeof(uint) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedNamedMultiDimArrayMemoryDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedNamedMultiDimArrayMemoryDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedNamedMultiDimArrayMemoryDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedNamedMultiDimArrayMemoryDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedNamedMultiDimArrayMemoryDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual vector_uint64_t Dimensions() {
    vector_uint64_t ret = new vector_uint64_t(RobotRaconteurNETPINVOKE.WrappedNamedMultiDimArrayMemoryDirector_Dimensions(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual uint DimCount() {
    uint ret = RobotRaconteurNETPINVOKE.WrappedNamedMultiDimArrayMemoryDirector_DimCount(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual MessageElementNestedElementList Read(vector_uint64_t memorypos, vector_uint64_t bufferpos, vector_uint64_t count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedNamedMultiDimArrayMemoryDirector_Read(swigCPtr, vector_uint64_t.getCPtr(memorypos), vector_uint64_t.getCPtr(bufferpos), vector_uint64_t.getCPtr(count));
    MessageElementNestedElementList ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElementNestedElementList(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual void Write(vector_uint64_t memorypos, MessageElementNestedElementList buffer, vector_uint64_t bufferpos, vector_uint64_t count) {
    RobotRaconteurNETPINVOKE.WrappedNamedMultiDimArrayMemoryDirector_Write(swigCPtr, vector_uint64_t.getCPtr(memorypos), MessageElementNestedElementList.getCPtr(buffer), vector_uint64_t.getCPtr(bufferpos), vector_uint64_t.getCPtr(count));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public int objectheapid {
    set {
      RobotRaconteurNETPINVOKE.WrappedNamedMultiDimArrayMemoryDirector_objectheapid_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      int ret = RobotRaconteurNETPINVOKE.WrappedNamedMultiDimArrayMemoryDirector_objectheapid_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public WrappedNamedMultiDimArrayMemoryDirector() : this(RobotRaconteurNETPINVOKE.new_WrappedNamedMultiDimArrayMemoryDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("Dimensions", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateWrappedNamedMultiDimArrayMemoryDirector_0(SwigDirectorMethodDimensions);
    if (SwigDerivedClassHasMethod("DimCount", swigMethodTypes1))
      swigDelegate1 = new SwigDelegateWrappedNamedMultiDimArrayMemoryDirector_1(SwigDirectorMethodDimCount);
    if (SwigDerivedClassHasMethod("Read", swigMethodTypes2))
      swigDelegate2 = new SwigDelegateWrappedNamedMultiDimArrayMemoryDirector_2(SwigDirectorMethodRead);
    if (SwigDerivedClassHasMethod("Write", swigMethodTypes3))
      swigDelegate3 = new SwigDelegateWrappedNamedMultiDimArrayMemoryDirector_3(SwigDirectorMethodWrite);
    RobotRaconteurNETPINVOKE.WrappedNamedMultiDimArrayMemoryDirector_director_connect(swigCPtr, swigDelegate0, swigDelegate1, swigDelegate2, swigDelegate3);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(WrappedNamedMultiDimArrayMemoryDirector));
    return hasDerivedMethod;
  }

  private global::System.IntPtr SwigDirectorMethodDimensions() {
    return vector_uint64_t.getCPtr(Dimensions()).Handle;
  }

  private uint SwigDirectorMethodDimCount() {
    return DimCount();
  }

  private global::System.IntPtr SwigDirectorMethodRead(global::System.IntPtr memorypos, global::System.IntPtr bufferpos, global::System.IntPtr count) {
    return MessageElementNestedElementList.getCPtr(Read(new vector_uint64_t(memorypos, false), new vector_uint64_t(bufferpos, false), new vector_uint64_t(count, false))).Handle;
  }

  private void SwigDirectorMethodWrite(global::System.IntPtr memorypos, global::System.IntPtr buffer, global::System.IntPtr bufferpos, global::System.IntPtr count) {
    Write(new vector_uint64_t(memorypos, false), (buffer == global::System.IntPtr.Zero) ? null : new MessageElementNestedElementList(buffer, true), new vector_uint64_t(bufferpos, false), new vector_uint64_t(count, false));
  }

  public delegate global::System.IntPtr SwigDelegateWrappedNamedMultiDimArrayMemoryDirector_0();
  public delegate uint SwigDelegateWrappedNamedMultiDimArrayMemoryDirector_1();
  public delegate global::System.IntPtr SwigDelegateWrappedNamedMultiDimArrayMemoryDirector_2(global::System.IntPtr memorypos, global::System.IntPtr bufferpos, global::System.IntPtr count);
  public delegate void SwigDelegateWrappedNamedMultiDimArrayMemoryDirector_3(global::System.IntPtr memorypos, global::System.IntPtr buffer, global::System.IntPtr bufferpos, global::System.IntPtr count);

  private SwigDelegateWrappedNamedMultiDimArrayMemoryDirector_0 swigDelegate0;
  private SwigDelegateWrappedNamedMultiDimArrayMemoryDirector_1 swigDelegate1;
  private SwigDelegateWrappedNamedMultiDimArrayMemoryDirector_2 swigDelegate2;
  private SwigDelegateWrappedNamedMultiDimArrayMemoryDirector_3 swigDelegate3;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] {  };
  private static global::System.Type[] swigMethodTypes1 = new global::System.Type[] {  };
  private static global::System.Type[] swigMethodTypes2 = new global::System.Type[] { typeof(vector_uint64_t), typeof(vector_uint64_t), typeof(vector_uint64_t) };
  private static global::System.Type[] swigMethodTypes3 = new global::System.Type[] { typeof(vector_uint64_t), typeof(MessageElementNestedElementList), typeof(vector_uint64_t), typeof(vector_uint64_t) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedGeneratorClient_TryGetNextResult : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedGeneratorClient_TryGetNextResult(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedGeneratorClient_TryGetNextResult obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedGeneratorClient_TryGetNextResult() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedGeneratorClient_TryGetNextResult(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public MessageElement value {
    set {
      RobotRaconteurNETPINVOKE.WrappedGeneratorClient_TryGetNextResult_value_set(swigCPtr, MessageElement.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedGeneratorClient_TryGetNextResult_value_get(swigCPtr);
      MessageElement ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElement(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public bool res {
    set {
      RobotRaconteurNETPINVOKE.WrappedGeneratorClient_TryGetNextResult_res_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      bool ret = RobotRaconteurNETPINVOKE.WrappedGeneratorClient_TryGetNextResult_res_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedGeneratorClient : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal WrappedGeneratorClient(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedGeneratorClient obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedGeneratorClient() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_WrappedGeneratorClient(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual MessageElement Next(MessageElement v) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedGeneratorClient_Next(swigCPtr, MessageElement.getCPtr(v));
    MessageElement ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElement(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedGeneratorClient_TryGetNextResult TryNext(MessageElement v) {
    WrappedGeneratorClient_TryGetNextResult ret = new WrappedGeneratorClient_TryGetNextResult(RobotRaconteurNETPINVOKE.WrappedGeneratorClient_TryNext(swigCPtr, MessageElement.getCPtr(v)), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual void AsyncNext(MessageElement v, int timeout, AsyncRequestDirector handler, int id) {
    RobotRaconteurNETPINVOKE.WrappedGeneratorClient_AsyncNext(swigCPtr, MessageElement.getCPtr(v), timeout, AsyncRequestDirector.getCPtr(handler), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void Abort() {
    RobotRaconteurNETPINVOKE.WrappedGeneratorClient_Abort(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void AsyncAbort(int timeout, AsyncVoidReturnDirector handler, int id) {
    RobotRaconteurNETPINVOKE.WrappedGeneratorClient_AsyncAbort(swigCPtr, timeout, AsyncVoidReturnDirector.getCPtr(handler), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void Close() {
    RobotRaconteurNETPINVOKE.WrappedGeneratorClient_Close(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void AsyncClose(int timeout, AsyncVoidReturnDirector handler, int id) {
    RobotRaconteurNETPINVOKE.WrappedGeneratorClient_AsyncClose(swigCPtr, timeout, AsyncVoidReturnDirector.getCPtr(handler), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual vectorptr_messageelement NextAll() {
    vectorptr_messageelement ret = new vectorptr_messageelement(RobotRaconteurNETPINVOKE.WrappedGeneratorClient_NextAll(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class AsyncGeneratorClientReturnDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal AsyncGeneratorClientReturnDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(AsyncGeneratorClientReturnDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~AsyncGeneratorClientReturnDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_AsyncGeneratorClientReturnDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual void handler(WrappedGeneratorClient ret, HandlerErrorInfo error) {
    RobotRaconteurNETPINVOKE.AsyncGeneratorClientReturnDirector_handler(swigCPtr, WrappedGeneratorClient.getCPtr(ret), HandlerErrorInfo.getCPtr(error));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public AsyncGeneratorClientReturnDirector() : this(RobotRaconteurNETPINVOKE.new_AsyncGeneratorClientReturnDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("handler", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateAsyncGeneratorClientReturnDirector_0(SwigDirectorMethodhandler);
    RobotRaconteurNETPINVOKE.AsyncGeneratorClientReturnDirector_director_connect(swigCPtr, swigDelegate0);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(AsyncGeneratorClientReturnDirector));
    return hasDerivedMethod;
  }

  private void SwigDirectorMethodhandler(global::System.IntPtr ret, global::System.IntPtr error) {
    handler((ret == global::System.IntPtr.Zero) ? null : new WrappedGeneratorClient(ret, true), new HandlerErrorInfo(error, false));
  }

  public delegate void SwigDelegateAsyncGeneratorClientReturnDirector_0(global::System.IntPtr ret, global::System.IntPtr error);

  private SwigDelegateAsyncGeneratorClientReturnDirector_0 swigDelegate0;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(WrappedGeneratorClient), typeof(HandlerErrorInfo) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedGeneratorServerDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedGeneratorServerDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedGeneratorServerDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedGeneratorServerDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedGeneratorServerDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public WrappedGeneratorServerDirector() : this(RobotRaconteurNETPINVOKE.new_WrappedGeneratorServerDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  public virtual MessageElement Next(MessageElement m, WrappedServiceSkelAsyncAdapter async_adaptor) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedGeneratorServerDirector_Next(swigCPtr, MessageElement.getCPtr(m), WrappedServiceSkelAsyncAdapter.getCPtr(async_adaptor));
    MessageElement ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElement(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual void Abort(WrappedServiceSkelAsyncAdapter async_adapter) {
    RobotRaconteurNETPINVOKE.WrappedGeneratorServerDirector_Abort(swigCPtr, WrappedServiceSkelAsyncAdapter.getCPtr(async_adapter));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void Close(WrappedServiceSkelAsyncAdapter async_adapter) {
    RobotRaconteurNETPINVOKE.WrappedGeneratorServerDirector_Close(swigCPtr, WrappedServiceSkelAsyncAdapter.getCPtr(async_adapter));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public int objectheapid {
    set {
      RobotRaconteurNETPINVOKE.WrappedGeneratorServerDirector_objectheapid_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      int ret = RobotRaconteurNETPINVOKE.WrappedGeneratorServerDirector_objectheapid_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("Next", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateWrappedGeneratorServerDirector_0(SwigDirectorMethodNext);
    if (SwigDerivedClassHasMethod("Abort", swigMethodTypes1))
      swigDelegate1 = new SwigDelegateWrappedGeneratorServerDirector_1(SwigDirectorMethodAbort);
    if (SwigDerivedClassHasMethod("Close", swigMethodTypes2))
      swigDelegate2 = new SwigDelegateWrappedGeneratorServerDirector_2(SwigDirectorMethodClose);
    RobotRaconteurNETPINVOKE.WrappedGeneratorServerDirector_director_connect(swigCPtr, swigDelegate0, swigDelegate1, swigDelegate2);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(WrappedGeneratorServerDirector));
    return hasDerivedMethod;
  }

  private global::System.IntPtr SwigDirectorMethodNext(global::System.IntPtr m, global::System.IntPtr async_adaptor) {
    return MessageElement.getCPtr(Next((m == global::System.IntPtr.Zero) ? null : new MessageElement(m, true), (async_adaptor == global::System.IntPtr.Zero) ? null : new WrappedServiceSkelAsyncAdapter(async_adaptor, true))).Handle;
  }

  private void SwigDirectorMethodAbort(global::System.IntPtr async_adapter) {
    Abort((async_adapter == global::System.IntPtr.Zero) ? null : new WrappedServiceSkelAsyncAdapter(async_adapter, true));
  }

  private void SwigDirectorMethodClose(global::System.IntPtr async_adapter) {
    Close((async_adapter == global::System.IntPtr.Zero) ? null : new WrappedServiceSkelAsyncAdapter(async_adapter, true));
  }

  public delegate global::System.IntPtr SwigDelegateWrappedGeneratorServerDirector_0(global::System.IntPtr m, global::System.IntPtr async_adaptor);
  public delegate void SwigDelegateWrappedGeneratorServerDirector_1(global::System.IntPtr async_adapter);
  public delegate void SwigDelegateWrappedGeneratorServerDirector_2(global::System.IntPtr async_adapter);

  private SwigDelegateWrappedGeneratorServerDirector_0 swigDelegate0;
  private SwigDelegateWrappedGeneratorServerDirector_1 swigDelegate1;
  private SwigDelegateWrappedGeneratorServerDirector_2 swigDelegate2;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(MessageElement), typeof(WrappedServiceSkelAsyncAdapter) };
  private static global::System.Type[] swigMethodTypes1 = new global::System.Type[] { typeof(WrappedServiceSkelAsyncAdapter) };
  private static global::System.Type[] swigMethodTypes2 = new global::System.Type[] { typeof(WrappedServiceSkelAsyncAdapter) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedServiceStubDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedServiceStubDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedServiceStubDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedServiceStubDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedServiceStubDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual void DispatchEvent(string EventName, vectorptr_messageelement args) {
    RobotRaconteurNETPINVOKE.WrappedServiceStubDirector_DispatchEvent(swigCPtr, EventName, vectorptr_messageelement.getCPtr(args));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual MessageElement CallbackCall(string CallbackName, vectorptr_messageelement args) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceStubDirector_CallbackCall(swigCPtr, CallbackName, vectorptr_messageelement.getCPtr(args));
    MessageElement ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElement(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedServiceStubDirector() : this(RobotRaconteurNETPINVOKE.new_WrappedServiceStubDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("DispatchEvent", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateWrappedServiceStubDirector_0(SwigDirectorMethodDispatchEvent);
    if (SwigDerivedClassHasMethod("CallbackCall", swigMethodTypes1))
      swigDelegate1 = new SwigDelegateWrappedServiceStubDirector_1(SwigDirectorMethodCallbackCall);
    RobotRaconteurNETPINVOKE.WrappedServiceStubDirector_director_connect(swigCPtr, swigDelegate0, swigDelegate1);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(WrappedServiceStubDirector));
    return hasDerivedMethod;
  }

  private void SwigDirectorMethodDispatchEvent(string EventName, global::System.IntPtr args) {
    DispatchEvent(EventName, new vectorptr_messageelement(args, true));
  }

  private global::System.IntPtr SwigDirectorMethodCallbackCall(string CallbackName, global::System.IntPtr args) {
    return MessageElement.getCPtr(CallbackCall(CallbackName, new vectorptr_messageelement(args, true))).Handle;
  }

  public delegate void SwigDelegateWrappedServiceStubDirector_0(string EventName, global::System.IntPtr args);
  public delegate global::System.IntPtr SwigDelegateWrappedServiceStubDirector_1(string CallbackName, global::System.IntPtr args);

  private SwigDelegateWrappedServiceStubDirector_0 swigDelegate0;
  private SwigDelegateWrappedServiceStubDirector_1 swigDelegate1;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(string), typeof(vectorptr_messageelement) };
  private static global::System.Type[] swigMethodTypes1 = new global::System.Type[] { typeof(string), typeof(vectorptr_messageelement) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class AsyncStubReturnDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal AsyncStubReturnDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(AsyncStubReturnDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~AsyncStubReturnDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_AsyncStubReturnDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual void handler(WrappedServiceStub stub, HandlerErrorInfo error) {
    RobotRaconteurNETPINVOKE.AsyncStubReturnDirector_handler(swigCPtr, WrappedServiceStub.getCPtr(stub), HandlerErrorInfo.getCPtr(error));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public AsyncStubReturnDirector() : this(RobotRaconteurNETPINVOKE.new_AsyncStubReturnDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("handler", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateAsyncStubReturnDirector_0(SwigDirectorMethodhandler);
    RobotRaconteurNETPINVOKE.AsyncStubReturnDirector_director_connect(swigCPtr, swigDelegate0);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(AsyncStubReturnDirector));
    return hasDerivedMethod;
  }

  private void SwigDirectorMethodhandler(global::System.IntPtr stub, global::System.IntPtr error) {
    handler((stub == global::System.IntPtr.Zero) ? null : new WrappedServiceStub(stub, true), new HandlerErrorInfo(error, false));
  }

  public delegate void SwigDelegateAsyncStubReturnDirector_0(global::System.IntPtr stub, global::System.IntPtr error);

  private SwigDelegateAsyncStubReturnDirector_0 swigDelegate0;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(WrappedServiceStub), typeof(HandlerErrorInfo) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedDirectorLock : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal WrappedDirectorLock(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedDirectorLock obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedDirectorLock() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_WrappedDirectorLock(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public bool valid() {
    bool ret = RobotRaconteurNETPINVOKE.WrappedDirectorLock_valid(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedServiceStub : RRObject {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnDerived;

  internal WrappedServiceStub(global::System.IntPtr cPtr, bool cMemoryOwn) : base(RobotRaconteurNETPINVOKE.WrappedServiceStub_SWIGSmartPtrUpcast(cPtr), true) {
    swigCMemOwnDerived = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedServiceStub obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  protected override void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnDerived) {
          swigCMemOwnDerived = false;
          RobotRaconteurNETPINVOKE.delete_WrappedServiceStub(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
      base.Dispose(disposing);
    }
  }

  public virtual MessageElement PropertyGet(string PropertyName) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceStub_PropertyGet(swigCPtr, PropertyName);
    MessageElement ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElement(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual void PropertySet(string PropertyName, MessageElement value) {
    RobotRaconteurNETPINVOKE.WrappedServiceStub_PropertySet(swigCPtr, PropertyName, MessageElement.getCPtr(value));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual MessageElement FunctionCall(string FunctionName, vectorptr_messageelement args) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceStub_FunctionCall(swigCPtr, FunctionName, vectorptr_messageelement.getCPtr(args));
    MessageElement ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElement(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual WrappedGeneratorClient GeneratorFunctionCall(string FunctionName, vectorptr_messageelement args) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceStub_GeneratorFunctionCall(swigCPtr, FunctionName, vectorptr_messageelement.getCPtr(args));
    WrappedGeneratorClient ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedGeneratorClient(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual void async_PropertyGet(string PropertyName, int timeout, AsyncRequestDirector handler, int id) {
    RobotRaconteurNETPINVOKE.WrappedServiceStub_async_PropertyGet(swigCPtr, PropertyName, timeout, AsyncRequestDirector.getCPtr(handler), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void async_PropertySet(string PropertyName, MessageElement value, int timeout, AsyncRequestDirector handler, int id) {
    RobotRaconteurNETPINVOKE.WrappedServiceStub_async_PropertySet(swigCPtr, PropertyName, MessageElement.getCPtr(value), timeout, AsyncRequestDirector.getCPtr(handler), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void async_FunctionCall(string FunctionName, vectorptr_messageelement args, int timeout, AsyncRequestDirector handler, int id) {
    RobotRaconteurNETPINVOKE.WrappedServiceStub_async_FunctionCall(swigCPtr, FunctionName, vectorptr_messageelement.getCPtr(args), timeout, AsyncRequestDirector.getCPtr(handler), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void async_GeneratorFunctionCall(string FunctionName, vectorptr_messageelement args, int timeout, AsyncGeneratorClientReturnDirector handler, int id) {
    RobotRaconteurNETPINVOKE.WrappedServiceStub_async_GeneratorFunctionCall(swigCPtr, FunctionName, vectorptr_messageelement.getCPtr(args), timeout, AsyncGeneratorClientReturnDirector.getCPtr(handler), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void async_FindObjRef(string path, int timeout, AsyncStubReturnDirector handler, int id) {
    RobotRaconteurNETPINVOKE.WrappedServiceStub_async_FindObjRef__SWIG_0(swigCPtr, path, timeout, AsyncStubReturnDirector.getCPtr(handler), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void async_FindObjRef(string path, string ind, int timeout, AsyncStubReturnDirector handler, int id) {
    RobotRaconteurNETPINVOKE.WrappedServiceStub_async_FindObjRef__SWIG_1(swigCPtr, path, ind, timeout, AsyncStubReturnDirector.getCPtr(handler), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void async_FindObjRefTyped(string path, string type, int timeout, AsyncStubReturnDirector handler, int id) {
    RobotRaconteurNETPINVOKE.WrappedServiceStub_async_FindObjRefTyped__SWIG_0(swigCPtr, path, type, timeout, AsyncStubReturnDirector.getCPtr(handler), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void async_FindObjRefTyped(string path, string ind, string type, int timeout, AsyncStubReturnDirector handler, int id) {
    RobotRaconteurNETPINVOKE.WrappedServiceStub_async_FindObjRefTyped__SWIG_1(swigCPtr, path, ind, type, timeout, AsyncStubReturnDirector.getCPtr(handler), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual WrappedPipeClient GetPipe(string membername) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceStub_GetPipe(swigCPtr, membername);
    WrappedPipeClient ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedPipeClient(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual WrappedWireClient GetWire(string membername) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceStub_GetWire(swigCPtr, membername);
    WrappedWireClient ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedWireClient(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public int GetObjectHeapID() {
    int ret = RobotRaconteurNETPINVOKE.WrappedServiceStub_GetObjectHeapID(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedServiceStub FindObjRef(string n) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceStub_FindObjRef__SWIG_0(swigCPtr, n);
    WrappedServiceStub ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceStub(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedServiceStub FindObjRef(string n, string i) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceStub_FindObjRef__SWIG_1(swigCPtr, n, i);
    WrappedServiceStub ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceStub(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedServiceStub FindObjRefTyped(string n, string objecttype) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceStub_FindObjRefTyped__SWIG_0(swigCPtr, n, objecttype);
    WrappedServiceStub ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceStub(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedServiceStub FindObjRefTyped(string n, string i, string objecttype) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceStub_FindObjRefTyped__SWIG_1(swigCPtr, n, i, objecttype);
    WrappedServiceStub ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceStub(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual ArrayMemoryBase GetArrayMemory(string membername) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceStub_GetArrayMemory(swigCPtr, membername);
    ArrayMemoryBase ret = (cPtr == global::System.IntPtr.Zero) ? null : new ArrayMemoryBase(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual MultiDimArrayMemoryBase GetMultiDimArrayMemory(string membername) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceStub_GetMultiDimArrayMemory(swigCPtr, membername);
    MultiDimArrayMemoryBase ret = (cPtr == global::System.IntPtr.Zero) ? null : new MultiDimArrayMemoryBase(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual WrappedPodArrayMemoryClient GetPodArrayMemory(string membername) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceStub_GetPodArrayMemory(swigCPtr, membername);
    WrappedPodArrayMemoryClient ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedPodArrayMemoryClient(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual WrappedPodMultiDimArrayMemoryClient GetPodMultiDimArrayMemory(string membername) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceStub_GetPodMultiDimArrayMemory(swigCPtr, membername);
    WrappedPodMultiDimArrayMemoryClient ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedPodMultiDimArrayMemoryClient(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual WrappedNamedArrayMemoryClient GetNamedArrayMemory(string membername) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceStub_GetNamedArrayMemory(swigCPtr, membername);
    WrappedNamedArrayMemoryClient ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedNamedArrayMemoryClient(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual WrappedNamedMultiDimArrayMemoryClient GetNamedMultiDimArrayMemory(string membername) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceStub_GetNamedMultiDimArrayMemory(swigCPtr, membername);
    WrappedNamedMultiDimArrayMemoryClient ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedNamedMultiDimArrayMemoryClient(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual void RRClose() {
    RobotRaconteurNETPINVOKE.WrappedServiceStub_RRClose(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public ServiceEntryDefinition RR_objecttype {
    set {
      RobotRaconteurNETPINVOKE.WrappedServiceStub_RR_objecttype_set(swigCPtr, ServiceEntryDefinition.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceStub_RR_objecttype_get(swigCPtr);
      ServiceEntryDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new ServiceEntryDefinition(cPtr, true);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public bool SetRRDirector(WrappedServiceStubDirector director, int id) {
    bool ret = RobotRaconteurNETPINVOKE.WrappedServiceStub_SetRRDirector(swigCPtr, WrappedServiceStubDirector.getCPtr(director), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedDirectorLock GetRRDirectorLock() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceStub_GetRRDirectorLock(swigCPtr);
    WrappedDirectorLock ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedDirectorLock(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public RobotRaconteurNode RRGetNode() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceStub_RRGetNode(swigCPtr);
    RobotRaconteurNode ret = (cPtr == global::System.IntPtr.Zero) ? null : new RobotRaconteurNode(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedServiceSkelDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedServiceSkelDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedServiceSkelDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedServiceSkelDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedServiceSkelDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual void Init(WrappedServiceSkel skel) {
    RobotRaconteurNETPINVOKE.WrappedServiceSkelDirector_Init(swigCPtr, WrappedServiceSkel.getCPtr(skel));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual MessageElement _CallGetProperty(string name, WrappedServiceSkelAsyncAdapter async_adaptor) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSkelDirector__CallGetProperty(swigCPtr, name, WrappedServiceSkelAsyncAdapter.getCPtr(async_adaptor));
    MessageElement ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElement(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual void _CallSetProperty(string name, MessageElement m, WrappedServiceSkelAsyncAdapter async_adaptor) {
    RobotRaconteurNETPINVOKE.WrappedServiceSkelDirector__CallSetProperty(swigCPtr, name, MessageElement.getCPtr(m), WrappedServiceSkelAsyncAdapter.getCPtr(async_adaptor));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual MessageElement _CallFunction(string name, vectorptr_messageelement m, WrappedServiceSkelAsyncAdapter async_adaptor) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSkelDirector__CallFunction(swigCPtr, name, vectorptr_messageelement.getCPtr(m), WrappedServiceSkelAsyncAdapter.getCPtr(async_adaptor));
    MessageElement ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElement(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual WrappedRRObject _GetSubObj(string name, string index) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSkelDirector__GetSubObj(swigCPtr, name, index);
    WrappedRRObject ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedRRObject(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual WrappedArrayMemoryDirector _GetArrayMemory(string name) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSkelDirector__GetArrayMemory(swigCPtr, name);
    WrappedArrayMemoryDirector ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedArrayMemoryDirector(cPtr, false);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual WrappedMultiDimArrayMemoryDirector _GetMultiDimArrayMemory(string name) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSkelDirector__GetMultiDimArrayMemory(swigCPtr, name);
    WrappedMultiDimArrayMemoryDirector ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedMultiDimArrayMemoryDirector(cPtr, false);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual WrappedPodArrayMemoryDirector _GetPodArrayMemory(string name) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSkelDirector__GetPodArrayMemory(swigCPtr, name);
    WrappedPodArrayMemoryDirector ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedPodArrayMemoryDirector(cPtr, false);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual WrappedPodMultiDimArrayMemoryDirector _GetPodMultiDimArrayMemory(string name) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSkelDirector__GetPodMultiDimArrayMemory(swigCPtr, name);
    WrappedPodMultiDimArrayMemoryDirector ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedPodMultiDimArrayMemoryDirector(cPtr, false);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual WrappedNamedArrayMemoryDirector _GetNamedArrayMemory(string name) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSkelDirector__GetNamedArrayMemory(swigCPtr, name);
    WrappedNamedArrayMemoryDirector ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedNamedArrayMemoryDirector(cPtr, false);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual WrappedNamedMultiDimArrayMemoryDirector _GetNamedMultiDimArrayMemory(string name) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSkelDirector__GetNamedMultiDimArrayMemory(swigCPtr, name);
    WrappedNamedMultiDimArrayMemoryDirector ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedNamedMultiDimArrayMemoryDirector(cPtr, false);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual void MonitorEnter(int timeout) {
    RobotRaconteurNETPINVOKE.WrappedServiceSkelDirector_MonitorEnter(swigCPtr, timeout);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void MonitorExit() {
    RobotRaconteurNETPINVOKE.WrappedServiceSkelDirector_MonitorExit(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void ReleaseCastObject() {
    RobotRaconteurNETPINVOKE.WrappedServiceSkelDirector_ReleaseCastObject(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public WrappedServiceSkelDirector() : this(RobotRaconteurNETPINVOKE.new_WrappedServiceSkelDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("Init", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateWrappedServiceSkelDirector_0(SwigDirectorMethodInit);
    if (SwigDerivedClassHasMethod("_CallGetProperty", swigMethodTypes1))
      swigDelegate1 = new SwigDelegateWrappedServiceSkelDirector_1(SwigDirectorMethod_CallGetProperty);
    if (SwigDerivedClassHasMethod("_CallSetProperty", swigMethodTypes2))
      swigDelegate2 = new SwigDelegateWrappedServiceSkelDirector_2(SwigDirectorMethod_CallSetProperty);
    if (SwigDerivedClassHasMethod("_CallFunction", swigMethodTypes3))
      swigDelegate3 = new SwigDelegateWrappedServiceSkelDirector_3(SwigDirectorMethod_CallFunction);
    if (SwigDerivedClassHasMethod("_GetSubObj", swigMethodTypes4))
      swigDelegate4 = new SwigDelegateWrappedServiceSkelDirector_4(SwigDirectorMethod_GetSubObj);
    if (SwigDerivedClassHasMethod("_GetArrayMemory", swigMethodTypes5))
      swigDelegate5 = new SwigDelegateWrappedServiceSkelDirector_5(SwigDirectorMethod_GetArrayMemory);
    if (SwigDerivedClassHasMethod("_GetMultiDimArrayMemory", swigMethodTypes6))
      swigDelegate6 = new SwigDelegateWrappedServiceSkelDirector_6(SwigDirectorMethod_GetMultiDimArrayMemory);
    if (SwigDerivedClassHasMethod("_GetPodArrayMemory", swigMethodTypes7))
      swigDelegate7 = new SwigDelegateWrappedServiceSkelDirector_7(SwigDirectorMethod_GetPodArrayMemory);
    if (SwigDerivedClassHasMethod("_GetPodMultiDimArrayMemory", swigMethodTypes8))
      swigDelegate8 = new SwigDelegateWrappedServiceSkelDirector_8(SwigDirectorMethod_GetPodMultiDimArrayMemory);
    if (SwigDerivedClassHasMethod("_GetNamedArrayMemory", swigMethodTypes9))
      swigDelegate9 = new SwigDelegateWrappedServiceSkelDirector_9(SwigDirectorMethod_GetNamedArrayMemory);
    if (SwigDerivedClassHasMethod("_GetNamedMultiDimArrayMemory", swigMethodTypes10))
      swigDelegate10 = new SwigDelegateWrappedServiceSkelDirector_10(SwigDirectorMethod_GetNamedMultiDimArrayMemory);
    if (SwigDerivedClassHasMethod("MonitorEnter", swigMethodTypes11))
      swigDelegate11 = new SwigDelegateWrappedServiceSkelDirector_11(SwigDirectorMethodMonitorEnter);
    if (SwigDerivedClassHasMethod("MonitorExit", swigMethodTypes12))
      swigDelegate12 = new SwigDelegateWrappedServiceSkelDirector_12(SwigDirectorMethodMonitorExit);
    if (SwigDerivedClassHasMethod("ReleaseCastObject", swigMethodTypes13))
      swigDelegate13 = new SwigDelegateWrappedServiceSkelDirector_13(SwigDirectorMethodReleaseCastObject);
    RobotRaconteurNETPINVOKE.WrappedServiceSkelDirector_director_connect(swigCPtr, swigDelegate0, swigDelegate1, swigDelegate2, swigDelegate3, swigDelegate4, swigDelegate5, swigDelegate6, swigDelegate7, swigDelegate8, swigDelegate9, swigDelegate10, swigDelegate11, swigDelegate12, swigDelegate13);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(WrappedServiceSkelDirector));
    return hasDerivedMethod;
  }

  private void SwigDirectorMethodInit(global::System.IntPtr skel) {
    Init((skel == global::System.IntPtr.Zero) ? null : new WrappedServiceSkel(skel, true));
  }

  private global::System.IntPtr SwigDirectorMethod_CallGetProperty(string name, global::System.IntPtr async_adaptor) {
    return MessageElement.getCPtr(_CallGetProperty(name, (async_adaptor == global::System.IntPtr.Zero) ? null : new WrappedServiceSkelAsyncAdapter(async_adaptor, true))).Handle;
  }

  private void SwigDirectorMethod_CallSetProperty(string name, global::System.IntPtr m, global::System.IntPtr async_adaptor) {
    _CallSetProperty(name, (m == global::System.IntPtr.Zero) ? null : new MessageElement(m, true), (async_adaptor == global::System.IntPtr.Zero) ? null : new WrappedServiceSkelAsyncAdapter(async_adaptor, true));
  }

  private global::System.IntPtr SwigDirectorMethod_CallFunction(string name, global::System.IntPtr m, global::System.IntPtr async_adaptor) {
    return MessageElement.getCPtr(_CallFunction(name, new vectorptr_messageelement(m, false), (async_adaptor == global::System.IntPtr.Zero) ? null : new WrappedServiceSkelAsyncAdapter(async_adaptor, true))).Handle;
  }

  private global::System.IntPtr SwigDirectorMethod_GetSubObj(string name, string index) {
    return WrappedRRObject.getCPtr(_GetSubObj(name, index)).Handle;
  }

  private global::System.IntPtr SwigDirectorMethod_GetArrayMemory(string name) {
    return WrappedArrayMemoryDirector.getCPtr(_GetArrayMemory(name)).Handle;
  }

  private global::System.IntPtr SwigDirectorMethod_GetMultiDimArrayMemory(string name) {
    return WrappedMultiDimArrayMemoryDirector.getCPtr(_GetMultiDimArrayMemory(name)).Handle;
  }

  private global::System.IntPtr SwigDirectorMethod_GetPodArrayMemory(string name) {
    return WrappedPodArrayMemoryDirector.getCPtr(_GetPodArrayMemory(name)).Handle;
  }

  private global::System.IntPtr SwigDirectorMethod_GetPodMultiDimArrayMemory(string name) {
    return WrappedPodMultiDimArrayMemoryDirector.getCPtr(_GetPodMultiDimArrayMemory(name)).Handle;
  }

  private global::System.IntPtr SwigDirectorMethod_GetNamedArrayMemory(string name) {
    return WrappedNamedArrayMemoryDirector.getCPtr(_GetNamedArrayMemory(name)).Handle;
  }

  private global::System.IntPtr SwigDirectorMethod_GetNamedMultiDimArrayMemory(string name) {
    return WrappedNamedMultiDimArrayMemoryDirector.getCPtr(_GetNamedMultiDimArrayMemory(name)).Handle;
  }

  private void SwigDirectorMethodMonitorEnter(int timeout) {
    MonitorEnter(timeout);
  }

  private void SwigDirectorMethodMonitorExit() {
    MonitorExit();
  }

  private void SwigDirectorMethodReleaseCastObject() {
    ReleaseCastObject();
  }

  public delegate void SwigDelegateWrappedServiceSkelDirector_0(global::System.IntPtr skel);
  public delegate global::System.IntPtr SwigDelegateWrappedServiceSkelDirector_1(string name, global::System.IntPtr async_adaptor);
  public delegate void SwigDelegateWrappedServiceSkelDirector_2(string name, global::System.IntPtr m, global::System.IntPtr async_adaptor);
  public delegate global::System.IntPtr SwigDelegateWrappedServiceSkelDirector_3(string name, global::System.IntPtr m, global::System.IntPtr async_adaptor);
  public delegate global::System.IntPtr SwigDelegateWrappedServiceSkelDirector_4(string name, string index);
  public delegate global::System.IntPtr SwigDelegateWrappedServiceSkelDirector_5(string name);
  public delegate global::System.IntPtr SwigDelegateWrappedServiceSkelDirector_6(string name);
  public delegate global::System.IntPtr SwigDelegateWrappedServiceSkelDirector_7(string name);
  public delegate global::System.IntPtr SwigDelegateWrappedServiceSkelDirector_8(string name);
  public delegate global::System.IntPtr SwigDelegateWrappedServiceSkelDirector_9(string name);
  public delegate global::System.IntPtr SwigDelegateWrappedServiceSkelDirector_10(string name);
  public delegate void SwigDelegateWrappedServiceSkelDirector_11(int timeout);
  public delegate void SwigDelegateWrappedServiceSkelDirector_12();
  public delegate void SwigDelegateWrappedServiceSkelDirector_13();

  private SwigDelegateWrappedServiceSkelDirector_0 swigDelegate0;
  private SwigDelegateWrappedServiceSkelDirector_1 swigDelegate1;
  private SwigDelegateWrappedServiceSkelDirector_2 swigDelegate2;
  private SwigDelegateWrappedServiceSkelDirector_3 swigDelegate3;
  private SwigDelegateWrappedServiceSkelDirector_4 swigDelegate4;
  private SwigDelegateWrappedServiceSkelDirector_5 swigDelegate5;
  private SwigDelegateWrappedServiceSkelDirector_6 swigDelegate6;
  private SwigDelegateWrappedServiceSkelDirector_7 swigDelegate7;
  private SwigDelegateWrappedServiceSkelDirector_8 swigDelegate8;
  private SwigDelegateWrappedServiceSkelDirector_9 swigDelegate9;
  private SwigDelegateWrappedServiceSkelDirector_10 swigDelegate10;
  private SwigDelegateWrappedServiceSkelDirector_11 swigDelegate11;
  private SwigDelegateWrappedServiceSkelDirector_12 swigDelegate12;
  private SwigDelegateWrappedServiceSkelDirector_13 swigDelegate13;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(WrappedServiceSkel) };
  private static global::System.Type[] swigMethodTypes1 = new global::System.Type[] { typeof(string), typeof(WrappedServiceSkelAsyncAdapter) };
  private static global::System.Type[] swigMethodTypes2 = new global::System.Type[] { typeof(string), typeof(MessageElement), typeof(WrappedServiceSkelAsyncAdapter) };
  private static global::System.Type[] swigMethodTypes3 = new global::System.Type[] { typeof(string), typeof(vectorptr_messageelement), typeof(WrappedServiceSkelAsyncAdapter) };
  private static global::System.Type[] swigMethodTypes4 = new global::System.Type[] { typeof(string), typeof(string) };
  private static global::System.Type[] swigMethodTypes5 = new global::System.Type[] { typeof(string) };
  private static global::System.Type[] swigMethodTypes6 = new global::System.Type[] { typeof(string) };
  private static global::System.Type[] swigMethodTypes7 = new global::System.Type[] { typeof(string) };
  private static global::System.Type[] swigMethodTypes8 = new global::System.Type[] { typeof(string) };
  private static global::System.Type[] swigMethodTypes9 = new global::System.Type[] { typeof(string) };
  private static global::System.Type[] swigMethodTypes10 = new global::System.Type[] { typeof(string) };
  private static global::System.Type[] swigMethodTypes11 = new global::System.Type[] { typeof(int) };
  private static global::System.Type[] swigMethodTypes12 = new global::System.Type[] {  };
  private static global::System.Type[] swigMethodTypes13 = new global::System.Type[] {  };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedRRObject : RRObject {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnDerived;

  internal WrappedRRObject(global::System.IntPtr cPtr, bool cMemoryOwn) : base(RobotRaconteurNETPINVOKE.WrappedRRObject_SWIGSmartPtrUpcast(cPtr), true) {
    swigCMemOwnDerived = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedRRObject obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  protected override void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnDerived) {
          swigCMemOwnDerived = false;
          RobotRaconteurNETPINVOKE.delete_WrappedRRObject(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
      base.Dispose(disposing);
    }
  }

  public WrappedRRObject(string type, WrappedServiceSkelDirector RR_Director, int id) : this(RobotRaconteurNETPINVOKE.new_WrappedRRObject(type, WrappedServiceSkelDirector.getCPtr(RR_Director), id), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public string Type {
    set {
      RobotRaconteurNETPINVOKE.WrappedRRObject_Type_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.WrappedRRObject_Type_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedServiceSkel : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal WrappedServiceSkel(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedServiceSkel obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedServiceSkel() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_WrappedServiceSkel(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public ServiceEntryDefinition Type {
    set {
      RobotRaconteurNETPINVOKE.WrappedServiceSkel_Type_set(swigCPtr, ServiceEntryDefinition.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSkel_Type_get(swigCPtr);
      ServiceEntryDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new ServiceEntryDefinition(cPtr, true);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public WrappedRRObject castobj {
    set {
      RobotRaconteurNETPINVOKE.WrappedServiceSkel_castobj_set(swigCPtr, WrappedRRObject.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSkel_castobj_get(swigCPtr);
      WrappedRRObject ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedRRObject(cPtr, true);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public virtual WrappedPipeServer GetPipe(string membername) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSkel_GetPipe(swigCPtr, membername);
    WrappedPipeServer ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedPipeServer(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual WrappedWireServer GetWire(string membername) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSkel_GetWire(swigCPtr, membername);
    WrappedWireServer ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedWireServer(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual void WrappedDispatchEvent(string name, vectorptr_messageelement m) {
    RobotRaconteurNETPINVOKE.WrappedServiceSkel_WrappedDispatchEvent(swigCPtr, name, vectorptr_messageelement.getCPtr(m));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual MessageElement WrappedCallbackCall(string name, uint endpoint, vectorptr_messageelement m) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSkel_WrappedCallbackCall(swigCPtr, name, endpoint, vectorptr_messageelement.getCPtr(m));
    MessageElement ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElement(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public RobotRaconteurNode RRGetNode() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSkel_RRGetNode(swigCPtr);
    RobotRaconteurNode ret = (cPtr == global::System.IntPtr.Zero) ? null : new RobotRaconteurNode(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual int RegisterGeneratorServer(string function_name, WrappedGeneratorServerDirector gen) {
    int ret = RobotRaconteurNETPINVOKE.WrappedServiceSkel_RegisterGeneratorServer(swigCPtr, function_name, WrappedGeneratorServerDirector.getCPtr(gen));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual string GetServicePath() {
    string ret = RobotRaconteurNETPINVOKE.WrappedServiceSkel_GetServicePath(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual ServerContext GetContext() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSkel_GetContext(swigCPtr);
    ServerContext ret = (cPtr == global::System.IntPtr.Zero) ? null : new ServerContext(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedServiceSkel() : this(RobotRaconteurNETPINVOKE.new_WrappedServiceSkel(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class ServerServiceListenerDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal ServerServiceListenerDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(ServerServiceListenerDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~ServerServiceListenerDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_ServerServiceListenerDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public int objectheapid {
    set {
      RobotRaconteurNETPINVOKE.ServerServiceListenerDirector_objectheapid_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      int ret = RobotRaconteurNETPINVOKE.ServerServiceListenerDirector_objectheapid_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public ServerServiceListenerDirector() : this(RobotRaconteurNETPINVOKE.new_ServerServiceListenerDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  public virtual void Callback(int code, uint endpoint) {
    if (SwigDerivedClassHasMethod("Callback", swigMethodTypes0)) RobotRaconteurNETPINVOKE.ServerServiceListenerDirector_CallbackSwigExplicitServerServiceListenerDirector(swigCPtr, code, endpoint); else RobotRaconteurNETPINVOKE.ServerServiceListenerDirector_Callback(swigCPtr, code, endpoint);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("Callback", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateServerServiceListenerDirector_0(SwigDirectorMethodCallback);
    RobotRaconteurNETPINVOKE.ServerServiceListenerDirector_director_connect(swigCPtr, swigDelegate0);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(ServerServiceListenerDirector));
    return hasDerivedMethod;
  }

  private void SwigDirectorMethodCallback(int code, uint endpoint) {
    Callback(code, endpoint);
  }

  public delegate void SwigDelegateServerServiceListenerDirector_0(int code, uint endpoint);

  private SwigDelegateServerServiceListenerDirector_0 swigDelegate0;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(int), typeof(uint) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class ServerContext : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal ServerContext(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(ServerContext obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~ServerContext() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_ServerContext(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

public static string CurrentServicePath { get { return GetCurrentServicePath(); } }
public static ServerContext CurrentServerContext { get { return GetCurrentServerContext(); } }

public delegate void ServerServiceListenerDelegate(ServerContext service, ServerServiceListenerEventType ev, object parameter);
public void SetServiceAttributes(System.Collections.Generic.Dictionary<string, object> attributes)
{
  MessageElement m = new MessageElement("value",RobotRaconteurNode.s.PackVarType(attributes));
  _SetServiceAttributes(m);

}

public void AddServerServiceListener(ServerServiceListenerDelegate listener)
{
  ServerServiceListenerDirectorNET d = new ServerServiceListenerDirectorNET(this, listener);
  d.objectheapid = RRObjectHeap.AddObject(d);

  _AddServerServiceListener(d);
}

public void ReleaseServicePath(string path)
{
	_ReleaseServicePath(path);
}

public void ReleaseServicePath(string path, uint[] endpoints)
{
	vectoruint32 o=new vectoruint32();
	foreach(uint e in endpoints)
	{
		o.Add(e);
	}

	_ReleaseServicePath(path,o);
}


  public static string GetCurrentServicePath() {
    string ret = RobotRaconteurNETPINVOKE.ServerContext_GetCurrentServicePath();
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void _ReleaseServicePath(string path) {
    RobotRaconteurNETPINVOKE.ServerContext__ReleaseServicePath__SWIG_0(swigCPtr, path);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private void _ReleaseServicePath(string path, vectoruint32 endpoints) {
    RobotRaconteurNETPINVOKE.ServerContext__ReleaseServicePath__SWIG_1(swigCPtr, path, vectoruint32.getCPtr(endpoints));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static ServerContext GetCurrentServerContext() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.ServerContext_GetCurrentServerContext();
    ServerContext ret = (cPtr == global::System.IntPtr.Zero) ? null : new ServerContext(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public virtual void KickUser(string username) {
    RobotRaconteurNETPINVOKE.ServerContext_KickUser(swigCPtr, username);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private void _AddServerServiceListener(ServerServiceListenerDirector listener) {
    RobotRaconteurNETPINVOKE.ServerContext__AddServerServiceListener(swigCPtr, ServerServiceListenerDirector.getCPtr(listener));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private void _SetServiceAttributes(MessageElement attributes) {
    RobotRaconteurNETPINVOKE.ServerContext__SetServiceAttributes(swigCPtr, MessageElement.getCPtr(attributes));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RequestObjectLock(string servicepath, string username) {
    RobotRaconteurNETPINVOKE.ServerContext_RequestObjectLock(swigCPtr, servicepath, username);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RequestClientObjectLock(string servicepath, string username, uint endpoint) {
    RobotRaconteurNETPINVOKE.ServerContext_RequestClientObjectLock(swigCPtr, servicepath, username, endpoint);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void ReleaseObjectLock(string servicepath, string username, bool override_) {
    RobotRaconteurNETPINVOKE.ServerContext_ReleaseObjectLock(swigCPtr, servicepath, username, override_);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public string GetObjectLockUsername(string servicepath) {
    string ret = RobotRaconteurNETPINVOKE.ServerContext_GetObjectLockUsername(swigCPtr, servicepath);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public RobotRaconteurNode GetNode() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.ServerContext_GetNode(swigCPtr);
    RobotRaconteurNode ret = (cPtr == global::System.IntPtr.Zero) ? null : new RobotRaconteurNode(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public vectorstring GetExtraImports() {
    vectorstring ret = new vectorstring(RobotRaconteurNETPINVOKE.ServerContext_GetExtraImports(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void AddExtraImport(string import_) {
    RobotRaconteurNETPINVOKE.ServerContext_AddExtraImport(swigCPtr, import_);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public bool RemoveExtraImport(string import_) {
    bool ret = RobotRaconteurNETPINVOKE.ServerContext_RemoveExtraImport(swigCPtr, import_);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public vectorstring GetCandidateConnectionURLs() {
    vectorstring ret = new vectorstring(RobotRaconteurNETPINVOKE.ServerContext_GetCandidateConnectionURLs(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void PrintCandidateConnectionURLs() {
    RobotRaconteurNETPINVOKE.ServerContext_PrintCandidateConnectionURLs(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void LogCandidateConnectionURLs(LogLevel level) {
    RobotRaconteurNETPINVOKE.ServerContext_LogCandidateConnectionURLs__SWIG_0(swigCPtr, (int)level);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void LogCandidateConnectionURLs() {
    RobotRaconteurNETPINVOKE.ServerContext_LogCandidateConnectionURLs__SWIG_1(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public partial class AuthenticatedUser : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal AuthenticatedUser(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(AuthenticatedUser obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~AuthenticatedUser() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_AuthenticatedUser(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  private string _GetUsername() {
    string ret = RobotRaconteurNETPINVOKE.AuthenticatedUser__GetUsername(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private vectorstring _GetPrivileges() {
    vectorstring ret = new vectorstring(RobotRaconteurNETPINVOKE.AuthenticatedUser__GetPrivileges(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private vectorstring _GetProperties() {
    vectorstring ret = new vectorstring(RobotRaconteurNETPINVOKE.AuthenticatedUser__GetProperties(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private DateTime _GetLoginTime() {
    long date_ticks = RobotRaconteurNETPINVOKE.AuthenticatedUser__GetLoginTime(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return new DateTime(date_ticks + (new DateTime(1970,1,1)).Ticks);
}

  private DateTime _GetLastAccessTime() {
    long date_ticks = RobotRaconteurNETPINVOKE.AuthenticatedUser__GetLastAccessTime(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return new DateTime(date_ticks + (new DateTime(1970,1,1)).Ticks);
}

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class ServerEndpoint : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal ServerEndpoint(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(ServerEndpoint obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~ServerEndpoint() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_ServerEndpoint(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

public static uint CurrentEndpoint { get { return GetCurrentEndpoint(); } }


  public static uint GetCurrentEndpoint() {
    uint ret = RobotRaconteurNETPINVOKE.ServerEndpoint_GetCurrentEndpoint();
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static AuthenticatedUser GetCurrentAuthenticatedUser() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.ServerEndpoint_GetCurrentAuthenticatedUser();
    AuthenticatedUser ret = (cPtr == global::System.IntPtr.Zero) ? null : new AuthenticatedUser(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public partial class WrappedServiceSkelAsyncAdapter : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal WrappedServiceSkelAsyncAdapter(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedServiceSkelAsyncAdapter obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedServiceSkelAsyncAdapter() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_WrappedServiceSkelAsyncAdapter(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public void MakeAsync() {
    RobotRaconteurNETPINVOKE.WrappedServiceSkelAsyncAdapter_MakeAsync(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public bool IsAsync() {
    bool ret = RobotRaconteurNETPINVOKE.WrappedServiceSkelAsyncAdapter_IsAsync(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void End(HandlerErrorInfo err) {
    RobotRaconteurNETPINVOKE.WrappedServiceSkelAsyncAdapter_End__SWIG_0(swigCPtr, HandlerErrorInfo.getCPtr(err));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void End(MessageElement ret, HandlerErrorInfo err) {
    RobotRaconteurNETPINVOKE.WrappedServiceSkelAsyncAdapter_End__SWIG_1(swigCPtr, MessageElement.getCPtr(ret), HandlerErrorInfo.getCPtr(err));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public partial class NativeUserAuthenticator : IUserAuthenticator, IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal NativeUserAuthenticator(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(NativeUserAuthenticator obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~NativeUserAuthenticator() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_NativeUserAuthenticator(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  private AuthenticatedUser _AuthenticateUser(string username, MessageElement credentials, ServerContext context) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.NativeUserAuthenticator__AuthenticateUser(swigCPtr, username, MessageElement.getCPtr(credentials), ServerContext.getCPtr(context));
    AuthenticatedUser ret = (cPtr == global::System.IntPtr.Zero) ? null : new AuthenticatedUser(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public partial class ServiceSecurityPolicy : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal ServiceSecurityPolicy(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(ServiceSecurityPolicy obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~ServiceSecurityPolicy() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_ServiceSecurityPolicy(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  protected ServiceSecurityPolicy(NativeUserAuthenticator Authenticator, map_strstr Policies) : this(RobotRaconteurNETPINVOKE.new_ServiceSecurityPolicy(NativeUserAuthenticator.getCPtr(Authenticator), map_strstr.getCPtr(Policies)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class PasswordFileUserAuthenticator : NativeUserAuthenticator {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnDerived;

  internal PasswordFileUserAuthenticator(global::System.IntPtr cPtr, bool cMemoryOwn) : base(RobotRaconteurNETPINVOKE.PasswordFileUserAuthenticator_SWIGSmartPtrUpcast(cPtr), true) {
    swigCMemOwnDerived = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(PasswordFileUserAuthenticator obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  protected override void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnDerived) {
          swigCMemOwnDerived = false;
          RobotRaconteurNETPINVOKE.delete_PasswordFileUserAuthenticator(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
      base.Dispose(disposing);
    }
  }

  public PasswordFileUserAuthenticator(string data, bool require_verified_client) : this(RobotRaconteurNETPINVOKE.new_PasswordFileUserAuthenticator__SWIG_0(data, require_verified_client), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public PasswordFileUserAuthenticator(string data) : this(RobotRaconteurNETPINVOKE.new_PasswordFileUserAuthenticator__SWIG_1(data), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedUserAuthenticatorDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedUserAuthenticatorDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedUserAuthenticatorDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedUserAuthenticatorDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedUserAuthenticatorDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  protected virtual AuthenticatedUser AuthenticateUser(string username, MessageElement credentials, ServerContext context) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedUserAuthenticatorDirector_AuthenticateUser(swigCPtr, username, MessageElement.getCPtr(credentials), ServerContext.getCPtr(context));
    AuthenticatedUser ret = (cPtr == global::System.IntPtr.Zero) ? null : new AuthenticatedUser(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedUserAuthenticatorDirector() : this(RobotRaconteurNETPINVOKE.new_WrappedUserAuthenticatorDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("AuthenticateUser", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateWrappedUserAuthenticatorDirector_0(SwigDirectorMethodAuthenticateUser);
    RobotRaconteurNETPINVOKE.WrappedUserAuthenticatorDirector_director_connect(swigCPtr, swigDelegate0);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(WrappedUserAuthenticatorDirector));
    return hasDerivedMethod;
  }

  private global::System.IntPtr SwigDirectorMethodAuthenticateUser(string username, global::System.IntPtr credentials, global::System.IntPtr context) {
    return AuthenticatedUser.getCPtr(AuthenticateUser(username, (credentials == global::System.IntPtr.Zero) ? null : new MessageElement(credentials, true), (context == global::System.IntPtr.Zero) ? null : new ServerContext(context, true))).Handle;
  }

  public delegate global::System.IntPtr SwigDelegateWrappedUserAuthenticatorDirector_0(string username, global::System.IntPtr credentials, global::System.IntPtr context);

  private SwigDelegateWrappedUserAuthenticatorDirector_0 swigDelegate0;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(string), typeof(MessageElement), typeof(ServerContext) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedUserAuthenticator : NativeUserAuthenticator {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnDerived;

  internal WrappedUserAuthenticator(global::System.IntPtr cPtr, bool cMemoryOwn) : base(RobotRaconteurNETPINVOKE.WrappedUserAuthenticator_SWIGSmartPtrUpcast(cPtr), true) {
    swigCMemOwnDerived = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedUserAuthenticator obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  protected override void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnDerived) {
          swigCMemOwnDerived = false;
          RobotRaconteurNETPINVOKE.delete_WrappedUserAuthenticator(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
      base.Dispose(disposing);
    }
  }

  public void SetRRDirector(WrappedUserAuthenticatorDirector director, int id) {
    RobotRaconteurNETPINVOKE.WrappedUserAuthenticator_SetRRDirector(swigCPtr, WrappedUserAuthenticatorDirector.getCPtr(director), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public WrappedUserAuthenticator() : this(RobotRaconteurNETPINVOKE.new_WrappedUserAuthenticator(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class AsyncServiceInfo2VectorReturnDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal AsyncServiceInfo2VectorReturnDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(AsyncServiceInfo2VectorReturnDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~AsyncServiceInfo2VectorReturnDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_AsyncServiceInfo2VectorReturnDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual void handler(vectorserviceinfo2wrapped ret) {
    RobotRaconteurNETPINVOKE.AsyncServiceInfo2VectorReturnDirector_handler(swigCPtr, vectorserviceinfo2wrapped.getCPtr(ret));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public AsyncServiceInfo2VectorReturnDirector() : this(RobotRaconteurNETPINVOKE.new_AsyncServiceInfo2VectorReturnDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("handler", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateAsyncServiceInfo2VectorReturnDirector_0(SwigDirectorMethodhandler);
    RobotRaconteurNETPINVOKE.AsyncServiceInfo2VectorReturnDirector_director_connect(swigCPtr, swigDelegate0);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(AsyncServiceInfo2VectorReturnDirector));
    return hasDerivedMethod;
  }

  private void SwigDirectorMethodhandler(global::System.IntPtr ret) {
    handler(new vectorserviceinfo2wrapped(ret, false));
  }

  public delegate void SwigDelegateAsyncServiceInfo2VectorReturnDirector_0(global::System.IntPtr ret);

  private SwigDelegateAsyncServiceInfo2VectorReturnDirector_0 swigDelegate0;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(vectorserviceinfo2wrapped) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class AsyncNodeInfo2VectorReturnDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal AsyncNodeInfo2VectorReturnDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(AsyncNodeInfo2VectorReturnDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~AsyncNodeInfo2VectorReturnDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_AsyncNodeInfo2VectorReturnDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual void handler(vectornodeinfo2 ret) {
    RobotRaconteurNETPINVOKE.AsyncNodeInfo2VectorReturnDirector_handler(swigCPtr, vectornodeinfo2.getCPtr(ret));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public AsyncNodeInfo2VectorReturnDirector() : this(RobotRaconteurNETPINVOKE.new_AsyncNodeInfo2VectorReturnDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("handler", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateAsyncNodeInfo2VectorReturnDirector_0(SwigDirectorMethodhandler);
    RobotRaconteurNETPINVOKE.AsyncNodeInfo2VectorReturnDirector_director_connect(swigCPtr, swigDelegate0);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(AsyncNodeInfo2VectorReturnDirector));
    return hasDerivedMethod;
  }

  private void SwigDirectorMethodhandler(global::System.IntPtr ret) {
    handler(new vectornodeinfo2(ret, false));
  }

  public delegate void SwigDelegateAsyncNodeInfo2VectorReturnDirector_0(global::System.IntPtr ret);

  private SwigDelegateAsyncNodeInfo2VectorReturnDirector_0 swigDelegate0;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(vectornodeinfo2) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class ServiceInfo2Wrapped : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal ServiceInfo2Wrapped(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(ServiceInfo2Wrapped obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~ServiceInfo2Wrapped() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_ServiceInfo2Wrapped(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public string Name {
    set {
      RobotRaconteurNETPINVOKE.ServiceInfo2Wrapped_Name_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.ServiceInfo2Wrapped_Name_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string RootObjectType {
    set {
      RobotRaconteurNETPINVOKE.ServiceInfo2Wrapped_RootObjectType_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.ServiceInfo2Wrapped_RootObjectType_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public vectorstring RootObjectImplements {
    set {
      RobotRaconteurNETPINVOKE.ServiceInfo2Wrapped_RootObjectImplements_set(swigCPtr, vectorstring.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.ServiceInfo2Wrapped_RootObjectImplements_get(swigCPtr);
      vectorstring ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorstring(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public vectorstring ConnectionURL {
    set {
      RobotRaconteurNETPINVOKE.ServiceInfo2Wrapped_ConnectionURL_set(swigCPtr, vectorstring.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.ServiceInfo2Wrapped_ConnectionURL_get(swigCPtr);
      vectorstring ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorstring(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public MessageElement Attributes {
    set {
      RobotRaconteurNETPINVOKE.ServiceInfo2Wrapped_Attributes_set(swigCPtr, MessageElement.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.ServiceInfo2Wrapped_Attributes_get(swigCPtr);
      MessageElement ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElement(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public NodeID NodeID {
    set {
      RobotRaconteurNETPINVOKE.ServiceInfo2Wrapped_NodeID_set(swigCPtr, NodeID.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.ServiceInfo2Wrapped_NodeID_get(swigCPtr);
      NodeID ret = (cPtr == global::System.IntPtr.Zero) ? null : new NodeID(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string NodeName {
    set {
      RobotRaconteurNETPINVOKE.ServiceInfo2Wrapped_NodeName_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.ServiceInfo2Wrapped_NodeName_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public ServiceInfo2Wrapped() : this(RobotRaconteurNETPINVOKE.new_ServiceInfo2Wrapped(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class vectorserviceinfo2wrapped : global::System.IDisposable, global::System.Collections.IEnumerable, global::System.Collections.Generic.IEnumerable<ServiceInfo2Wrapped>
 {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal vectorserviceinfo2wrapped(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(vectorserviceinfo2wrapped obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~vectorserviceinfo2wrapped() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_vectorserviceinfo2wrapped(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public vectorserviceinfo2wrapped(global::System.Collections.IEnumerable c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (ServiceInfo2Wrapped element in c) {
      this.Add(element);
    }
  }

  public vectorserviceinfo2wrapped(global::System.Collections.Generic.IEnumerable<ServiceInfo2Wrapped> c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (ServiceInfo2Wrapped element in c) {
      this.Add(element);
    }
  }

  public bool IsFixedSize {
    get {
      return false;
    }
  }

  public bool IsReadOnly {
    get {
      return false;
    }
  }

  public ServiceInfo2Wrapped this[int index]  {
    get {
      return getitem(index);
    }
    set {
      setitem(index, value);
    }
  }

  public int Capacity {
    get {
      return (int)capacity();
    }
    set {
      if (value < size())
        throw new global::System.ArgumentOutOfRangeException("Capacity");
      reserve((uint)value);
    }
  }

  public int Count {
    get {
      return (int)size();
    }
  }

  public bool IsSynchronized {
    get {
      return false;
    }
  }

  public void CopyTo(ServiceInfo2Wrapped[] array)
  {
    CopyTo(0, array, 0, this.Count);
  }

  public void CopyTo(ServiceInfo2Wrapped[] array, int arrayIndex)
  {
    CopyTo(0, array, arrayIndex, this.Count);
  }

  public void CopyTo(int index, ServiceInfo2Wrapped[] array, int arrayIndex, int count)
  {
    if (array == null)
      throw new global::System.ArgumentNullException("array");
    if (index < 0)
      throw new global::System.ArgumentOutOfRangeException("index", "Value is less than zero");
    if (arrayIndex < 0)
      throw new global::System.ArgumentOutOfRangeException("arrayIndex", "Value is less than zero");
    if (count < 0)
      throw new global::System.ArgumentOutOfRangeException("count", "Value is less than zero");
    if (array.Rank > 1)
      throw new global::System.ArgumentException("Multi dimensional array.", "array");
    if (index+count > this.Count || arrayIndex+count > array.Length)
      throw new global::System.ArgumentException("Number of elements to copy is too large.");
    for (int i=0; i<count; i++)
      array.SetValue(getitemcopy(index+i), arrayIndex+i);
  }

  public ServiceInfo2Wrapped[] ToArray() {
    ServiceInfo2Wrapped[] array = new ServiceInfo2Wrapped[this.Count];
    this.CopyTo(array);
    return array;
  }

  global::System.Collections.Generic.IEnumerator<ServiceInfo2Wrapped> global::System.Collections.Generic.IEnumerable<ServiceInfo2Wrapped>.GetEnumerator() {
    return new vectorserviceinfo2wrappedEnumerator(this);
  }

  global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator() {
    return new vectorserviceinfo2wrappedEnumerator(this);
  }

  public vectorserviceinfo2wrappedEnumerator GetEnumerator() {
    return new vectorserviceinfo2wrappedEnumerator(this);
  }

  // Type-safe enumerator
  /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown
  /// whenever the collection is modified. This has been done for changes in the size of the
  /// collection but not when one of the elements of the collection is modified as it is a bit
  /// tricky to detect unmanaged code that modifies the collection under our feet.
  public sealed class vectorserviceinfo2wrappedEnumerator : global::System.Collections.IEnumerator
    , global::System.Collections.Generic.IEnumerator<ServiceInfo2Wrapped>
  {
    private vectorserviceinfo2wrapped collectionRef;
    private int currentIndex;
    private object currentObject;
    private int currentSize;

    public vectorserviceinfo2wrappedEnumerator(vectorserviceinfo2wrapped collection) {
      collectionRef = collection;
      currentIndex = -1;
      currentObject = null;
      currentSize = collectionRef.Count;
    }

    // Type-safe iterator Current
    public ServiceInfo2Wrapped Current {
      get {
        if (currentIndex == -1)
          throw new global::System.InvalidOperationException("Enumeration not started.");
        if (currentIndex > currentSize - 1)
          throw new global::System.InvalidOperationException("Enumeration finished.");
        if (currentObject == null)
          throw new global::System.InvalidOperationException("Collection modified.");
        return (ServiceInfo2Wrapped)currentObject;
      }
    }

    // Type-unsafe IEnumerator.Current
    object global::System.Collections.IEnumerator.Current {
      get {
        return Current;
      }
    }

    public bool MoveNext() {
      int size = collectionRef.Count;
      bool moveOkay = (currentIndex+1 < size) && (size == currentSize);
      if (moveOkay) {
        currentIndex++;
        currentObject = collectionRef[currentIndex];
      } else {
        currentObject = null;
      }
      return moveOkay;
    }

    public void Reset() {
      currentIndex = -1;
      currentObject = null;
      if (collectionRef.Count != currentSize) {
        throw new global::System.InvalidOperationException("Collection modified.");
      }
    }

    public void Dispose() {
        currentIndex = -1;
        currentObject = null;
    }
  }

  public void Clear() {
    RobotRaconteurNETPINVOKE.vectorserviceinfo2wrapped_Clear(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Add(ServiceInfo2Wrapped x) {
    RobotRaconteurNETPINVOKE.vectorserviceinfo2wrapped_Add(swigCPtr, ServiceInfo2Wrapped.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private uint size() {
    uint ret = RobotRaconteurNETPINVOKE.vectorserviceinfo2wrapped_size(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private uint capacity() {
    uint ret = RobotRaconteurNETPINVOKE.vectorserviceinfo2wrapped_capacity(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void reserve(uint n) {
    RobotRaconteurNETPINVOKE.vectorserviceinfo2wrapped_reserve(swigCPtr, n);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorserviceinfo2wrapped() : this(RobotRaconteurNETPINVOKE.new_vectorserviceinfo2wrapped__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorserviceinfo2wrapped(vectorserviceinfo2wrapped other) : this(RobotRaconteurNETPINVOKE.new_vectorserviceinfo2wrapped__SWIG_1(vectorserviceinfo2wrapped.getCPtr(other)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorserviceinfo2wrapped(int capacity) : this(RobotRaconteurNETPINVOKE.new_vectorserviceinfo2wrapped__SWIG_2(capacity), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private ServiceInfo2Wrapped getitemcopy(int index) {
    ServiceInfo2Wrapped ret = new ServiceInfo2Wrapped(RobotRaconteurNETPINVOKE.vectorserviceinfo2wrapped_getitemcopy(swigCPtr, index), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private ServiceInfo2Wrapped getitem(int index) {
    ServiceInfo2Wrapped ret = new ServiceInfo2Wrapped(RobotRaconteurNETPINVOKE.vectorserviceinfo2wrapped_getitem(swigCPtr, index), false);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void setitem(int index, ServiceInfo2Wrapped val) {
    RobotRaconteurNETPINVOKE.vectorserviceinfo2wrapped_setitem(swigCPtr, index, ServiceInfo2Wrapped.getCPtr(val));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void AddRange(vectorserviceinfo2wrapped values) {
    RobotRaconteurNETPINVOKE.vectorserviceinfo2wrapped_AddRange(swigCPtr, vectorserviceinfo2wrapped.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorserviceinfo2wrapped GetRange(int index, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorserviceinfo2wrapped_GetRange(swigCPtr, index, count);
    vectorserviceinfo2wrapped ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorserviceinfo2wrapped(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Insert(int index, ServiceInfo2Wrapped x) {
    RobotRaconteurNETPINVOKE.vectorserviceinfo2wrapped_Insert(swigCPtr, index, ServiceInfo2Wrapped.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void InsertRange(int index, vectorserviceinfo2wrapped values) {
    RobotRaconteurNETPINVOKE.vectorserviceinfo2wrapped_InsertRange(swigCPtr, index, vectorserviceinfo2wrapped.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveAt(int index) {
    RobotRaconteurNETPINVOKE.vectorserviceinfo2wrapped_RemoveAt(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveRange(int index, int count) {
    RobotRaconteurNETPINVOKE.vectorserviceinfo2wrapped_RemoveRange(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static vectorserviceinfo2wrapped Repeat(ServiceInfo2Wrapped value, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorserviceinfo2wrapped_Repeat(ServiceInfo2Wrapped.getCPtr(value), count);
    vectorserviceinfo2wrapped ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorserviceinfo2wrapped(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Reverse() {
    RobotRaconteurNETPINVOKE.vectorserviceinfo2wrapped_Reverse__SWIG_0(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Reverse(int index, int count) {
    RobotRaconteurNETPINVOKE.vectorserviceinfo2wrapped_Reverse__SWIG_1(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SetRange(int index, vectorserviceinfo2wrapped values) {
    RobotRaconteurNETPINVOKE.vectorserviceinfo2wrapped_SetRange(swigCPtr, index, vectorserviceinfo2wrapped.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedNodeInfo2 : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedNodeInfo2(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedNodeInfo2 obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedNodeInfo2() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedNodeInfo2(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public NodeID NodeID {
    set {
      RobotRaconteurNETPINVOKE.WrappedNodeInfo2_NodeID_set(swigCPtr, NodeID.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedNodeInfo2_NodeID_get(swigCPtr);
      NodeID ret = (cPtr == global::System.IntPtr.Zero) ? null : new NodeID(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string NodeName {
    set {
      RobotRaconteurNETPINVOKE.WrappedNodeInfo2_NodeName_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.WrappedNodeInfo2_NodeName_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public vectorstring ConnectionURL {
    set {
      RobotRaconteurNETPINVOKE.WrappedNodeInfo2_ConnectionURL_set(swigCPtr, vectorstring.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedNodeInfo2_ConnectionURL_get(swigCPtr);
      vectorstring ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorstring(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public WrappedNodeInfo2() : this(RobotRaconteurNETPINVOKE.new_WrappedNodeInfo2(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class vectornodeinfo2 : global::System.IDisposable, global::System.Collections.IEnumerable, global::System.Collections.Generic.IEnumerable<WrappedNodeInfo2>
 {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal vectornodeinfo2(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(vectornodeinfo2 obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~vectornodeinfo2() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_vectornodeinfo2(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public vectornodeinfo2(global::System.Collections.IEnumerable c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (WrappedNodeInfo2 element in c) {
      this.Add(element);
    }
  }

  public vectornodeinfo2(global::System.Collections.Generic.IEnumerable<WrappedNodeInfo2> c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (WrappedNodeInfo2 element in c) {
      this.Add(element);
    }
  }

  public bool IsFixedSize {
    get {
      return false;
    }
  }

  public bool IsReadOnly {
    get {
      return false;
    }
  }

  public WrappedNodeInfo2 this[int index]  {
    get {
      return getitem(index);
    }
    set {
      setitem(index, value);
    }
  }

  public int Capacity {
    get {
      return (int)capacity();
    }
    set {
      if (value < size())
        throw new global::System.ArgumentOutOfRangeException("Capacity");
      reserve((uint)value);
    }
  }

  public int Count {
    get {
      return (int)size();
    }
  }

  public bool IsSynchronized {
    get {
      return false;
    }
  }

  public void CopyTo(WrappedNodeInfo2[] array)
  {
    CopyTo(0, array, 0, this.Count);
  }

  public void CopyTo(WrappedNodeInfo2[] array, int arrayIndex)
  {
    CopyTo(0, array, arrayIndex, this.Count);
  }

  public void CopyTo(int index, WrappedNodeInfo2[] array, int arrayIndex, int count)
  {
    if (array == null)
      throw new global::System.ArgumentNullException("array");
    if (index < 0)
      throw new global::System.ArgumentOutOfRangeException("index", "Value is less than zero");
    if (arrayIndex < 0)
      throw new global::System.ArgumentOutOfRangeException("arrayIndex", "Value is less than zero");
    if (count < 0)
      throw new global::System.ArgumentOutOfRangeException("count", "Value is less than zero");
    if (array.Rank > 1)
      throw new global::System.ArgumentException("Multi dimensional array.", "array");
    if (index+count > this.Count || arrayIndex+count > array.Length)
      throw new global::System.ArgumentException("Number of elements to copy is too large.");
    for (int i=0; i<count; i++)
      array.SetValue(getitemcopy(index+i), arrayIndex+i);
  }

  public WrappedNodeInfo2[] ToArray() {
    WrappedNodeInfo2[] array = new WrappedNodeInfo2[this.Count];
    this.CopyTo(array);
    return array;
  }

  global::System.Collections.Generic.IEnumerator<WrappedNodeInfo2> global::System.Collections.Generic.IEnumerable<WrappedNodeInfo2>.GetEnumerator() {
    return new vectornodeinfo2Enumerator(this);
  }

  global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator() {
    return new vectornodeinfo2Enumerator(this);
  }

  public vectornodeinfo2Enumerator GetEnumerator() {
    return new vectornodeinfo2Enumerator(this);
  }

  // Type-safe enumerator
  /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown
  /// whenever the collection is modified. This has been done for changes in the size of the
  /// collection but not when one of the elements of the collection is modified as it is a bit
  /// tricky to detect unmanaged code that modifies the collection under our feet.
  public sealed class vectornodeinfo2Enumerator : global::System.Collections.IEnumerator
    , global::System.Collections.Generic.IEnumerator<WrappedNodeInfo2>
  {
    private vectornodeinfo2 collectionRef;
    private int currentIndex;
    private object currentObject;
    private int currentSize;

    public vectornodeinfo2Enumerator(vectornodeinfo2 collection) {
      collectionRef = collection;
      currentIndex = -1;
      currentObject = null;
      currentSize = collectionRef.Count;
    }

    // Type-safe iterator Current
    public WrappedNodeInfo2 Current {
      get {
        if (currentIndex == -1)
          throw new global::System.InvalidOperationException("Enumeration not started.");
        if (currentIndex > currentSize - 1)
          throw new global::System.InvalidOperationException("Enumeration finished.");
        if (currentObject == null)
          throw new global::System.InvalidOperationException("Collection modified.");
        return (WrappedNodeInfo2)currentObject;
      }
    }

    // Type-unsafe IEnumerator.Current
    object global::System.Collections.IEnumerator.Current {
      get {
        return Current;
      }
    }

    public bool MoveNext() {
      int size = collectionRef.Count;
      bool moveOkay = (currentIndex+1 < size) && (size == currentSize);
      if (moveOkay) {
        currentIndex++;
        currentObject = collectionRef[currentIndex];
      } else {
        currentObject = null;
      }
      return moveOkay;
    }

    public void Reset() {
      currentIndex = -1;
      currentObject = null;
      if (collectionRef.Count != currentSize) {
        throw new global::System.InvalidOperationException("Collection modified.");
      }
    }

    public void Dispose() {
        currentIndex = -1;
        currentObject = null;
    }
  }

  public void Clear() {
    RobotRaconteurNETPINVOKE.vectornodeinfo2_Clear(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Add(WrappedNodeInfo2 x) {
    RobotRaconteurNETPINVOKE.vectornodeinfo2_Add(swigCPtr, WrappedNodeInfo2.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private uint size() {
    uint ret = RobotRaconteurNETPINVOKE.vectornodeinfo2_size(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private uint capacity() {
    uint ret = RobotRaconteurNETPINVOKE.vectornodeinfo2_capacity(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void reserve(uint n) {
    RobotRaconteurNETPINVOKE.vectornodeinfo2_reserve(swigCPtr, n);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectornodeinfo2() : this(RobotRaconteurNETPINVOKE.new_vectornodeinfo2__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectornodeinfo2(vectornodeinfo2 other) : this(RobotRaconteurNETPINVOKE.new_vectornodeinfo2__SWIG_1(vectornodeinfo2.getCPtr(other)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectornodeinfo2(int capacity) : this(RobotRaconteurNETPINVOKE.new_vectornodeinfo2__SWIG_2(capacity), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private WrappedNodeInfo2 getitemcopy(int index) {
    WrappedNodeInfo2 ret = new WrappedNodeInfo2(RobotRaconteurNETPINVOKE.vectornodeinfo2_getitemcopy(swigCPtr, index), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private WrappedNodeInfo2 getitem(int index) {
    WrappedNodeInfo2 ret = new WrappedNodeInfo2(RobotRaconteurNETPINVOKE.vectornodeinfo2_getitem(swigCPtr, index), false);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void setitem(int index, WrappedNodeInfo2 val) {
    RobotRaconteurNETPINVOKE.vectornodeinfo2_setitem(swigCPtr, index, WrappedNodeInfo2.getCPtr(val));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void AddRange(vectornodeinfo2 values) {
    RobotRaconteurNETPINVOKE.vectornodeinfo2_AddRange(swigCPtr, vectornodeinfo2.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectornodeinfo2 GetRange(int index, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectornodeinfo2_GetRange(swigCPtr, index, count);
    vectornodeinfo2 ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectornodeinfo2(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Insert(int index, WrappedNodeInfo2 x) {
    RobotRaconteurNETPINVOKE.vectornodeinfo2_Insert(swigCPtr, index, WrappedNodeInfo2.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void InsertRange(int index, vectornodeinfo2 values) {
    RobotRaconteurNETPINVOKE.vectornodeinfo2_InsertRange(swigCPtr, index, vectornodeinfo2.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveAt(int index) {
    RobotRaconteurNETPINVOKE.vectornodeinfo2_RemoveAt(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveRange(int index, int count) {
    RobotRaconteurNETPINVOKE.vectornodeinfo2_RemoveRange(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static vectornodeinfo2 Repeat(WrappedNodeInfo2 value, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectornodeinfo2_Repeat(WrappedNodeInfo2.getCPtr(value), count);
    vectornodeinfo2 ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectornodeinfo2(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Reverse() {
    RobotRaconteurNETPINVOKE.vectornodeinfo2_Reverse__SWIG_0(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Reverse(int index, int count) {
    RobotRaconteurNETPINVOKE.vectornodeinfo2_Reverse__SWIG_1(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SetRange(int index, vectornodeinfo2 values) {
    RobotRaconteurNETPINVOKE.vectornodeinfo2_SetRange(swigCPtr, index, vectornodeinfo2.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class map_subscriptionserviceinfo2 : global::System.IDisposable 
    , global::System.Collections.Generic.IDictionary<WrappedServiceSubscriptionClientID, ServiceInfo2Wrapped>
 {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal map_subscriptionserviceinfo2(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(map_subscriptionserviceinfo2 obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~map_subscriptionserviceinfo2() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_map_subscriptionserviceinfo2(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }


  public ServiceInfo2Wrapped this[WrappedServiceSubscriptionClientID key] {
    get {
      return getitem(key);
    }

    set {
      setitem(key, value);
    }
  }

  public bool TryGetValue(WrappedServiceSubscriptionClientID key, out ServiceInfo2Wrapped value) {
    if (this.ContainsKey(key)) {
      value = this[key];
      return true;
    }
    value = default(ServiceInfo2Wrapped);
    return false;
  }

  public int Count {
    get {
      return (int)size();
    }
  }

  public bool IsReadOnly {
    get {
      return false;
    }
  }

  public global::System.Collections.Generic.ICollection<WrappedServiceSubscriptionClientID> Keys {
    get {
      global::System.Collections.Generic.ICollection<WrappedServiceSubscriptionClientID> keys = new global::System.Collections.Generic.List<WrappedServiceSubscriptionClientID>();
      int size = this.Count;
      if (size > 0) {
        global::System.IntPtr iter = create_iterator_begin();
        for (int i = 0; i < size; i++) {
          keys.Add(get_next_key(iter));
        }
        destroy_iterator(iter);
      }
      return keys;
    }
  }

  public global::System.Collections.Generic.ICollection<ServiceInfo2Wrapped> Values {
    get {
      global::System.Collections.Generic.ICollection<ServiceInfo2Wrapped> vals = new global::System.Collections.Generic.List<ServiceInfo2Wrapped>();
      foreach (global::System.Collections.Generic.KeyValuePair<WrappedServiceSubscriptionClientID, ServiceInfo2Wrapped> pair in this) {
        vals.Add(pair.Value);
      }
      return vals;
    }
  }

  public void Add(global::System.Collections.Generic.KeyValuePair<WrappedServiceSubscriptionClientID, ServiceInfo2Wrapped> item) {
    Add(item.Key, item.Value);
  }

  public bool Remove(global::System.Collections.Generic.KeyValuePair<WrappedServiceSubscriptionClientID, ServiceInfo2Wrapped> item) {
    if (Contains(item)) {
      return Remove(item.Key);
    } else {
      return false;
    }
  }

  public bool Contains(global::System.Collections.Generic.KeyValuePair<WrappedServiceSubscriptionClientID, ServiceInfo2Wrapped> item) {
    if (this[item.Key] == item.Value) {
      return true;
    } else {
      return false;
    }
  }

  public void CopyTo(global::System.Collections.Generic.KeyValuePair<WrappedServiceSubscriptionClientID, ServiceInfo2Wrapped>[] array) {
    CopyTo(array, 0);
  }

  public void CopyTo(global::System.Collections.Generic.KeyValuePair<WrappedServiceSubscriptionClientID, ServiceInfo2Wrapped>[] array, int arrayIndex) {
    if (array == null)
      throw new global::System.ArgumentNullException("array");
    if (arrayIndex < 0)
      throw new global::System.ArgumentOutOfRangeException("arrayIndex", "Value is less than zero");
    if (array.Rank > 1)
      throw new global::System.ArgumentException("Multi dimensional array.", "array");
    if (arrayIndex+this.Count > array.Length)
      throw new global::System.ArgumentException("Number of elements to copy is too large.");

    global::System.Collections.Generic.IList<WrappedServiceSubscriptionClientID> keyList = new global::System.Collections.Generic.List<WrappedServiceSubscriptionClientID>(this.Keys);
    for (int i = 0; i < keyList.Count; i++) {
      WrappedServiceSubscriptionClientID currentKey = keyList[i];
      array.SetValue(new global::System.Collections.Generic.KeyValuePair<WrappedServiceSubscriptionClientID, ServiceInfo2Wrapped>(currentKey, this[currentKey]), arrayIndex+i);
    }
  }

  global::System.Collections.Generic.IEnumerator<global::System.Collections.Generic.KeyValuePair<WrappedServiceSubscriptionClientID, ServiceInfo2Wrapped>> global::System.Collections.Generic.IEnumerable<global::System.Collections.Generic.KeyValuePair<WrappedServiceSubscriptionClientID, ServiceInfo2Wrapped>>.GetEnumerator() {
    return new map_subscriptionserviceinfo2Enumerator(this);
  }

  global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator() {
    return new map_subscriptionserviceinfo2Enumerator(this);
  }

  public map_subscriptionserviceinfo2Enumerator GetEnumerator() {
    return new map_subscriptionserviceinfo2Enumerator(this);
  }

  // Type-safe enumerator
  /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown
  /// whenever the collection is modified. This has been done for changes in the size of the
  /// collection but not when one of the elements of the collection is modified as it is a bit
  /// tricky to detect unmanaged code that modifies the collection under our feet.
  public sealed class map_subscriptionserviceinfo2Enumerator : global::System.Collections.IEnumerator,
      global::System.Collections.Generic.IEnumerator<global::System.Collections.Generic.KeyValuePair<WrappedServiceSubscriptionClientID, ServiceInfo2Wrapped>>
  {
    private map_subscriptionserviceinfo2 collectionRef;
    private global::System.Collections.Generic.IList<WrappedServiceSubscriptionClientID> keyCollection;
    private int currentIndex;
    private object currentObject;
    private int currentSize;

    public map_subscriptionserviceinfo2Enumerator(map_subscriptionserviceinfo2 collection) {
      collectionRef = collection;
      keyCollection = new global::System.Collections.Generic.List<WrappedServiceSubscriptionClientID>(collection.Keys);
      currentIndex = -1;
      currentObject = null;
      currentSize = collectionRef.Count;
    }

    // Type-safe iterator Current
    public global::System.Collections.Generic.KeyValuePair<WrappedServiceSubscriptionClientID, ServiceInfo2Wrapped> Current {
      get {
        if (currentIndex == -1)
          throw new global::System.InvalidOperationException("Enumeration not started.");
        if (currentIndex > currentSize - 1)
          throw new global::System.InvalidOperationException("Enumeration finished.");
        if (currentObject == null)
          throw new global::System.InvalidOperationException("Collection modified.");
        return (global::System.Collections.Generic.KeyValuePair<WrappedServiceSubscriptionClientID, ServiceInfo2Wrapped>)currentObject;
      }
    }

    // Type-unsafe IEnumerator.Current
    object global::System.Collections.IEnumerator.Current {
      get {
        return Current;
      }
    }

    public bool MoveNext() {
      int size = collectionRef.Count;
      bool moveOkay = (currentIndex+1 < size) && (size == currentSize);
      if (moveOkay) {
        currentIndex++;
        WrappedServiceSubscriptionClientID currentKey = keyCollection[currentIndex];
        currentObject = new global::System.Collections.Generic.KeyValuePair<WrappedServiceSubscriptionClientID, ServiceInfo2Wrapped>(currentKey, collectionRef[currentKey]);
      } else {
        currentObject = null;
      }
      return moveOkay;
    }

    public void Reset() {
      currentIndex = -1;
      currentObject = null;
      if (collectionRef.Count != currentSize) {
        throw new global::System.InvalidOperationException("Collection modified.");
      }
    }

    public void Dispose() {
      currentIndex = -1;
      currentObject = null;
    }
  }


  public map_subscriptionserviceinfo2() : this(RobotRaconteurNETPINVOKE.new_map_subscriptionserviceinfo2__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public map_subscriptionserviceinfo2(map_subscriptionserviceinfo2 other) : this(RobotRaconteurNETPINVOKE.new_map_subscriptionserviceinfo2__SWIG_1(map_subscriptionserviceinfo2.getCPtr(other)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private uint size() {
    uint ret = RobotRaconteurNETPINVOKE.map_subscriptionserviceinfo2_size(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool empty() {
    bool ret = RobotRaconteurNETPINVOKE.map_subscriptionserviceinfo2_empty(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Clear() {
    RobotRaconteurNETPINVOKE.map_subscriptionserviceinfo2_Clear(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private ServiceInfo2Wrapped getitem(WrappedServiceSubscriptionClientID key) {
    ServiceInfo2Wrapped ret = new ServiceInfo2Wrapped(RobotRaconteurNETPINVOKE.map_subscriptionserviceinfo2_getitem(swigCPtr, WrappedServiceSubscriptionClientID.getCPtr(key)), false);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void setitem(WrappedServiceSubscriptionClientID key, ServiceInfo2Wrapped x) {
    RobotRaconteurNETPINVOKE.map_subscriptionserviceinfo2_setitem(swigCPtr, WrappedServiceSubscriptionClientID.getCPtr(key), ServiceInfo2Wrapped.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public bool ContainsKey(WrappedServiceSubscriptionClientID key) {
    bool ret = RobotRaconteurNETPINVOKE.map_subscriptionserviceinfo2_ContainsKey(swigCPtr, WrappedServiceSubscriptionClientID.getCPtr(key));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Add(WrappedServiceSubscriptionClientID key, ServiceInfo2Wrapped value) {
    RobotRaconteurNETPINVOKE.map_subscriptionserviceinfo2_Add(swigCPtr, WrappedServiceSubscriptionClientID.getCPtr(key), ServiceInfo2Wrapped.getCPtr(value));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public bool Remove(WrappedServiceSubscriptionClientID key) {
    bool ret = RobotRaconteurNETPINVOKE.map_subscriptionserviceinfo2_Remove(swigCPtr, WrappedServiceSubscriptionClientID.getCPtr(key));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private global::System.IntPtr create_iterator_begin() {
    global::System.IntPtr ret = RobotRaconteurNETPINVOKE.map_subscriptionserviceinfo2_create_iterator_begin(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private WrappedServiceSubscriptionClientID get_next_key(global::System.IntPtr swigiterator) {
    WrappedServiceSubscriptionClientID ret = new WrappedServiceSubscriptionClientID(RobotRaconteurNETPINVOKE.map_subscriptionserviceinfo2_get_next_key(swigCPtr, swigiterator), false);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void destroy_iterator(global::System.IntPtr swigiterator) {
    RobotRaconteurNETPINVOKE.map_subscriptionserviceinfo2_destroy_iterator(swigCPtr, swigiterator);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class map_subscriptionclients : global::System.IDisposable 
    , global::System.Collections.Generic.IDictionary<WrappedServiceSubscriptionClientID, WrappedServiceStub>
 {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal map_subscriptionclients(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(map_subscriptionclients obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~map_subscriptionclients() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_map_subscriptionclients(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }


  public WrappedServiceStub this[WrappedServiceSubscriptionClientID key] {
    get {
      return getitem(key);
    }

    set {
      setitem(key, value);
    }
  }

  public bool TryGetValue(WrappedServiceSubscriptionClientID key, out WrappedServiceStub value) {
    if (this.ContainsKey(key)) {
      value = this[key];
      return true;
    }
    value = default(WrappedServiceStub);
    return false;
  }

  public int Count {
    get {
      return (int)size();
    }
  }

  public bool IsReadOnly {
    get {
      return false;
    }
  }

  public global::System.Collections.Generic.ICollection<WrappedServiceSubscriptionClientID> Keys {
    get {
      global::System.Collections.Generic.ICollection<WrappedServiceSubscriptionClientID> keys = new global::System.Collections.Generic.List<WrappedServiceSubscriptionClientID>();
      int size = this.Count;
      if (size > 0) {
        global::System.IntPtr iter = create_iterator_begin();
        for (int i = 0; i < size; i++) {
          keys.Add(get_next_key(iter));
        }
        destroy_iterator(iter);
      }
      return keys;
    }
  }

  public global::System.Collections.Generic.ICollection<WrappedServiceStub> Values {
    get {
      global::System.Collections.Generic.ICollection<WrappedServiceStub> vals = new global::System.Collections.Generic.List<WrappedServiceStub>();
      foreach (global::System.Collections.Generic.KeyValuePair<WrappedServiceSubscriptionClientID, WrappedServiceStub> pair in this) {
        vals.Add(pair.Value);
      }
      return vals;
    }
  }

  public void Add(global::System.Collections.Generic.KeyValuePair<WrappedServiceSubscriptionClientID, WrappedServiceStub> item) {
    Add(item.Key, item.Value);
  }

  public bool Remove(global::System.Collections.Generic.KeyValuePair<WrappedServiceSubscriptionClientID, WrappedServiceStub> item) {
    if (Contains(item)) {
      return Remove(item.Key);
    } else {
      return false;
    }
  }

  public bool Contains(global::System.Collections.Generic.KeyValuePair<WrappedServiceSubscriptionClientID, WrappedServiceStub> item) {
    if (this[item.Key] == item.Value) {
      return true;
    } else {
      return false;
    }
  }

  public void CopyTo(global::System.Collections.Generic.KeyValuePair<WrappedServiceSubscriptionClientID, WrappedServiceStub>[] array) {
    CopyTo(array, 0);
  }

  public void CopyTo(global::System.Collections.Generic.KeyValuePair<WrappedServiceSubscriptionClientID, WrappedServiceStub>[] array, int arrayIndex) {
    if (array == null)
      throw new global::System.ArgumentNullException("array");
    if (arrayIndex < 0)
      throw new global::System.ArgumentOutOfRangeException("arrayIndex", "Value is less than zero");
    if (array.Rank > 1)
      throw new global::System.ArgumentException("Multi dimensional array.", "array");
    if (arrayIndex+this.Count > array.Length)
      throw new global::System.ArgumentException("Number of elements to copy is too large.");

    global::System.Collections.Generic.IList<WrappedServiceSubscriptionClientID> keyList = new global::System.Collections.Generic.List<WrappedServiceSubscriptionClientID>(this.Keys);
    for (int i = 0; i < keyList.Count; i++) {
      WrappedServiceSubscriptionClientID currentKey = keyList[i];
      array.SetValue(new global::System.Collections.Generic.KeyValuePair<WrappedServiceSubscriptionClientID, WrappedServiceStub>(currentKey, this[currentKey]), arrayIndex+i);
    }
  }

  global::System.Collections.Generic.IEnumerator<global::System.Collections.Generic.KeyValuePair<WrappedServiceSubscriptionClientID, WrappedServiceStub>> global::System.Collections.Generic.IEnumerable<global::System.Collections.Generic.KeyValuePair<WrappedServiceSubscriptionClientID, WrappedServiceStub>>.GetEnumerator() {
    return new map_subscriptionclientsEnumerator(this);
  }

  global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator() {
    return new map_subscriptionclientsEnumerator(this);
  }

  public map_subscriptionclientsEnumerator GetEnumerator() {
    return new map_subscriptionclientsEnumerator(this);
  }

  // Type-safe enumerator
  /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown
  /// whenever the collection is modified. This has been done for changes in the size of the
  /// collection but not when one of the elements of the collection is modified as it is a bit
  /// tricky to detect unmanaged code that modifies the collection under our feet.
  public sealed class map_subscriptionclientsEnumerator : global::System.Collections.IEnumerator,
      global::System.Collections.Generic.IEnumerator<global::System.Collections.Generic.KeyValuePair<WrappedServiceSubscriptionClientID, WrappedServiceStub>>
  {
    private map_subscriptionclients collectionRef;
    private global::System.Collections.Generic.IList<WrappedServiceSubscriptionClientID> keyCollection;
    private int currentIndex;
    private object currentObject;
    private int currentSize;

    public map_subscriptionclientsEnumerator(map_subscriptionclients collection) {
      collectionRef = collection;
      keyCollection = new global::System.Collections.Generic.List<WrappedServiceSubscriptionClientID>(collection.Keys);
      currentIndex = -1;
      currentObject = null;
      currentSize = collectionRef.Count;
    }

    // Type-safe iterator Current
    public global::System.Collections.Generic.KeyValuePair<WrappedServiceSubscriptionClientID, WrappedServiceStub> Current {
      get {
        if (currentIndex == -1)
          throw new global::System.InvalidOperationException("Enumeration not started.");
        if (currentIndex > currentSize - 1)
          throw new global::System.InvalidOperationException("Enumeration finished.");
        if (currentObject == null)
          throw new global::System.InvalidOperationException("Collection modified.");
        return (global::System.Collections.Generic.KeyValuePair<WrappedServiceSubscriptionClientID, WrappedServiceStub>)currentObject;
      }
    }

    // Type-unsafe IEnumerator.Current
    object global::System.Collections.IEnumerator.Current {
      get {
        return Current;
      }
    }

    public bool MoveNext() {
      int size = collectionRef.Count;
      bool moveOkay = (currentIndex+1 < size) && (size == currentSize);
      if (moveOkay) {
        currentIndex++;
        WrappedServiceSubscriptionClientID currentKey = keyCollection[currentIndex];
        currentObject = new global::System.Collections.Generic.KeyValuePair<WrappedServiceSubscriptionClientID, WrappedServiceStub>(currentKey, collectionRef[currentKey]);
      } else {
        currentObject = null;
      }
      return moveOkay;
    }

    public void Reset() {
      currentIndex = -1;
      currentObject = null;
      if (collectionRef.Count != currentSize) {
        throw new global::System.InvalidOperationException("Collection modified.");
      }
    }

    public void Dispose() {
      currentIndex = -1;
      currentObject = null;
    }
  }


  public map_subscriptionclients() : this(RobotRaconteurNETPINVOKE.new_map_subscriptionclients__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public map_subscriptionclients(map_subscriptionclients other) : this(RobotRaconteurNETPINVOKE.new_map_subscriptionclients__SWIG_1(map_subscriptionclients.getCPtr(other)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private uint size() {
    uint ret = RobotRaconteurNETPINVOKE.map_subscriptionclients_size(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool empty() {
    bool ret = RobotRaconteurNETPINVOKE.map_subscriptionclients_empty(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Clear() {
    RobotRaconteurNETPINVOKE.map_subscriptionclients_Clear(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private WrappedServiceStub getitem(WrappedServiceSubscriptionClientID key) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.map_subscriptionclients_getitem(swigCPtr, WrappedServiceSubscriptionClientID.getCPtr(key));
    WrappedServiceStub ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceStub(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void setitem(WrappedServiceSubscriptionClientID key, WrappedServiceStub x) {
    RobotRaconteurNETPINVOKE.map_subscriptionclients_setitem(swigCPtr, WrappedServiceSubscriptionClientID.getCPtr(key), WrappedServiceStub.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public bool ContainsKey(WrappedServiceSubscriptionClientID key) {
    bool ret = RobotRaconteurNETPINVOKE.map_subscriptionclients_ContainsKey(swigCPtr, WrappedServiceSubscriptionClientID.getCPtr(key));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Add(WrappedServiceSubscriptionClientID key, WrappedServiceStub value) {
    RobotRaconteurNETPINVOKE.map_subscriptionclients_Add(swigCPtr, WrappedServiceSubscriptionClientID.getCPtr(key), WrappedServiceStub.getCPtr(value));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public bool Remove(WrappedServiceSubscriptionClientID key) {
    bool ret = RobotRaconteurNETPINVOKE.map_subscriptionclients_Remove(swigCPtr, WrappedServiceSubscriptionClientID.getCPtr(key));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private global::System.IntPtr create_iterator_begin() {
    global::System.IntPtr ret = RobotRaconteurNETPINVOKE.map_subscriptionclients_create_iterator_begin(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private WrappedServiceSubscriptionClientID get_next_key(global::System.IntPtr swigiterator) {
    WrappedServiceSubscriptionClientID ret = new WrappedServiceSubscriptionClientID(RobotRaconteurNETPINVOKE.map_subscriptionclients_get_next_key(swigCPtr, swigiterator), false);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void destroy_iterator(global::System.IntPtr swigiterator) {
    RobotRaconteurNETPINVOKE.map_subscriptionclients_destroy_iterator(swigCPtr, swigiterator);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class vectorptr_wrappedservicesubscriptionnode : global::System.IDisposable, global::System.Collections.IEnumerable, global::System.Collections.Generic.IEnumerable<WrappedServiceSubscriptionFilterNode>
 {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal vectorptr_wrappedservicesubscriptionnode(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(vectorptr_wrappedservicesubscriptionnode obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~vectorptr_wrappedservicesubscriptionnode() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_vectorptr_wrappedservicesubscriptionnode(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public vectorptr_wrappedservicesubscriptionnode(global::System.Collections.IEnumerable c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (WrappedServiceSubscriptionFilterNode element in c) {
      this.Add(element);
    }
  }

  public vectorptr_wrappedservicesubscriptionnode(global::System.Collections.Generic.IEnumerable<WrappedServiceSubscriptionFilterNode> c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (WrappedServiceSubscriptionFilterNode element in c) {
      this.Add(element);
    }
  }

  public bool IsFixedSize {
    get {
      return false;
    }
  }

  public bool IsReadOnly {
    get {
      return false;
    }
  }

  public WrappedServiceSubscriptionFilterNode this[int index]  {
    get {
      return getitem(index);
    }
    set {
      setitem(index, value);
    }
  }

  public int Capacity {
    get {
      return (int)capacity();
    }
    set {
      if (value < size())
        throw new global::System.ArgumentOutOfRangeException("Capacity");
      reserve((uint)value);
    }
  }

  public int Count {
    get {
      return (int)size();
    }
  }

  public bool IsSynchronized {
    get {
      return false;
    }
  }

  public void CopyTo(WrappedServiceSubscriptionFilterNode[] array)
  {
    CopyTo(0, array, 0, this.Count);
  }

  public void CopyTo(WrappedServiceSubscriptionFilterNode[] array, int arrayIndex)
  {
    CopyTo(0, array, arrayIndex, this.Count);
  }

  public void CopyTo(int index, WrappedServiceSubscriptionFilterNode[] array, int arrayIndex, int count)
  {
    if (array == null)
      throw new global::System.ArgumentNullException("array");
    if (index < 0)
      throw new global::System.ArgumentOutOfRangeException("index", "Value is less than zero");
    if (arrayIndex < 0)
      throw new global::System.ArgumentOutOfRangeException("arrayIndex", "Value is less than zero");
    if (count < 0)
      throw new global::System.ArgumentOutOfRangeException("count", "Value is less than zero");
    if (array.Rank > 1)
      throw new global::System.ArgumentException("Multi dimensional array.", "array");
    if (index+count > this.Count || arrayIndex+count > array.Length)
      throw new global::System.ArgumentException("Number of elements to copy is too large.");
    for (int i=0; i<count; i++)
      array.SetValue(getitemcopy(index+i), arrayIndex+i);
  }

  public WrappedServiceSubscriptionFilterNode[] ToArray() {
    WrappedServiceSubscriptionFilterNode[] array = new WrappedServiceSubscriptionFilterNode[this.Count];
    this.CopyTo(array);
    return array;
  }

  global::System.Collections.Generic.IEnumerator<WrappedServiceSubscriptionFilterNode> global::System.Collections.Generic.IEnumerable<WrappedServiceSubscriptionFilterNode>.GetEnumerator() {
    return new vectorptr_wrappedservicesubscriptionnodeEnumerator(this);
  }

  global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator() {
    return new vectorptr_wrappedservicesubscriptionnodeEnumerator(this);
  }

  public vectorptr_wrappedservicesubscriptionnodeEnumerator GetEnumerator() {
    return new vectorptr_wrappedservicesubscriptionnodeEnumerator(this);
  }

  // Type-safe enumerator
  /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown
  /// whenever the collection is modified. This has been done for changes in the size of the
  /// collection but not when one of the elements of the collection is modified as it is a bit
  /// tricky to detect unmanaged code that modifies the collection under our feet.
  public sealed class vectorptr_wrappedservicesubscriptionnodeEnumerator : global::System.Collections.IEnumerator
    , global::System.Collections.Generic.IEnumerator<WrappedServiceSubscriptionFilterNode>
  {
    private vectorptr_wrappedservicesubscriptionnode collectionRef;
    private int currentIndex;
    private object currentObject;
    private int currentSize;

    public vectorptr_wrappedservicesubscriptionnodeEnumerator(vectorptr_wrappedservicesubscriptionnode collection) {
      collectionRef = collection;
      currentIndex = -1;
      currentObject = null;
      currentSize = collectionRef.Count;
    }

    // Type-safe iterator Current
    public WrappedServiceSubscriptionFilterNode Current {
      get {
        if (currentIndex == -1)
          throw new global::System.InvalidOperationException("Enumeration not started.");
        if (currentIndex > currentSize - 1)
          throw new global::System.InvalidOperationException("Enumeration finished.");
        if (currentObject == null)
          throw new global::System.InvalidOperationException("Collection modified.");
        return (WrappedServiceSubscriptionFilterNode)currentObject;
      }
    }

    // Type-unsafe IEnumerator.Current
    object global::System.Collections.IEnumerator.Current {
      get {
        return Current;
      }
    }

    public bool MoveNext() {
      int size = collectionRef.Count;
      bool moveOkay = (currentIndex+1 < size) && (size == currentSize);
      if (moveOkay) {
        currentIndex++;
        currentObject = collectionRef[currentIndex];
      } else {
        currentObject = null;
      }
      return moveOkay;
    }

    public void Reset() {
      currentIndex = -1;
      currentObject = null;
      if (collectionRef.Count != currentSize) {
        throw new global::System.InvalidOperationException("Collection modified.");
      }
    }

    public void Dispose() {
        currentIndex = -1;
        currentObject = null;
    }
  }

  public void Clear() {
    RobotRaconteurNETPINVOKE.vectorptr_wrappedservicesubscriptionnode_Clear(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Add(WrappedServiceSubscriptionFilterNode x) {
    RobotRaconteurNETPINVOKE.vectorptr_wrappedservicesubscriptionnode_Add(swigCPtr, WrappedServiceSubscriptionFilterNode.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private uint size() {
    uint ret = RobotRaconteurNETPINVOKE.vectorptr_wrappedservicesubscriptionnode_size(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private uint capacity() {
    uint ret = RobotRaconteurNETPINVOKE.vectorptr_wrappedservicesubscriptionnode_capacity(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void reserve(uint n) {
    RobotRaconteurNETPINVOKE.vectorptr_wrappedservicesubscriptionnode_reserve(swigCPtr, n);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_wrappedservicesubscriptionnode() : this(RobotRaconteurNETPINVOKE.new_vectorptr_wrappedservicesubscriptionnode__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_wrappedservicesubscriptionnode(vectorptr_wrappedservicesubscriptionnode other) : this(RobotRaconteurNETPINVOKE.new_vectorptr_wrappedservicesubscriptionnode__SWIG_1(vectorptr_wrappedservicesubscriptionnode.getCPtr(other)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_wrappedservicesubscriptionnode(int capacity) : this(RobotRaconteurNETPINVOKE.new_vectorptr_wrappedservicesubscriptionnode__SWIG_2(capacity), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private WrappedServiceSubscriptionFilterNode getitemcopy(int index) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_wrappedservicesubscriptionnode_getitemcopy(swigCPtr, index);
    WrappedServiceSubscriptionFilterNode ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceSubscriptionFilterNode(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private WrappedServiceSubscriptionFilterNode getitem(int index) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_wrappedservicesubscriptionnode_getitem(swigCPtr, index);
    WrappedServiceSubscriptionFilterNode ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceSubscriptionFilterNode(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void setitem(int index, WrappedServiceSubscriptionFilterNode val) {
    RobotRaconteurNETPINVOKE.vectorptr_wrappedservicesubscriptionnode_setitem(swigCPtr, index, WrappedServiceSubscriptionFilterNode.getCPtr(val));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void AddRange(vectorptr_wrappedservicesubscriptionnode values) {
    RobotRaconteurNETPINVOKE.vectorptr_wrappedservicesubscriptionnode_AddRange(swigCPtr, vectorptr_wrappedservicesubscriptionnode.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_wrappedservicesubscriptionnode GetRange(int index, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_wrappedservicesubscriptionnode_GetRange(swigCPtr, index, count);
    vectorptr_wrappedservicesubscriptionnode ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_wrappedservicesubscriptionnode(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Insert(int index, WrappedServiceSubscriptionFilterNode x) {
    RobotRaconteurNETPINVOKE.vectorptr_wrappedservicesubscriptionnode_Insert(swigCPtr, index, WrappedServiceSubscriptionFilterNode.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void InsertRange(int index, vectorptr_wrappedservicesubscriptionnode values) {
    RobotRaconteurNETPINVOKE.vectorptr_wrappedservicesubscriptionnode_InsertRange(swigCPtr, index, vectorptr_wrappedservicesubscriptionnode.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveAt(int index) {
    RobotRaconteurNETPINVOKE.vectorptr_wrappedservicesubscriptionnode_RemoveAt(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveRange(int index, int count) {
    RobotRaconteurNETPINVOKE.vectorptr_wrappedservicesubscriptionnode_RemoveRange(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static vectorptr_wrappedservicesubscriptionnode Repeat(WrappedServiceSubscriptionFilterNode value, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_wrappedservicesubscriptionnode_Repeat(WrappedServiceSubscriptionFilterNode.getCPtr(value), count);
    vectorptr_wrappedservicesubscriptionnode ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_wrappedservicesubscriptionnode(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Reverse() {
    RobotRaconteurNETPINVOKE.vectorptr_wrappedservicesubscriptionnode_Reverse__SWIG_0(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Reverse(int index, int count) {
    RobotRaconteurNETPINVOKE.vectorptr_wrappedservicesubscriptionnode_Reverse__SWIG_1(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SetRange(int index, vectorptr_wrappedservicesubscriptionnode values) {
    RobotRaconteurNETPINVOKE.vectorptr_wrappedservicesubscriptionnode_SetRange(swigCPtr, index, vectorptr_wrappedservicesubscriptionnode.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class vectorptr_subscriptionclientid : global::System.IDisposable, global::System.Collections.IEnumerable, global::System.Collections.Generic.IEnumerable<WrappedServiceSubscriptionClientID>
 {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal vectorptr_subscriptionclientid(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(vectorptr_subscriptionclientid obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~vectorptr_subscriptionclientid() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_vectorptr_subscriptionclientid(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public vectorptr_subscriptionclientid(global::System.Collections.IEnumerable c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (WrappedServiceSubscriptionClientID element in c) {
      this.Add(element);
    }
  }

  public vectorptr_subscriptionclientid(global::System.Collections.Generic.IEnumerable<WrappedServiceSubscriptionClientID> c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (WrappedServiceSubscriptionClientID element in c) {
      this.Add(element);
    }
  }

  public bool IsFixedSize {
    get {
      return false;
    }
  }

  public bool IsReadOnly {
    get {
      return false;
    }
  }

  public WrappedServiceSubscriptionClientID this[int index]  {
    get {
      return getitem(index);
    }
    set {
      setitem(index, value);
    }
  }

  public int Capacity {
    get {
      return (int)capacity();
    }
    set {
      if (value < size())
        throw new global::System.ArgumentOutOfRangeException("Capacity");
      reserve((uint)value);
    }
  }

  public int Count {
    get {
      return (int)size();
    }
  }

  public bool IsSynchronized {
    get {
      return false;
    }
  }

  public void CopyTo(WrappedServiceSubscriptionClientID[] array)
  {
    CopyTo(0, array, 0, this.Count);
  }

  public void CopyTo(WrappedServiceSubscriptionClientID[] array, int arrayIndex)
  {
    CopyTo(0, array, arrayIndex, this.Count);
  }

  public void CopyTo(int index, WrappedServiceSubscriptionClientID[] array, int arrayIndex, int count)
  {
    if (array == null)
      throw new global::System.ArgumentNullException("array");
    if (index < 0)
      throw new global::System.ArgumentOutOfRangeException("index", "Value is less than zero");
    if (arrayIndex < 0)
      throw new global::System.ArgumentOutOfRangeException("arrayIndex", "Value is less than zero");
    if (count < 0)
      throw new global::System.ArgumentOutOfRangeException("count", "Value is less than zero");
    if (array.Rank > 1)
      throw new global::System.ArgumentException("Multi dimensional array.", "array");
    if (index+count > this.Count || arrayIndex+count > array.Length)
      throw new global::System.ArgumentException("Number of elements to copy is too large.");
    for (int i=0; i<count; i++)
      array.SetValue(getitemcopy(index+i), arrayIndex+i);
  }

  public WrappedServiceSubscriptionClientID[] ToArray() {
    WrappedServiceSubscriptionClientID[] array = new WrappedServiceSubscriptionClientID[this.Count];
    this.CopyTo(array);
    return array;
  }

  global::System.Collections.Generic.IEnumerator<WrappedServiceSubscriptionClientID> global::System.Collections.Generic.IEnumerable<WrappedServiceSubscriptionClientID>.GetEnumerator() {
    return new vectorptr_subscriptionclientidEnumerator(this);
  }

  global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator() {
    return new vectorptr_subscriptionclientidEnumerator(this);
  }

  public vectorptr_subscriptionclientidEnumerator GetEnumerator() {
    return new vectorptr_subscriptionclientidEnumerator(this);
  }

  // Type-safe enumerator
  /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown
  /// whenever the collection is modified. This has been done for changes in the size of the
  /// collection but not when one of the elements of the collection is modified as it is a bit
  /// tricky to detect unmanaged code that modifies the collection under our feet.
  public sealed class vectorptr_subscriptionclientidEnumerator : global::System.Collections.IEnumerator
    , global::System.Collections.Generic.IEnumerator<WrappedServiceSubscriptionClientID>
  {
    private vectorptr_subscriptionclientid collectionRef;
    private int currentIndex;
    private object currentObject;
    private int currentSize;

    public vectorptr_subscriptionclientidEnumerator(vectorptr_subscriptionclientid collection) {
      collectionRef = collection;
      currentIndex = -1;
      currentObject = null;
      currentSize = collectionRef.Count;
    }

    // Type-safe iterator Current
    public WrappedServiceSubscriptionClientID Current {
      get {
        if (currentIndex == -1)
          throw new global::System.InvalidOperationException("Enumeration not started.");
        if (currentIndex > currentSize - 1)
          throw new global::System.InvalidOperationException("Enumeration finished.");
        if (currentObject == null)
          throw new global::System.InvalidOperationException("Collection modified.");
        return (WrappedServiceSubscriptionClientID)currentObject;
      }
    }

    // Type-unsafe IEnumerator.Current
    object global::System.Collections.IEnumerator.Current {
      get {
        return Current;
      }
    }

    public bool MoveNext() {
      int size = collectionRef.Count;
      bool moveOkay = (currentIndex+1 < size) && (size == currentSize);
      if (moveOkay) {
        currentIndex++;
        currentObject = collectionRef[currentIndex];
      } else {
        currentObject = null;
      }
      return moveOkay;
    }

    public void Reset() {
      currentIndex = -1;
      currentObject = null;
      if (collectionRef.Count != currentSize) {
        throw new global::System.InvalidOperationException("Collection modified.");
      }
    }

    public void Dispose() {
        currentIndex = -1;
        currentObject = null;
    }
  }

  public void Clear() {
    RobotRaconteurNETPINVOKE.vectorptr_subscriptionclientid_Clear(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Add(WrappedServiceSubscriptionClientID x) {
    RobotRaconteurNETPINVOKE.vectorptr_subscriptionclientid_Add(swigCPtr, WrappedServiceSubscriptionClientID.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private uint size() {
    uint ret = RobotRaconteurNETPINVOKE.vectorptr_subscriptionclientid_size(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private uint capacity() {
    uint ret = RobotRaconteurNETPINVOKE.vectorptr_subscriptionclientid_capacity(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void reserve(uint n) {
    RobotRaconteurNETPINVOKE.vectorptr_subscriptionclientid_reserve(swigCPtr, n);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_subscriptionclientid() : this(RobotRaconteurNETPINVOKE.new_vectorptr_subscriptionclientid__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_subscriptionclientid(vectorptr_subscriptionclientid other) : this(RobotRaconteurNETPINVOKE.new_vectorptr_subscriptionclientid__SWIG_1(vectorptr_subscriptionclientid.getCPtr(other)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_subscriptionclientid(int capacity) : this(RobotRaconteurNETPINVOKE.new_vectorptr_subscriptionclientid__SWIG_2(capacity), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private WrappedServiceSubscriptionClientID getitemcopy(int index) {
    WrappedServiceSubscriptionClientID ret = new WrappedServiceSubscriptionClientID(RobotRaconteurNETPINVOKE.vectorptr_subscriptionclientid_getitemcopy(swigCPtr, index), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private WrappedServiceSubscriptionClientID getitem(int index) {
    WrappedServiceSubscriptionClientID ret = new WrappedServiceSubscriptionClientID(RobotRaconteurNETPINVOKE.vectorptr_subscriptionclientid_getitem(swigCPtr, index), false);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void setitem(int index, WrappedServiceSubscriptionClientID val) {
    RobotRaconteurNETPINVOKE.vectorptr_subscriptionclientid_setitem(swigCPtr, index, WrappedServiceSubscriptionClientID.getCPtr(val));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void AddRange(vectorptr_subscriptionclientid values) {
    RobotRaconteurNETPINVOKE.vectorptr_subscriptionclientid_AddRange(swigCPtr, vectorptr_subscriptionclientid.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorptr_subscriptionclientid GetRange(int index, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_subscriptionclientid_GetRange(swigCPtr, index, count);
    vectorptr_subscriptionclientid ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_subscriptionclientid(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Insert(int index, WrappedServiceSubscriptionClientID x) {
    RobotRaconteurNETPINVOKE.vectorptr_subscriptionclientid_Insert(swigCPtr, index, WrappedServiceSubscriptionClientID.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void InsertRange(int index, vectorptr_subscriptionclientid values) {
    RobotRaconteurNETPINVOKE.vectorptr_subscriptionclientid_InsertRange(swigCPtr, index, vectorptr_subscriptionclientid.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveAt(int index) {
    RobotRaconteurNETPINVOKE.vectorptr_subscriptionclientid_RemoveAt(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveRange(int index, int count) {
    RobotRaconteurNETPINVOKE.vectorptr_subscriptionclientid_RemoveRange(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static vectorptr_subscriptionclientid Repeat(WrappedServiceSubscriptionClientID value, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vectorptr_subscriptionclientid_Repeat(WrappedServiceSubscriptionClientID.getCPtr(value), count);
    vectorptr_subscriptionclientid ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_subscriptionclientid(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Reverse() {
    RobotRaconteurNETPINVOKE.vectorptr_subscriptionclientid_Reverse__SWIG_0(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Reverse(int index, int count) {
    RobotRaconteurNETPINVOKE.vectorptr_subscriptionclientid_Reverse__SWIG_1(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SetRange(int index, vectorptr_subscriptionclientid values) {
    RobotRaconteurNETPINVOKE.vectorptr_subscriptionclientid_SetRange(swigCPtr, index, vectorptr_subscriptionclientid.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class vector_wrappedservicesubscriptionmanagerdetails : global::System.IDisposable, global::System.Collections.IEnumerable, global::System.Collections.Generic.IEnumerable<WrappedServiceSubscriptionManagerDetails>
 {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal vector_wrappedservicesubscriptionmanagerdetails(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(vector_wrappedservicesubscriptionmanagerdetails obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~vector_wrappedservicesubscriptionmanagerdetails() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_vector_wrappedservicesubscriptionmanagerdetails(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public vector_wrappedservicesubscriptionmanagerdetails(global::System.Collections.IEnumerable c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (WrappedServiceSubscriptionManagerDetails element in c) {
      this.Add(element);
    }
  }

  public vector_wrappedservicesubscriptionmanagerdetails(global::System.Collections.Generic.IEnumerable<WrappedServiceSubscriptionManagerDetails> c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (WrappedServiceSubscriptionManagerDetails element in c) {
      this.Add(element);
    }
  }

  public bool IsFixedSize {
    get {
      return false;
    }
  }

  public bool IsReadOnly {
    get {
      return false;
    }
  }

  public WrappedServiceSubscriptionManagerDetails this[int index]  {
    get {
      return getitem(index);
    }
    set {
      setitem(index, value);
    }
  }

  public int Capacity {
    get {
      return (int)capacity();
    }
    set {
      if (value < size())
        throw new global::System.ArgumentOutOfRangeException("Capacity");
      reserve((uint)value);
    }
  }

  public int Count {
    get {
      return (int)size();
    }
  }

  public bool IsSynchronized {
    get {
      return false;
    }
  }

  public void CopyTo(WrappedServiceSubscriptionManagerDetails[] array)
  {
    CopyTo(0, array, 0, this.Count);
  }

  public void CopyTo(WrappedServiceSubscriptionManagerDetails[] array, int arrayIndex)
  {
    CopyTo(0, array, arrayIndex, this.Count);
  }

  public void CopyTo(int index, WrappedServiceSubscriptionManagerDetails[] array, int arrayIndex, int count)
  {
    if (array == null)
      throw new global::System.ArgumentNullException("array");
    if (index < 0)
      throw new global::System.ArgumentOutOfRangeException("index", "Value is less than zero");
    if (arrayIndex < 0)
      throw new global::System.ArgumentOutOfRangeException("arrayIndex", "Value is less than zero");
    if (count < 0)
      throw new global::System.ArgumentOutOfRangeException("count", "Value is less than zero");
    if (array.Rank > 1)
      throw new global::System.ArgumentException("Multi dimensional array.", "array");
    if (index+count > this.Count || arrayIndex+count > array.Length)
      throw new global::System.ArgumentException("Number of elements to copy is too large.");
    for (int i=0; i<count; i++)
      array.SetValue(getitemcopy(index+i), arrayIndex+i);
  }

  public WrappedServiceSubscriptionManagerDetails[] ToArray() {
    WrappedServiceSubscriptionManagerDetails[] array = new WrappedServiceSubscriptionManagerDetails[this.Count];
    this.CopyTo(array);
    return array;
  }

  global::System.Collections.Generic.IEnumerator<WrappedServiceSubscriptionManagerDetails> global::System.Collections.Generic.IEnumerable<WrappedServiceSubscriptionManagerDetails>.GetEnumerator() {
    return new vector_wrappedservicesubscriptionmanagerdetailsEnumerator(this);
  }

  global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator() {
    return new vector_wrappedservicesubscriptionmanagerdetailsEnumerator(this);
  }

  public vector_wrappedservicesubscriptionmanagerdetailsEnumerator GetEnumerator() {
    return new vector_wrappedservicesubscriptionmanagerdetailsEnumerator(this);
  }

  // Type-safe enumerator
  /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown
  /// whenever the collection is modified. This has been done for changes in the size of the
  /// collection but not when one of the elements of the collection is modified as it is a bit
  /// tricky to detect unmanaged code that modifies the collection under our feet.
  public sealed class vector_wrappedservicesubscriptionmanagerdetailsEnumerator : global::System.Collections.IEnumerator
    , global::System.Collections.Generic.IEnumerator<WrappedServiceSubscriptionManagerDetails>
  {
    private vector_wrappedservicesubscriptionmanagerdetails collectionRef;
    private int currentIndex;
    private object currentObject;
    private int currentSize;

    public vector_wrappedservicesubscriptionmanagerdetailsEnumerator(vector_wrappedservicesubscriptionmanagerdetails collection) {
      collectionRef = collection;
      currentIndex = -1;
      currentObject = null;
      currentSize = collectionRef.Count;
    }

    // Type-safe iterator Current
    public WrappedServiceSubscriptionManagerDetails Current {
      get {
        if (currentIndex == -1)
          throw new global::System.InvalidOperationException("Enumeration not started.");
        if (currentIndex > currentSize - 1)
          throw new global::System.InvalidOperationException("Enumeration finished.");
        if (currentObject == null)
          throw new global::System.InvalidOperationException("Collection modified.");
        return (WrappedServiceSubscriptionManagerDetails)currentObject;
      }
    }

    // Type-unsafe IEnumerator.Current
    object global::System.Collections.IEnumerator.Current {
      get {
        return Current;
      }
    }

    public bool MoveNext() {
      int size = collectionRef.Count;
      bool moveOkay = (currentIndex+1 < size) && (size == currentSize);
      if (moveOkay) {
        currentIndex++;
        currentObject = collectionRef[currentIndex];
      } else {
        currentObject = null;
      }
      return moveOkay;
    }

    public void Reset() {
      currentIndex = -1;
      currentObject = null;
      if (collectionRef.Count != currentSize) {
        throw new global::System.InvalidOperationException("Collection modified.");
      }
    }

    public void Dispose() {
        currentIndex = -1;
        currentObject = null;
    }
  }

  public void Clear() {
    RobotRaconteurNETPINVOKE.vector_wrappedservicesubscriptionmanagerdetails_Clear(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Add(WrappedServiceSubscriptionManagerDetails x) {
    RobotRaconteurNETPINVOKE.vector_wrappedservicesubscriptionmanagerdetails_Add(swigCPtr, WrappedServiceSubscriptionManagerDetails.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private uint size() {
    uint ret = RobotRaconteurNETPINVOKE.vector_wrappedservicesubscriptionmanagerdetails_size(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private uint capacity() {
    uint ret = RobotRaconteurNETPINVOKE.vector_wrappedservicesubscriptionmanagerdetails_capacity(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void reserve(uint n) {
    RobotRaconteurNETPINVOKE.vector_wrappedservicesubscriptionmanagerdetails_reserve(swigCPtr, n);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vector_wrappedservicesubscriptionmanagerdetails() : this(RobotRaconteurNETPINVOKE.new_vector_wrappedservicesubscriptionmanagerdetails__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vector_wrappedservicesubscriptionmanagerdetails(vector_wrappedservicesubscriptionmanagerdetails other) : this(RobotRaconteurNETPINVOKE.new_vector_wrappedservicesubscriptionmanagerdetails__SWIG_1(vector_wrappedservicesubscriptionmanagerdetails.getCPtr(other)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vector_wrappedservicesubscriptionmanagerdetails(int capacity) : this(RobotRaconteurNETPINVOKE.new_vector_wrappedservicesubscriptionmanagerdetails__SWIG_2(capacity), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private WrappedServiceSubscriptionManagerDetails getitemcopy(int index) {
    WrappedServiceSubscriptionManagerDetails ret = new WrappedServiceSubscriptionManagerDetails(RobotRaconteurNETPINVOKE.vector_wrappedservicesubscriptionmanagerdetails_getitemcopy(swigCPtr, index), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private WrappedServiceSubscriptionManagerDetails getitem(int index) {
    WrappedServiceSubscriptionManagerDetails ret = new WrappedServiceSubscriptionManagerDetails(RobotRaconteurNETPINVOKE.vector_wrappedservicesubscriptionmanagerdetails_getitem(swigCPtr, index), false);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void setitem(int index, WrappedServiceSubscriptionManagerDetails val) {
    RobotRaconteurNETPINVOKE.vector_wrappedservicesubscriptionmanagerdetails_setitem(swigCPtr, index, WrappedServiceSubscriptionManagerDetails.getCPtr(val));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void AddRange(vector_wrappedservicesubscriptionmanagerdetails values) {
    RobotRaconteurNETPINVOKE.vector_wrappedservicesubscriptionmanagerdetails_AddRange(swigCPtr, vector_wrappedservicesubscriptionmanagerdetails.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vector_wrappedservicesubscriptionmanagerdetails GetRange(int index, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vector_wrappedservicesubscriptionmanagerdetails_GetRange(swigCPtr, index, count);
    vector_wrappedservicesubscriptionmanagerdetails ret = (cPtr == global::System.IntPtr.Zero) ? null : new vector_wrappedservicesubscriptionmanagerdetails(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Insert(int index, WrappedServiceSubscriptionManagerDetails x) {
    RobotRaconteurNETPINVOKE.vector_wrappedservicesubscriptionmanagerdetails_Insert(swigCPtr, index, WrappedServiceSubscriptionManagerDetails.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void InsertRange(int index, vector_wrappedservicesubscriptionmanagerdetails values) {
    RobotRaconteurNETPINVOKE.vector_wrappedservicesubscriptionmanagerdetails_InsertRange(swigCPtr, index, vector_wrappedservicesubscriptionmanagerdetails.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveAt(int index) {
    RobotRaconteurNETPINVOKE.vector_wrappedservicesubscriptionmanagerdetails_RemoveAt(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveRange(int index, int count) {
    RobotRaconteurNETPINVOKE.vector_wrappedservicesubscriptionmanagerdetails_RemoveRange(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static vector_wrappedservicesubscriptionmanagerdetails Repeat(WrappedServiceSubscriptionManagerDetails value, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vector_wrappedservicesubscriptionmanagerdetails_Repeat(WrappedServiceSubscriptionManagerDetails.getCPtr(value), count);
    vector_wrappedservicesubscriptionmanagerdetails ret = (cPtr == global::System.IntPtr.Zero) ? null : new vector_wrappedservicesubscriptionmanagerdetails(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Reverse() {
    RobotRaconteurNETPINVOKE.vector_wrappedservicesubscriptionmanagerdetails_Reverse__SWIG_0(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Reverse(int index, int count) {
    RobotRaconteurNETPINVOKE.vector_wrappedservicesubscriptionmanagerdetails_Reverse__SWIG_1(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SetRange(int index, vector_wrappedservicesubscriptionmanagerdetails values) {
    RobotRaconteurNETPINVOKE.vector_wrappedservicesubscriptionmanagerdetails_SetRange(swigCPtr, index, vector_wrappedservicesubscriptionmanagerdetails.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class ServiceSubscriptionFilterAttribute : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal ServiceSubscriptionFilterAttribute(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(ServiceSubscriptionFilterAttribute obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~ServiceSubscriptionFilterAttribute() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_ServiceSubscriptionFilterAttribute(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public string Name {
    set {
      RobotRaconteurNETPINVOKE.ServiceSubscriptionFilterAttribute_Name_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.ServiceSubscriptionFilterAttribute_Name_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string Value {
    set {
      RobotRaconteurNETPINVOKE.ServiceSubscriptionFilterAttribute_Value_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.ServiceSubscriptionFilterAttribute_Value_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public bool UseRegex {
    set {
      RobotRaconteurNETPINVOKE.ServiceSubscriptionFilterAttribute_UseRegex_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      bool ret = RobotRaconteurNETPINVOKE.ServiceSubscriptionFilterAttribute_UseRegex_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public ServiceSubscriptionFilterAttribute(string value) : this(RobotRaconteurNETPINVOKE.new_ServiceSubscriptionFilterAttribute__SWIG_0(value), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public ServiceSubscriptionFilterAttribute(string name, string value) : this(RobotRaconteurNETPINVOKE.new_ServiceSubscriptionFilterAttribute__SWIG_1(name, value), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public bool IsMatch(string value) {
    bool ret = RobotRaconteurNETPINVOKE.ServiceSubscriptionFilterAttribute_IsMatch__SWIG_0(swigCPtr, value);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool IsMatch(string name, string value) {
    bool ret = RobotRaconteurNETPINVOKE.ServiceSubscriptionFilterAttribute_IsMatch__SWIG_1(swigCPtr, name, value);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool IsMatch(vectorstring values) {
    bool ret = RobotRaconteurNETPINVOKE.ServiceSubscriptionFilterAttribute_IsMatch__SWIG_2(swigCPtr, vectorstring.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool IsMatch(map_strstr values) {
    bool ret = RobotRaconteurNETPINVOKE.ServiceSubscriptionFilterAttribute_IsMatch__SWIG_3(swigCPtr, map_strstr.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class vector_subscriptionattribute : global::System.IDisposable, global::System.Collections.IEnumerable, global::System.Collections.Generic.IEnumerable<ServiceSubscriptionFilterAttribute>
 {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal vector_subscriptionattribute(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(vector_subscriptionattribute obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~vector_subscriptionattribute() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_vector_subscriptionattribute(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public vector_subscriptionattribute(global::System.Collections.IEnumerable c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (ServiceSubscriptionFilterAttribute element in c) {
      this.Add(element);
    }
  }

  public vector_subscriptionattribute(global::System.Collections.Generic.IEnumerable<ServiceSubscriptionFilterAttribute> c) : this() {
    if (c == null)
      throw new global::System.ArgumentNullException("c");
    foreach (ServiceSubscriptionFilterAttribute element in c) {
      this.Add(element);
    }
  }

  public bool IsFixedSize {
    get {
      return false;
    }
  }

  public bool IsReadOnly {
    get {
      return false;
    }
  }

  public ServiceSubscriptionFilterAttribute this[int index]  {
    get {
      return getitem(index);
    }
    set {
      setitem(index, value);
    }
  }

  public int Capacity {
    get {
      return (int)capacity();
    }
    set {
      if (value < size())
        throw new global::System.ArgumentOutOfRangeException("Capacity");
      reserve((uint)value);
    }
  }

  public int Count {
    get {
      return (int)size();
    }
  }

  public bool IsSynchronized {
    get {
      return false;
    }
  }

  public void CopyTo(ServiceSubscriptionFilterAttribute[] array)
  {
    CopyTo(0, array, 0, this.Count);
  }

  public void CopyTo(ServiceSubscriptionFilterAttribute[] array, int arrayIndex)
  {
    CopyTo(0, array, arrayIndex, this.Count);
  }

  public void CopyTo(int index, ServiceSubscriptionFilterAttribute[] array, int arrayIndex, int count)
  {
    if (array == null)
      throw new global::System.ArgumentNullException("array");
    if (index < 0)
      throw new global::System.ArgumentOutOfRangeException("index", "Value is less than zero");
    if (arrayIndex < 0)
      throw new global::System.ArgumentOutOfRangeException("arrayIndex", "Value is less than zero");
    if (count < 0)
      throw new global::System.ArgumentOutOfRangeException("count", "Value is less than zero");
    if (array.Rank > 1)
      throw new global::System.ArgumentException("Multi dimensional array.", "array");
    if (index+count > this.Count || arrayIndex+count > array.Length)
      throw new global::System.ArgumentException("Number of elements to copy is too large.");
    for (int i=0; i<count; i++)
      array.SetValue(getitemcopy(index+i), arrayIndex+i);
  }

  public ServiceSubscriptionFilterAttribute[] ToArray() {
    ServiceSubscriptionFilterAttribute[] array = new ServiceSubscriptionFilterAttribute[this.Count];
    this.CopyTo(array);
    return array;
  }

  global::System.Collections.Generic.IEnumerator<ServiceSubscriptionFilterAttribute> global::System.Collections.Generic.IEnumerable<ServiceSubscriptionFilterAttribute>.GetEnumerator() {
    return new vector_subscriptionattributeEnumerator(this);
  }

  global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator() {
    return new vector_subscriptionattributeEnumerator(this);
  }

  public vector_subscriptionattributeEnumerator GetEnumerator() {
    return new vector_subscriptionattributeEnumerator(this);
  }

  // Type-safe enumerator
  /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown
  /// whenever the collection is modified. This has been done for changes in the size of the
  /// collection but not when one of the elements of the collection is modified as it is a bit
  /// tricky to detect unmanaged code that modifies the collection under our feet.
  public sealed class vector_subscriptionattributeEnumerator : global::System.Collections.IEnumerator
    , global::System.Collections.Generic.IEnumerator<ServiceSubscriptionFilterAttribute>
  {
    private vector_subscriptionattribute collectionRef;
    private int currentIndex;
    private object currentObject;
    private int currentSize;

    public vector_subscriptionattributeEnumerator(vector_subscriptionattribute collection) {
      collectionRef = collection;
      currentIndex = -1;
      currentObject = null;
      currentSize = collectionRef.Count;
    }

    // Type-safe iterator Current
    public ServiceSubscriptionFilterAttribute Current {
      get {
        if (currentIndex == -1)
          throw new global::System.InvalidOperationException("Enumeration not started.");
        if (currentIndex > currentSize - 1)
          throw new global::System.InvalidOperationException("Enumeration finished.");
        if (currentObject == null)
          throw new global::System.InvalidOperationException("Collection modified.");
        return (ServiceSubscriptionFilterAttribute)currentObject;
      }
    }

    // Type-unsafe IEnumerator.Current
    object global::System.Collections.IEnumerator.Current {
      get {
        return Current;
      }
    }

    public bool MoveNext() {
      int size = collectionRef.Count;
      bool moveOkay = (currentIndex+1 < size) && (size == currentSize);
      if (moveOkay) {
        currentIndex++;
        currentObject = collectionRef[currentIndex];
      } else {
        currentObject = null;
      }
      return moveOkay;
    }

    public void Reset() {
      currentIndex = -1;
      currentObject = null;
      if (collectionRef.Count != currentSize) {
        throw new global::System.InvalidOperationException("Collection modified.");
      }
    }

    public void Dispose() {
        currentIndex = -1;
        currentObject = null;
    }
  }

  public void Clear() {
    RobotRaconteurNETPINVOKE.vector_subscriptionattribute_Clear(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Add(ServiceSubscriptionFilterAttribute x) {
    RobotRaconteurNETPINVOKE.vector_subscriptionattribute_Add(swigCPtr, ServiceSubscriptionFilterAttribute.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private uint size() {
    uint ret = RobotRaconteurNETPINVOKE.vector_subscriptionattribute_size(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private uint capacity() {
    uint ret = RobotRaconteurNETPINVOKE.vector_subscriptionattribute_capacity(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void reserve(uint n) {
    RobotRaconteurNETPINVOKE.vector_subscriptionattribute_reserve(swigCPtr, n);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vector_subscriptionattribute() : this(RobotRaconteurNETPINVOKE.new_vector_subscriptionattribute__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vector_subscriptionattribute(vector_subscriptionattribute other) : this(RobotRaconteurNETPINVOKE.new_vector_subscriptionattribute__SWIG_1(vector_subscriptionattribute.getCPtr(other)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vector_subscriptionattribute(int capacity) : this(RobotRaconteurNETPINVOKE.new_vector_subscriptionattribute__SWIG_2(capacity), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private ServiceSubscriptionFilterAttribute getitemcopy(int index) {
    ServiceSubscriptionFilterAttribute ret = new ServiceSubscriptionFilterAttribute(RobotRaconteurNETPINVOKE.vector_subscriptionattribute_getitemcopy(swigCPtr, index), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private ServiceSubscriptionFilterAttribute getitem(int index) {
    ServiceSubscriptionFilterAttribute ret = new ServiceSubscriptionFilterAttribute(RobotRaconteurNETPINVOKE.vector_subscriptionattribute_getitem(swigCPtr, index), false);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void setitem(int index, ServiceSubscriptionFilterAttribute val) {
    RobotRaconteurNETPINVOKE.vector_subscriptionattribute_setitem(swigCPtr, index, ServiceSubscriptionFilterAttribute.getCPtr(val));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void AddRange(vector_subscriptionattribute values) {
    RobotRaconteurNETPINVOKE.vector_subscriptionattribute_AddRange(swigCPtr, vector_subscriptionattribute.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vector_subscriptionattribute GetRange(int index, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vector_subscriptionattribute_GetRange(swigCPtr, index, count);
    vector_subscriptionattribute ret = (cPtr == global::System.IntPtr.Zero) ? null : new vector_subscriptionattribute(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Insert(int index, ServiceSubscriptionFilterAttribute x) {
    RobotRaconteurNETPINVOKE.vector_subscriptionattribute_Insert(swigCPtr, index, ServiceSubscriptionFilterAttribute.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void InsertRange(int index, vector_subscriptionattribute values) {
    RobotRaconteurNETPINVOKE.vector_subscriptionattribute_InsertRange(swigCPtr, index, vector_subscriptionattribute.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveAt(int index) {
    RobotRaconteurNETPINVOKE.vector_subscriptionattribute_RemoveAt(swigCPtr, index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveRange(int index, int count) {
    RobotRaconteurNETPINVOKE.vector_subscriptionattribute_RemoveRange(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static vector_subscriptionattribute Repeat(ServiceSubscriptionFilterAttribute value, int count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.vector_subscriptionattribute_Repeat(ServiceSubscriptionFilterAttribute.getCPtr(value), count);
    vector_subscriptionattribute ret = (cPtr == global::System.IntPtr.Zero) ? null : new vector_subscriptionattribute(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Reverse() {
    RobotRaconteurNETPINVOKE.vector_subscriptionattribute_Reverse__SWIG_0(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Reverse(int index, int count) {
    RobotRaconteurNETPINVOKE.vector_subscriptionattribute_Reverse__SWIG_1(swigCPtr, index, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SetRange(int index, vector_subscriptionattribute values) {
    RobotRaconteurNETPINVOKE.vector_subscriptionattribute_SetRange(swigCPtr, index, vector_subscriptionattribute.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class map_subscriptionattribute : global::System.IDisposable 
    , global::System.Collections.Generic.IDictionary<string, ServiceSubscriptionFilterAttribute>
 {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal map_subscriptionattribute(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(map_subscriptionattribute obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~map_subscriptionattribute() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_map_subscriptionattribute(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }


  public ServiceSubscriptionFilterAttribute this[string key] {
    get {
      return getitem(key);
    }

    set {
      setitem(key, value);
    }
  }

  public bool TryGetValue(string key, out ServiceSubscriptionFilterAttribute value) {
    if (this.ContainsKey(key)) {
      value = this[key];
      return true;
    }
    value = default(ServiceSubscriptionFilterAttribute);
    return false;
  }

  public int Count {
    get {
      return (int)size();
    }
  }

  public bool IsReadOnly {
    get {
      return false;
    }
  }

  public global::System.Collections.Generic.ICollection<string> Keys {
    get {
      global::System.Collections.Generic.ICollection<string> keys = new global::System.Collections.Generic.List<string>();
      int size = this.Count;
      if (size > 0) {
        global::System.IntPtr iter = create_iterator_begin();
        for (int i = 0; i < size; i++) {
          keys.Add(get_next_key(iter));
        }
        destroy_iterator(iter);
      }
      return keys;
    }
  }

  public global::System.Collections.Generic.ICollection<ServiceSubscriptionFilterAttribute> Values {
    get {
      global::System.Collections.Generic.ICollection<ServiceSubscriptionFilterAttribute> vals = new global::System.Collections.Generic.List<ServiceSubscriptionFilterAttribute>();
      foreach (global::System.Collections.Generic.KeyValuePair<string, ServiceSubscriptionFilterAttribute> pair in this) {
        vals.Add(pair.Value);
      }
      return vals;
    }
  }

  public void Add(global::System.Collections.Generic.KeyValuePair<string, ServiceSubscriptionFilterAttribute> item) {
    Add(item.Key, item.Value);
  }

  public bool Remove(global::System.Collections.Generic.KeyValuePair<string, ServiceSubscriptionFilterAttribute> item) {
    if (Contains(item)) {
      return Remove(item.Key);
    } else {
      return false;
    }
  }

  public bool Contains(global::System.Collections.Generic.KeyValuePair<string, ServiceSubscriptionFilterAttribute> item) {
    if (this[item.Key] == item.Value) {
      return true;
    } else {
      return false;
    }
  }

  public void CopyTo(global::System.Collections.Generic.KeyValuePair<string, ServiceSubscriptionFilterAttribute>[] array) {
    CopyTo(array, 0);
  }

  public void CopyTo(global::System.Collections.Generic.KeyValuePair<string, ServiceSubscriptionFilterAttribute>[] array, int arrayIndex) {
    if (array == null)
      throw new global::System.ArgumentNullException("array");
    if (arrayIndex < 0)
      throw new global::System.ArgumentOutOfRangeException("arrayIndex", "Value is less than zero");
    if (array.Rank > 1)
      throw new global::System.ArgumentException("Multi dimensional array.", "array");
    if (arrayIndex+this.Count > array.Length)
      throw new global::System.ArgumentException("Number of elements to copy is too large.");

    global::System.Collections.Generic.IList<string> keyList = new global::System.Collections.Generic.List<string>(this.Keys);
    for (int i = 0; i < keyList.Count; i++) {
      string currentKey = keyList[i];
      array.SetValue(new global::System.Collections.Generic.KeyValuePair<string, ServiceSubscriptionFilterAttribute>(currentKey, this[currentKey]), arrayIndex+i);
    }
  }

  global::System.Collections.Generic.IEnumerator<global::System.Collections.Generic.KeyValuePair<string, ServiceSubscriptionFilterAttribute>> global::System.Collections.Generic.IEnumerable<global::System.Collections.Generic.KeyValuePair<string, ServiceSubscriptionFilterAttribute>>.GetEnumerator() {
    return new map_subscriptionattributeEnumerator(this);
  }

  global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator() {
    return new map_subscriptionattributeEnumerator(this);
  }

  public map_subscriptionattributeEnumerator GetEnumerator() {
    return new map_subscriptionattributeEnumerator(this);
  }

  // Type-safe enumerator
  /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown
  /// whenever the collection is modified. This has been done for changes in the size of the
  /// collection but not when one of the elements of the collection is modified as it is a bit
  /// tricky to detect unmanaged code that modifies the collection under our feet.
  public sealed class map_subscriptionattributeEnumerator : global::System.Collections.IEnumerator,
      global::System.Collections.Generic.IEnumerator<global::System.Collections.Generic.KeyValuePair<string, ServiceSubscriptionFilterAttribute>>
  {
    private map_subscriptionattribute collectionRef;
    private global::System.Collections.Generic.IList<string> keyCollection;
    private int currentIndex;
    private object currentObject;
    private int currentSize;

    public map_subscriptionattributeEnumerator(map_subscriptionattribute collection) {
      collectionRef = collection;
      keyCollection = new global::System.Collections.Generic.List<string>(collection.Keys);
      currentIndex = -1;
      currentObject = null;
      currentSize = collectionRef.Count;
    }

    // Type-safe iterator Current
    public global::System.Collections.Generic.KeyValuePair<string, ServiceSubscriptionFilterAttribute> Current {
      get {
        if (currentIndex == -1)
          throw new global::System.InvalidOperationException("Enumeration not started.");
        if (currentIndex > currentSize - 1)
          throw new global::System.InvalidOperationException("Enumeration finished.");
        if (currentObject == null)
          throw new global::System.InvalidOperationException("Collection modified.");
        return (global::System.Collections.Generic.KeyValuePair<string, ServiceSubscriptionFilterAttribute>)currentObject;
      }
    }

    // Type-unsafe IEnumerator.Current
    object global::System.Collections.IEnumerator.Current {
      get {
        return Current;
      }
    }

    public bool MoveNext() {
      int size = collectionRef.Count;
      bool moveOkay = (currentIndex+1 < size) && (size == currentSize);
      if (moveOkay) {
        currentIndex++;
        string currentKey = keyCollection[currentIndex];
        currentObject = new global::System.Collections.Generic.KeyValuePair<string, ServiceSubscriptionFilterAttribute>(currentKey, collectionRef[currentKey]);
      } else {
        currentObject = null;
      }
      return moveOkay;
    }

    public void Reset() {
      currentIndex = -1;
      currentObject = null;
      if (collectionRef.Count != currentSize) {
        throw new global::System.InvalidOperationException("Collection modified.");
      }
    }

    public void Dispose() {
      currentIndex = -1;
      currentObject = null;
    }
  }


  public map_subscriptionattribute() : this(RobotRaconteurNETPINVOKE.new_map_subscriptionattribute__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public map_subscriptionattribute(map_subscriptionattribute other) : this(RobotRaconteurNETPINVOKE.new_map_subscriptionattribute__SWIG_1(map_subscriptionattribute.getCPtr(other)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private uint size() {
    uint ret = RobotRaconteurNETPINVOKE.map_subscriptionattribute_size(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool empty() {
    bool ret = RobotRaconteurNETPINVOKE.map_subscriptionattribute_empty(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Clear() {
    RobotRaconteurNETPINVOKE.map_subscriptionattribute_Clear(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private ServiceSubscriptionFilterAttribute getitem(string key) {
    ServiceSubscriptionFilterAttribute ret = new ServiceSubscriptionFilterAttribute(RobotRaconteurNETPINVOKE.map_subscriptionattribute_getitem(swigCPtr, key), false);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void setitem(string key, ServiceSubscriptionFilterAttribute x) {
    RobotRaconteurNETPINVOKE.map_subscriptionattribute_setitem(swigCPtr, key, ServiceSubscriptionFilterAttribute.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public bool ContainsKey(string key) {
    bool ret = RobotRaconteurNETPINVOKE.map_subscriptionattribute_ContainsKey(swigCPtr, key);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Add(string key, ServiceSubscriptionFilterAttribute value) {
    RobotRaconteurNETPINVOKE.map_subscriptionattribute_Add(swigCPtr, key, ServiceSubscriptionFilterAttribute.getCPtr(value));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public bool Remove(string key) {
    bool ret = RobotRaconteurNETPINVOKE.map_subscriptionattribute_Remove(swigCPtr, key);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private global::System.IntPtr create_iterator_begin() {
    global::System.IntPtr ret = RobotRaconteurNETPINVOKE.map_subscriptionattribute_create_iterator_begin(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private string get_next_key(global::System.IntPtr swigiterator) {
    string ret = RobotRaconteurNETPINVOKE.map_subscriptionattribute_get_next_key(swigCPtr, swigiterator);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void destroy_iterator(global::System.IntPtr swigiterator) {
    RobotRaconteurNETPINVOKE.map_subscriptionattribute_destroy_iterator(swigCPtr, swigiterator);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

public enum ServiceSubscriptionFilterAttributeGroupOperation {
  OR,
  AND,
  NOR,
  NAND
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class ServiceSubscriptionFilterAttributeGroup : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal ServiceSubscriptionFilterAttributeGroup(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(ServiceSubscriptionFilterAttributeGroup obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~ServiceSubscriptionFilterAttributeGroup() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_ServiceSubscriptionFilterAttributeGroup(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public vector_subscriptionattribute Attributes {
    set {
      RobotRaconteurNETPINVOKE.ServiceSubscriptionFilterAttributeGroup_Attributes_set(swigCPtr, vector_subscriptionattribute.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.ServiceSubscriptionFilterAttributeGroup_Attributes_get(swigCPtr);
      vector_subscriptionattribute ret = (cPtr == global::System.IntPtr.Zero) ? null : new vector_subscriptionattribute(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public SWIGTYPE_p_std__vectorT_RobotRaconteur__ServiceSubscriptionFilterAttributeGroup_t Groups {
    set {
      RobotRaconteurNETPINVOKE.ServiceSubscriptionFilterAttributeGroup_Groups_set(swigCPtr, SWIGTYPE_p_std__vectorT_RobotRaconteur__ServiceSubscriptionFilterAttributeGroup_t.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.ServiceSubscriptionFilterAttributeGroup_Groups_get(swigCPtr);
      SWIGTYPE_p_std__vectorT_RobotRaconteur__ServiceSubscriptionFilterAttributeGroup_t ret = (cPtr == global::System.IntPtr.Zero) ? null : new SWIGTYPE_p_std__vectorT_RobotRaconteur__ServiceSubscriptionFilterAttributeGroup_t(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public ServiceSubscriptionFilterAttributeGroupOperation Operation {
    set {
      RobotRaconteurNETPINVOKE.ServiceSubscriptionFilterAttributeGroup_Operation_set(swigCPtr, (int)value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      ServiceSubscriptionFilterAttributeGroupOperation ret = (ServiceSubscriptionFilterAttributeGroupOperation)RobotRaconteurNETPINVOKE.ServiceSubscriptionFilterAttributeGroup_Operation_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public bool SplitStringAttribute {
    set {
      RobotRaconteurNETPINVOKE.ServiceSubscriptionFilterAttributeGroup_SplitStringAttribute_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      bool ret = RobotRaconteurNETPINVOKE.ServiceSubscriptionFilterAttributeGroup_SplitStringAttribute_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public char SplitStringDelimiter {
    set {
      RobotRaconteurNETPINVOKE.ServiceSubscriptionFilterAttributeGroup_SplitStringDelimiter_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      char ret = RobotRaconteurNETPINVOKE.ServiceSubscriptionFilterAttributeGroup_SplitStringDelimiter_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public ServiceSubscriptionFilterAttributeGroup() : this(RobotRaconteurNETPINVOKE.new_ServiceSubscriptionFilterAttributeGroup__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public ServiceSubscriptionFilterAttributeGroup(ServiceSubscriptionFilterAttributeGroupOperation operation) : this(RobotRaconteurNETPINVOKE.new_ServiceSubscriptionFilterAttributeGroup__SWIG_1((int)operation), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public ServiceSubscriptionFilterAttributeGroup(ServiceSubscriptionFilterAttributeGroupOperation operation, vector_subscriptionattribute attributes) : this(RobotRaconteurNETPINVOKE.new_ServiceSubscriptionFilterAttributeGroup__SWIG_2((int)operation, vector_subscriptionattribute.getCPtr(attributes)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public ServiceSubscriptionFilterAttributeGroup(ServiceSubscriptionFilterAttributeGroupOperation operation, SWIGTYPE_p_std__vectorT_RobotRaconteur__ServiceSubscriptionFilterAttributeGroup_t groups) : this(RobotRaconteurNETPINVOKE.new_ServiceSubscriptionFilterAttributeGroup__SWIG_3((int)operation, SWIGTYPE_p_std__vectorT_RobotRaconteur__ServiceSubscriptionFilterAttributeGroup_t.getCPtr(groups)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public bool IsMatch(string value) {
    bool ret = RobotRaconteurNETPINVOKE.ServiceSubscriptionFilterAttributeGroup_IsMatch__SWIG_0(swigCPtr, value);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool IsMatch(vectorstring values) {
    bool ret = RobotRaconteurNETPINVOKE.ServiceSubscriptionFilterAttributeGroup_IsMatch__SWIG_1(swigCPtr, vectorstring.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool IsMatch(map_strstr values) {
    bool ret = RobotRaconteurNETPINVOKE.ServiceSubscriptionFilterAttributeGroup_IsMatch__SWIG_2(swigCPtr, map_strstr.getCPtr(values));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class map_subscriptionattributegroup : global::System.IDisposable 
    , global::System.Collections.Generic.IDictionary<string, ServiceSubscriptionFilterAttributeGroup>
 {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal map_subscriptionattributegroup(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(map_subscriptionattributegroup obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~map_subscriptionattributegroup() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_map_subscriptionattributegroup(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }


  public ServiceSubscriptionFilterAttributeGroup this[string key] {
    get {
      return getitem(key);
    }

    set {
      setitem(key, value);
    }
  }

  public bool TryGetValue(string key, out ServiceSubscriptionFilterAttributeGroup value) {
    if (this.ContainsKey(key)) {
      value = this[key];
      return true;
    }
    value = default(ServiceSubscriptionFilterAttributeGroup);
    return false;
  }

  public int Count {
    get {
      return (int)size();
    }
  }

  public bool IsReadOnly {
    get {
      return false;
    }
  }

  public global::System.Collections.Generic.ICollection<string> Keys {
    get {
      global::System.Collections.Generic.ICollection<string> keys = new global::System.Collections.Generic.List<string>();
      int size = this.Count;
      if (size > 0) {
        global::System.IntPtr iter = create_iterator_begin();
        for (int i = 0; i < size; i++) {
          keys.Add(get_next_key(iter));
        }
        destroy_iterator(iter);
      }
      return keys;
    }
  }

  public global::System.Collections.Generic.ICollection<ServiceSubscriptionFilterAttributeGroup> Values {
    get {
      global::System.Collections.Generic.ICollection<ServiceSubscriptionFilterAttributeGroup> vals = new global::System.Collections.Generic.List<ServiceSubscriptionFilterAttributeGroup>();
      foreach (global::System.Collections.Generic.KeyValuePair<string, ServiceSubscriptionFilterAttributeGroup> pair in this) {
        vals.Add(pair.Value);
      }
      return vals;
    }
  }

  public void Add(global::System.Collections.Generic.KeyValuePair<string, ServiceSubscriptionFilterAttributeGroup> item) {
    Add(item.Key, item.Value);
  }

  public bool Remove(global::System.Collections.Generic.KeyValuePair<string, ServiceSubscriptionFilterAttributeGroup> item) {
    if (Contains(item)) {
      return Remove(item.Key);
    } else {
      return false;
    }
  }

  public bool Contains(global::System.Collections.Generic.KeyValuePair<string, ServiceSubscriptionFilterAttributeGroup> item) {
    if (this[item.Key] == item.Value) {
      return true;
    } else {
      return false;
    }
  }

  public void CopyTo(global::System.Collections.Generic.KeyValuePair<string, ServiceSubscriptionFilterAttributeGroup>[] array) {
    CopyTo(array, 0);
  }

  public void CopyTo(global::System.Collections.Generic.KeyValuePair<string, ServiceSubscriptionFilterAttributeGroup>[] array, int arrayIndex) {
    if (array == null)
      throw new global::System.ArgumentNullException("array");
    if (arrayIndex < 0)
      throw new global::System.ArgumentOutOfRangeException("arrayIndex", "Value is less than zero");
    if (array.Rank > 1)
      throw new global::System.ArgumentException("Multi dimensional array.", "array");
    if (arrayIndex+this.Count > array.Length)
      throw new global::System.ArgumentException("Number of elements to copy is too large.");

    global::System.Collections.Generic.IList<string> keyList = new global::System.Collections.Generic.List<string>(this.Keys);
    for (int i = 0; i < keyList.Count; i++) {
      string currentKey = keyList[i];
      array.SetValue(new global::System.Collections.Generic.KeyValuePair<string, ServiceSubscriptionFilterAttributeGroup>(currentKey, this[currentKey]), arrayIndex+i);
    }
  }

  global::System.Collections.Generic.IEnumerator<global::System.Collections.Generic.KeyValuePair<string, ServiceSubscriptionFilterAttributeGroup>> global::System.Collections.Generic.IEnumerable<global::System.Collections.Generic.KeyValuePair<string, ServiceSubscriptionFilterAttributeGroup>>.GetEnumerator() {
    return new map_subscriptionattributegroupEnumerator(this);
  }

  global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator() {
    return new map_subscriptionattributegroupEnumerator(this);
  }

  public map_subscriptionattributegroupEnumerator GetEnumerator() {
    return new map_subscriptionattributegroupEnumerator(this);
  }

  // Type-safe enumerator
  /// Note that the IEnumerator documentation requires an InvalidOperationException to be thrown
  /// whenever the collection is modified. This has been done for changes in the size of the
  /// collection but not when one of the elements of the collection is modified as it is a bit
  /// tricky to detect unmanaged code that modifies the collection under our feet.
  public sealed class map_subscriptionattributegroupEnumerator : global::System.Collections.IEnumerator,
      global::System.Collections.Generic.IEnumerator<global::System.Collections.Generic.KeyValuePair<string, ServiceSubscriptionFilterAttributeGroup>>
  {
    private map_subscriptionattributegroup collectionRef;
    private global::System.Collections.Generic.IList<string> keyCollection;
    private int currentIndex;
    private object currentObject;
    private int currentSize;

    public map_subscriptionattributegroupEnumerator(map_subscriptionattributegroup collection) {
      collectionRef = collection;
      keyCollection = new global::System.Collections.Generic.List<string>(collection.Keys);
      currentIndex = -1;
      currentObject = null;
      currentSize = collectionRef.Count;
    }

    // Type-safe iterator Current
    public global::System.Collections.Generic.KeyValuePair<string, ServiceSubscriptionFilterAttributeGroup> Current {
      get {
        if (currentIndex == -1)
          throw new global::System.InvalidOperationException("Enumeration not started.");
        if (currentIndex > currentSize - 1)
          throw new global::System.InvalidOperationException("Enumeration finished.");
        if (currentObject == null)
          throw new global::System.InvalidOperationException("Collection modified.");
        return (global::System.Collections.Generic.KeyValuePair<string, ServiceSubscriptionFilterAttributeGroup>)currentObject;
      }
    }

    // Type-unsafe IEnumerator.Current
    object global::System.Collections.IEnumerator.Current {
      get {
        return Current;
      }
    }

    public bool MoveNext() {
      int size = collectionRef.Count;
      bool moveOkay = (currentIndex+1 < size) && (size == currentSize);
      if (moveOkay) {
        currentIndex++;
        string currentKey = keyCollection[currentIndex];
        currentObject = new global::System.Collections.Generic.KeyValuePair<string, ServiceSubscriptionFilterAttributeGroup>(currentKey, collectionRef[currentKey]);
      } else {
        currentObject = null;
      }
      return moveOkay;
    }

    public void Reset() {
      currentIndex = -1;
      currentObject = null;
      if (collectionRef.Count != currentSize) {
        throw new global::System.InvalidOperationException("Collection modified.");
      }
    }

    public void Dispose() {
      currentIndex = -1;
      currentObject = null;
    }
  }


  public map_subscriptionattributegroup() : this(RobotRaconteurNETPINVOKE.new_map_subscriptionattributegroup__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public map_subscriptionattributegroup(map_subscriptionattributegroup other) : this(RobotRaconteurNETPINVOKE.new_map_subscriptionattributegroup__SWIG_1(map_subscriptionattributegroup.getCPtr(other)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private uint size() {
    uint ret = RobotRaconteurNETPINVOKE.map_subscriptionattributegroup_size(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool empty() {
    bool ret = RobotRaconteurNETPINVOKE.map_subscriptionattributegroup_empty(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Clear() {
    RobotRaconteurNETPINVOKE.map_subscriptionattributegroup_Clear(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private ServiceSubscriptionFilterAttributeGroup getitem(string key) {
    ServiceSubscriptionFilterAttributeGroup ret = new ServiceSubscriptionFilterAttributeGroup(RobotRaconteurNETPINVOKE.map_subscriptionattributegroup_getitem(swigCPtr, key), false);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void setitem(string key, ServiceSubscriptionFilterAttributeGroup x) {
    RobotRaconteurNETPINVOKE.map_subscriptionattributegroup_setitem(swigCPtr, key, ServiceSubscriptionFilterAttributeGroup.getCPtr(x));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public bool ContainsKey(string key) {
    bool ret = RobotRaconteurNETPINVOKE.map_subscriptionattributegroup_ContainsKey(swigCPtr, key);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Add(string key, ServiceSubscriptionFilterAttributeGroup value) {
    RobotRaconteurNETPINVOKE.map_subscriptionattributegroup_Add(swigCPtr, key, ServiceSubscriptionFilterAttributeGroup.getCPtr(value));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public bool Remove(string key) {
    bool ret = RobotRaconteurNETPINVOKE.map_subscriptionattributegroup_Remove(swigCPtr, key);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private global::System.IntPtr create_iterator_begin() {
    global::System.IntPtr ret = RobotRaconteurNETPINVOKE.map_subscriptionattributegroup_create_iterator_begin(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private string get_next_key(global::System.IntPtr swigiterator) {
    string ret = RobotRaconteurNETPINVOKE.map_subscriptionattributegroup_get_next_key(swigCPtr, swigiterator);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void destroy_iterator(global::System.IntPtr swigiterator) {
    RobotRaconteurNETPINVOKE.map_subscriptionattributegroup_destroy_iterator(swigCPtr, swigiterator);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedServiceSubscriptionFilterPredicateDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedServiceSubscriptionFilterPredicateDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedServiceSubscriptionFilterPredicateDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedServiceSubscriptionFilterPredicateDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedServiceSubscriptionFilterPredicateDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual bool Predicate(ServiceInfo2Wrapped info) {
    bool ret = RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionFilterPredicateDirector_Predicate(swigCPtr, ServiceInfo2Wrapped.getCPtr(info));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedServiceSubscriptionFilterPredicateDirector() : this(RobotRaconteurNETPINVOKE.new_WrappedServiceSubscriptionFilterPredicateDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("Predicate", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateWrappedServiceSubscriptionFilterPredicateDirector_0(SwigDirectorMethodPredicate);
    RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionFilterPredicateDirector_director_connect(swigCPtr, swigDelegate0);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(WrappedServiceSubscriptionFilterPredicateDirector));
    return hasDerivedMethod;
  }

  private bool SwigDirectorMethodPredicate(global::System.IntPtr info) {
    return Predicate(new ServiceInfo2Wrapped(info, false));
  }

  public delegate bool SwigDelegateWrappedServiceSubscriptionFilterPredicateDirector_0(global::System.IntPtr info);

  private SwigDelegateWrappedServiceSubscriptionFilterPredicateDirector_0 swigDelegate0;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(ServiceInfo2Wrapped) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedServiceSubscriptionFilterNode : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal WrappedServiceSubscriptionFilterNode(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedServiceSubscriptionFilterNode obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedServiceSubscriptionFilterNode() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_WrappedServiceSubscriptionFilterNode(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public NodeID NodeID {
    set {
      RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionFilterNode_NodeID_set(swigCPtr, NodeID.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionFilterNode_NodeID_get(swigCPtr);
      NodeID ret = (cPtr == global::System.IntPtr.Zero) ? null : new NodeID(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string NodeName {
    set {
      RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionFilterNode_NodeName_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionFilterNode_NodeName_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string Username {
    set {
      RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionFilterNode_Username_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionFilterNode_Username_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public MessageElementData Credentials {
    set {
      RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionFilterNode_Credentials_set(swigCPtr, MessageElementData.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionFilterNode_Credentials_get(swigCPtr);
      MessageElementData ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElementData(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public WrappedServiceSubscriptionFilterNode() : this(RobotRaconteurNETPINVOKE.new_WrappedServiceSubscriptionFilterNode(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedServiceSubscriptionFilter : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal WrappedServiceSubscriptionFilter(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedServiceSubscriptionFilter obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedServiceSubscriptionFilter() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_WrappedServiceSubscriptionFilter(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public vectorptr_wrappedservicesubscriptionnode Nodes {
    set {
      RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionFilter_Nodes_set(swigCPtr, vectorptr_wrappedservicesubscriptionnode.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionFilter_Nodes_get(swigCPtr);
      vectorptr_wrappedservicesubscriptionnode ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorptr_wrappedservicesubscriptionnode(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public vectorstring ServiceNames {
    set {
      RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionFilter_ServiceNames_set(swigCPtr, vectorstring.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionFilter_ServiceNames_get(swigCPtr);
      vectorstring ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorstring(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public vectorstring TransportSchemes {
    set {
      RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionFilter_TransportSchemes_set(swigCPtr, vectorstring.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionFilter_TransportSchemes_get(swigCPtr);
      vectorstring ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorstring(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public map_subscriptionattributegroup Attributes {
    set {
      RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionFilter_Attributes_set(swigCPtr, map_subscriptionattributegroup.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionFilter_Attributes_get(swigCPtr);
      map_subscriptionattributegroup ret = (cPtr == global::System.IntPtr.Zero) ? null : new map_subscriptionattributegroup(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public ServiceSubscriptionFilterAttributeGroupOperation AttributesMatchOperation {
    set {
      RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionFilter_AttributesMatchOperation_set(swigCPtr, (int)value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      ServiceSubscriptionFilterAttributeGroupOperation ret = (ServiceSubscriptionFilterAttributeGroupOperation)RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionFilter_AttributesMatchOperation_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public void SetRRPredicateDirector(WrappedServiceSubscriptionFilterPredicateDirector director, int id) {
    RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionFilter_SetRRPredicateDirector(swigCPtr, WrappedServiceSubscriptionFilterPredicateDirector.getCPtr(director), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public uint MaxConnections {
    set {
      RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionFilter_MaxConnections_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      uint ret = RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionFilter_MaxConnections_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public WrappedServiceSubscriptionFilter() : this(RobotRaconteurNETPINVOKE.new_WrappedServiceSubscriptionFilter(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedServiceSubscriptionClientID : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedServiceSubscriptionClientID(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedServiceSubscriptionClientID obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedServiceSubscriptionClientID() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedServiceSubscriptionClientID(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public NodeID NodeID {
    set {
      RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionClientID_NodeID_set(swigCPtr, NodeID.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionClientID_NodeID_get(swigCPtr);
      NodeID ret = (cPtr == global::System.IntPtr.Zero) ? null : new NodeID(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string ServiceName {
    set {
      RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionClientID_ServiceName_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionClientID_ServiceName_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public bool eq(WrappedServiceSubscriptionClientID id2) {
    bool ret = RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionClientID_eq(swigCPtr, WrappedServiceSubscriptionClientID.getCPtr(id2));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool ne(WrappedServiceSubscriptionClientID id2) {
    bool ret = RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionClientID_ne(swigCPtr, WrappedServiceSubscriptionClientID.getCPtr(id2));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedServiceInfo2SubscriptionDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedServiceInfo2SubscriptionDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedServiceInfo2SubscriptionDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedServiceInfo2SubscriptionDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedServiceInfo2SubscriptionDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual void ServiceDetected(WrappedServiceInfo2Subscription subscription, WrappedServiceSubscriptionClientID id, ServiceInfo2Wrapped service) {
    RobotRaconteurNETPINVOKE.WrappedServiceInfo2SubscriptionDirector_ServiceDetected(swigCPtr, WrappedServiceInfo2Subscription.getCPtr(subscription), WrappedServiceSubscriptionClientID.getCPtr(id), ServiceInfo2Wrapped.getCPtr(service));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void ServiceLost(WrappedServiceInfo2Subscription subscription, WrappedServiceSubscriptionClientID id, ServiceInfo2Wrapped service) {
    RobotRaconteurNETPINVOKE.WrappedServiceInfo2SubscriptionDirector_ServiceLost(swigCPtr, WrappedServiceInfo2Subscription.getCPtr(subscription), WrappedServiceSubscriptionClientID.getCPtr(id), ServiceInfo2Wrapped.getCPtr(service));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public WrappedServiceInfo2SubscriptionDirector() : this(RobotRaconteurNETPINVOKE.new_WrappedServiceInfo2SubscriptionDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("ServiceDetected", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateWrappedServiceInfo2SubscriptionDirector_0(SwigDirectorMethodServiceDetected);
    if (SwigDerivedClassHasMethod("ServiceLost", swigMethodTypes1))
      swigDelegate1 = new SwigDelegateWrappedServiceInfo2SubscriptionDirector_1(SwigDirectorMethodServiceLost);
    RobotRaconteurNETPINVOKE.WrappedServiceInfo2SubscriptionDirector_director_connect(swigCPtr, swigDelegate0, swigDelegate1);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(WrappedServiceInfo2SubscriptionDirector));
    return hasDerivedMethod;
  }

  private void SwigDirectorMethodServiceDetected(global::System.IntPtr subscription, global::System.IntPtr id, global::System.IntPtr service) {
    ServiceDetected((subscription == global::System.IntPtr.Zero) ? null : new WrappedServiceInfo2Subscription(subscription, true), new WrappedServiceSubscriptionClientID(id, false), new ServiceInfo2Wrapped(service, false));
  }

  private void SwigDirectorMethodServiceLost(global::System.IntPtr subscription, global::System.IntPtr id, global::System.IntPtr service) {
    ServiceLost((subscription == global::System.IntPtr.Zero) ? null : new WrappedServiceInfo2Subscription(subscription, true), new WrappedServiceSubscriptionClientID(id, false), new ServiceInfo2Wrapped(service, false));
  }

  public delegate void SwigDelegateWrappedServiceInfo2SubscriptionDirector_0(global::System.IntPtr subscription, global::System.IntPtr id, global::System.IntPtr service);
  public delegate void SwigDelegateWrappedServiceInfo2SubscriptionDirector_1(global::System.IntPtr subscription, global::System.IntPtr id, global::System.IntPtr service);

  private SwigDelegateWrappedServiceInfo2SubscriptionDirector_0 swigDelegate0;
  private SwigDelegateWrappedServiceInfo2SubscriptionDirector_1 swigDelegate1;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(WrappedServiceInfo2Subscription), typeof(WrappedServiceSubscriptionClientID), typeof(ServiceInfo2Wrapped) };
  private static global::System.Type[] swigMethodTypes1 = new global::System.Type[] { typeof(WrappedServiceInfo2Subscription), typeof(WrappedServiceSubscriptionClientID), typeof(ServiceInfo2Wrapped) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedServiceInfo2Subscription : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal WrappedServiceInfo2Subscription(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedServiceInfo2Subscription obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedServiceInfo2Subscription() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_WrappedServiceInfo2Subscription(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public map_subscriptionserviceinfo2 GetDetectedServiceInfo2() {
    map_subscriptionserviceinfo2 ret = new map_subscriptionserviceinfo2(RobotRaconteurNETPINVOKE.WrappedServiceInfo2Subscription_GetDetectedServiceInfo2(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Close() {
    RobotRaconteurNETPINVOKE.WrappedServiceInfo2Subscription_Close(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SetRRDirector(WrappedServiceInfo2SubscriptionDirector director, int id) {
    RobotRaconteurNETPINVOKE.WrappedServiceInfo2Subscription_SetRRDirector(swigCPtr, WrappedServiceInfo2SubscriptionDirector.getCPtr(director), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public RobotRaconteurNode GetNode() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceInfo2Subscription_GetNode(swigCPtr);
    RobotRaconteurNode ret = (cPtr == global::System.IntPtr.Zero) ? null : new RobotRaconteurNode(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedServiceSubscriptionDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedServiceSubscriptionDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedServiceSubscriptionDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedServiceSubscriptionDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedServiceSubscriptionDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual void ClientConnected(WrappedServiceSubscription subscription, WrappedServiceSubscriptionClientID id, WrappedServiceStub silent) {
    RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionDirector_ClientConnected(swigCPtr, WrappedServiceSubscription.getCPtr(subscription), WrappedServiceSubscriptionClientID.getCPtr(id), WrappedServiceStub.getCPtr(silent));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void ClientDisconnected(WrappedServiceSubscription subscription, WrappedServiceSubscriptionClientID id, WrappedServiceStub silent) {
    RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionDirector_ClientDisconnected(swigCPtr, WrappedServiceSubscription.getCPtr(subscription), WrappedServiceSubscriptionClientID.getCPtr(id), WrappedServiceStub.getCPtr(silent));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void ClientConnectFailed(WrappedServiceSubscription subscription, WrappedServiceSubscriptionClientID id, vectorstring url, HandlerErrorInfo error) {
    RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionDirector_ClientConnectFailed(swigCPtr, WrappedServiceSubscription.getCPtr(subscription), WrappedServiceSubscriptionClientID.getCPtr(id), vectorstring.getCPtr(url), HandlerErrorInfo.getCPtr(error));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public WrappedServiceSubscriptionDirector() : this(RobotRaconteurNETPINVOKE.new_WrappedServiceSubscriptionDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("ClientConnected", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateWrappedServiceSubscriptionDirector_0(SwigDirectorMethodClientConnected);
    if (SwigDerivedClassHasMethod("ClientDisconnected", swigMethodTypes1))
      swigDelegate1 = new SwigDelegateWrappedServiceSubscriptionDirector_1(SwigDirectorMethodClientDisconnected);
    if (SwigDerivedClassHasMethod("ClientConnectFailed", swigMethodTypes2))
      swigDelegate2 = new SwigDelegateWrappedServiceSubscriptionDirector_2(SwigDirectorMethodClientConnectFailed);
    RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionDirector_director_connect(swigCPtr, swigDelegate0, swigDelegate1, swigDelegate2);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(WrappedServiceSubscriptionDirector));
    return hasDerivedMethod;
  }

  private void SwigDirectorMethodClientConnected(global::System.IntPtr subscription, global::System.IntPtr id, global::System.IntPtr silent) {
    ClientConnected((subscription == global::System.IntPtr.Zero) ? null : new WrappedServiceSubscription(subscription, true), new WrappedServiceSubscriptionClientID(id, false), (silent == global::System.IntPtr.Zero) ? null : new WrappedServiceStub(silent, true));
  }

  private void SwigDirectorMethodClientDisconnected(global::System.IntPtr subscription, global::System.IntPtr id, global::System.IntPtr silent) {
    ClientDisconnected((subscription == global::System.IntPtr.Zero) ? null : new WrappedServiceSubscription(subscription, true), new WrappedServiceSubscriptionClientID(id, false), (silent == global::System.IntPtr.Zero) ? null : new WrappedServiceStub(silent, true));
  }

  private void SwigDirectorMethodClientConnectFailed(global::System.IntPtr subscription, global::System.IntPtr id, global::System.IntPtr url, global::System.IntPtr error) {
    ClientConnectFailed((subscription == global::System.IntPtr.Zero) ? null : new WrappedServiceSubscription(subscription, true), new WrappedServiceSubscriptionClientID(id, false), new vectorstring(url, false), new HandlerErrorInfo(error, false));
  }

  public delegate void SwigDelegateWrappedServiceSubscriptionDirector_0(global::System.IntPtr subscription, global::System.IntPtr id, global::System.IntPtr silent);
  public delegate void SwigDelegateWrappedServiceSubscriptionDirector_1(global::System.IntPtr subscription, global::System.IntPtr id, global::System.IntPtr silent);
  public delegate void SwigDelegateWrappedServiceSubscriptionDirector_2(global::System.IntPtr subscription, global::System.IntPtr id, global::System.IntPtr url, global::System.IntPtr error);

  private SwigDelegateWrappedServiceSubscriptionDirector_0 swigDelegate0;
  private SwigDelegateWrappedServiceSubscriptionDirector_1 swigDelegate1;
  private SwigDelegateWrappedServiceSubscriptionDirector_2 swigDelegate2;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(WrappedServiceSubscription), typeof(WrappedServiceSubscriptionClientID), typeof(WrappedServiceStub) };
  private static global::System.Type[] swigMethodTypes1 = new global::System.Type[] { typeof(WrappedServiceSubscription), typeof(WrappedServiceSubscriptionClientID), typeof(WrappedServiceStub) };
  private static global::System.Type[] swigMethodTypes2 = new global::System.Type[] { typeof(WrappedServiceSubscription), typeof(WrappedServiceSubscriptionClientID), typeof(vectorstring), typeof(HandlerErrorInfo) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedServiceSubscription_TryDefaultClientRes : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedServiceSubscription_TryDefaultClientRes(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedServiceSubscription_TryDefaultClientRes obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedServiceSubscription_TryDefaultClientRes() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedServiceSubscription_TryDefaultClientRes(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public bool res {
    set {
      RobotRaconteurNETPINVOKE.WrappedServiceSubscription_TryDefaultClientRes_res_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      bool ret = RobotRaconteurNETPINVOKE.WrappedServiceSubscription_TryDefaultClientRes_res_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public WrappedServiceStub client {
    set {
      RobotRaconteurNETPINVOKE.WrappedServiceSubscription_TryDefaultClientRes_client_set(swigCPtr, WrappedServiceStub.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSubscription_TryDefaultClientRes_client_get(swigCPtr);
      WrappedServiceStub ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceStub(cPtr, true);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public WrappedServiceSubscription_TryDefaultClientRes() : this(RobotRaconteurNETPINVOKE.new_WrappedServiceSubscription_TryDefaultClientRes(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedServiceSubscription : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal WrappedServiceSubscription(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedServiceSubscription obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedServiceSubscription() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_WrappedServiceSubscription(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public map_subscriptionclients GetConnectedClients() {
    map_subscriptionclients ret = new map_subscriptionclients(RobotRaconteurNETPINVOKE.WrappedServiceSubscription_GetConnectedClients(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Close() {
    RobotRaconteurNETPINVOKE.WrappedServiceSubscription_Close(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void ClaimClient(WrappedServiceStub client) {
    RobotRaconteurNETPINVOKE.WrappedServiceSubscription_ClaimClient(swigCPtr, WrappedServiceStub.getCPtr(client));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void ReleaseClient(WrappedServiceStub client) {
    RobotRaconteurNETPINVOKE.WrappedServiceSubscription_ReleaseClient(swigCPtr, WrappedServiceStub.getCPtr(client));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public uint GetConnectRetryDelay() {
    uint ret = RobotRaconteurNETPINVOKE.WrappedServiceSubscription_GetConnectRetryDelay(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void SetConnectRetryDelay(uint delay_milliseconds) {
    RobotRaconteurNETPINVOKE.WrappedServiceSubscription_SetConnectRetryDelay(swigCPtr, delay_milliseconds);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public WrappedWireSubscription SubscribeWire(string membername, string servicepath) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSubscription_SubscribeWire(swigCPtr, membername, servicepath);
    WrappedWireSubscription ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedWireSubscription(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedPipeSubscription SubscribePipe(string membername, string servicepath, int max_recv_packets) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSubscription_SubscribePipe__SWIG_0(swigCPtr, membername, servicepath, max_recv_packets);
    WrappedPipeSubscription ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedPipeSubscription(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedPipeSubscription SubscribePipe(string membername, string servicepath) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSubscription_SubscribePipe__SWIG_1(swigCPtr, membername, servicepath);
    WrappedPipeSubscription ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedPipeSubscription(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedServiceStub GetDefaultClient() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSubscription_GetDefaultClient(swigCPtr);
    WrappedServiceStub ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceStub(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedServiceSubscription_TryDefaultClientRes TryGetDefaultClient() {
    WrappedServiceSubscription_TryDefaultClientRes ret = new WrappedServiceSubscription_TryDefaultClientRes(RobotRaconteurNETPINVOKE.WrappedServiceSubscription_TryGetDefaultClient(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedServiceStub GetDefaultClientWait(int timeout) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSubscription_GetDefaultClientWait__SWIG_0(swigCPtr, timeout);
    WrappedServiceStub ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceStub(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedServiceStub GetDefaultClientWait() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSubscription_GetDefaultClientWait__SWIG_1(swigCPtr);
    WrappedServiceStub ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceStub(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedServiceSubscription_TryDefaultClientRes TryGetDefaultClientWait(int timeout) {
    WrappedServiceSubscription_TryDefaultClientRes ret = new WrappedServiceSubscription_TryDefaultClientRes(RobotRaconteurNETPINVOKE.WrappedServiceSubscription_TryGetDefaultClientWait__SWIG_0(swigCPtr, timeout), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedServiceSubscription_TryDefaultClientRes TryGetDefaultClientWait() {
    WrappedServiceSubscription_TryDefaultClientRes ret = new WrappedServiceSubscription_TryDefaultClientRes(RobotRaconteurNETPINVOKE.WrappedServiceSubscription_TryGetDefaultClientWait__SWIG_1(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void AsyncGetDefaultClient(int timeout, AsyncStubReturnDirector handler, int id) {
    RobotRaconteurNETPINVOKE.WrappedServiceSubscription_AsyncGetDefaultClient(swigCPtr, timeout, AsyncStubReturnDirector.getCPtr(handler), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SetRRDirector(WrappedServiceSubscriptionDirector director, int id) {
    RobotRaconteurNETPINVOKE.WrappedServiceSubscription_SetRRDirector(swigCPtr, WrappedServiceSubscriptionDirector.getCPtr(director), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public RobotRaconteurNode GetNode() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSubscription_GetNode(swigCPtr);
    RobotRaconteurNode ret = (cPtr == global::System.IntPtr.Zero) ? null : new RobotRaconteurNode(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public vectorstring GetServiceURL() {
    vectorstring ret = new vectorstring(RobotRaconteurNETPINVOKE.WrappedServiceSubscription_GetServiceURL(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void UpdateServiceURL(vectorstring url, string username, MessageElementData credentials, string objecttype, bool close_connected) {
    RobotRaconteurNETPINVOKE.WrappedServiceSubscription_UpdateServiceURL__SWIG_0(swigCPtr, vectorstring.getCPtr(url), username, MessageElementData.getCPtr(credentials), objecttype, close_connected);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void UpdateServiceURL(vectorstring url, string username, MessageElementData credentials, string objecttype) {
    RobotRaconteurNETPINVOKE.WrappedServiceSubscription_UpdateServiceURL__SWIG_1(swigCPtr, vectorstring.getCPtr(url), username, MessageElementData.getCPtr(credentials), objecttype);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void UpdateServiceURL(vectorstring url, string username, MessageElementData credentials) {
    RobotRaconteurNETPINVOKE.WrappedServiceSubscription_UpdateServiceURL__SWIG_2(swigCPtr, vectorstring.getCPtr(url), username, MessageElementData.getCPtr(credentials));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void UpdateServiceURL(vectorstring url, string username) {
    RobotRaconteurNETPINVOKE.WrappedServiceSubscription_UpdateServiceURL__SWIG_3(swigCPtr, vectorstring.getCPtr(url), username);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void UpdateServiceURL(vectorstring url) {
    RobotRaconteurNETPINVOKE.WrappedServiceSubscription_UpdateServiceURL__SWIG_4(swigCPtr, vectorstring.getCPtr(url));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void UpdateServiceURL(string url, string username, MessageElementData credentials, string objecttype, bool close_connected) {
    RobotRaconteurNETPINVOKE.WrappedServiceSubscription_UpdateServiceURL__SWIG_5(swigCPtr, url, username, MessageElementData.getCPtr(credentials), objecttype, close_connected);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void UpdateServiceURL(string url, string username, MessageElementData credentials, string objecttype) {
    RobotRaconteurNETPINVOKE.WrappedServiceSubscription_UpdateServiceURL__SWIG_6(swigCPtr, url, username, MessageElementData.getCPtr(credentials), objecttype);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void UpdateServiceURL(string url, string username, MessageElementData credentials) {
    RobotRaconteurNETPINVOKE.WrappedServiceSubscription_UpdateServiceURL__SWIG_7(swigCPtr, url, username, MessageElementData.getCPtr(credentials));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void UpdateServiceURL(string url, string username) {
    RobotRaconteurNETPINVOKE.WrappedServiceSubscription_UpdateServiceURL__SWIG_8(swigCPtr, url, username);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void UpdateServiceURL(string url) {
    RobotRaconteurNETPINVOKE.WrappedServiceSubscription_UpdateServiceURL__SWIG_9(swigCPtr, url);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void UpdateServiceByType(vectorstring service_types, WrappedServiceSubscriptionFilter filter) {
    RobotRaconteurNETPINVOKE.WrappedServiceSubscription_UpdateServiceByType__SWIG_0(swigCPtr, vectorstring.getCPtr(service_types), WrappedServiceSubscriptionFilter.getCPtr(filter));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void UpdateServiceByType(vectorstring service_types) {
    RobotRaconteurNETPINVOKE.WrappedServiceSubscription_UpdateServiceByType__SWIG_1(swigCPtr, vectorstring.getCPtr(service_types));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public WrappedSubObjectSubscription SubscribeSubObject(string service_path, string objecttype) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSubscription_SubscribeSubObject__SWIG_0(swigCPtr, service_path, objecttype);
    WrappedSubObjectSubscription ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedSubObjectSubscription(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedSubObjectSubscription SubscribeSubObject(string service_path) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSubscription_SubscribeSubObject__SWIG_1(swigCPtr, service_path);
    WrappedSubObjectSubscription ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedSubObjectSubscription(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedWireSubscriptionDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedWireSubscriptionDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedWireSubscriptionDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedWireSubscriptionDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedWireSubscriptionDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual void WireValueChanged(WrappedWireSubscription wire_subscription, WrappedService_typed_packet value, TimeSpec time) {
    RobotRaconteurNETPINVOKE.WrappedWireSubscriptionDirector_WireValueChanged(swigCPtr, WrappedWireSubscription.getCPtr(wire_subscription), WrappedService_typed_packet.getCPtr(value), TimeSpec.getCPtr(time));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public WrappedWireSubscriptionDirector() : this(RobotRaconteurNETPINVOKE.new_WrappedWireSubscriptionDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("WireValueChanged", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateWrappedWireSubscriptionDirector_0(SwigDirectorMethodWireValueChanged);
    RobotRaconteurNETPINVOKE.WrappedWireSubscriptionDirector_director_connect(swigCPtr, swigDelegate0);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(WrappedWireSubscriptionDirector));
    return hasDerivedMethod;
  }

  private void SwigDirectorMethodWireValueChanged(global::System.IntPtr wire_subscription, global::System.IntPtr value, global::System.IntPtr time) {
    WireValueChanged((wire_subscription == global::System.IntPtr.Zero) ? null : new WrappedWireSubscription(wire_subscription, true), new WrappedService_typed_packet(value, false), new TimeSpec(time, false));
  }

  public delegate void SwigDelegateWrappedWireSubscriptionDirector_0(global::System.IntPtr wire_subscription, global::System.IntPtr value, global::System.IntPtr time);

  private SwigDelegateWrappedWireSubscriptionDirector_0 swigDelegate0;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(WrappedWireSubscription), typeof(WrappedService_typed_packet), typeof(TimeSpec) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedWireSubscription : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal WrappedWireSubscription(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedWireSubscription obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedWireSubscription() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_WrappedWireSubscription(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public WrappedService_typed_packet GetInValue(TimeSpec time) {
    WrappedService_typed_packet ret = new WrappedService_typed_packet(RobotRaconteurNETPINVOKE.WrappedWireSubscription_GetInValue__SWIG_0(swigCPtr, TimeSpec.getCPtr(time)), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedService_typed_packet GetInValue() {
    WrappedService_typed_packet ret = new WrappedService_typed_packet(RobotRaconteurNETPINVOKE.WrappedWireSubscription_GetInValue__SWIG_1(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool TryGetInValue(WrappedService_typed_packet val, TimeSpec time) {
    bool ret = RobotRaconteurNETPINVOKE.WrappedWireSubscription_TryGetInValue__SWIG_0(swigCPtr, WrappedService_typed_packet.getCPtr(val), TimeSpec.getCPtr(time));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool TryGetInValue(WrappedService_typed_packet val) {
    bool ret = RobotRaconteurNETPINVOKE.WrappedWireSubscription_TryGetInValue__SWIG_1(swigCPtr, WrappedService_typed_packet.getCPtr(val));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool WaitInValueValid(int timeout) {
    bool ret = RobotRaconteurNETPINVOKE.WrappedWireSubscription_WaitInValueValid__SWIG_0(swigCPtr, timeout);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool WaitInValueValid() {
    bool ret = RobotRaconteurNETPINVOKE.WrappedWireSubscription_WaitInValueValid__SWIG_1(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool GetIgnoreInValue() {
    bool ret = RobotRaconteurNETPINVOKE.WrappedWireSubscription_GetIgnoreInValue(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void SetIgnoreInValue(bool ignore) {
    RobotRaconteurNETPINVOKE.WrappedWireSubscription_SetIgnoreInValue(swigCPtr, ignore);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public int GetInValueLifespan() {
    int ret = RobotRaconteurNETPINVOKE.WrappedWireSubscription_GetInValueLifespan(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void SetInValueLifespan(int millis) {
    RobotRaconteurNETPINVOKE.WrappedWireSubscription_SetInValueLifespan(swigCPtr, millis);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public uint GetActiveWireConnectionCount() {
    uint ret = RobotRaconteurNETPINVOKE.WrappedWireSubscription_GetActiveWireConnectionCount(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Close() {
    RobotRaconteurNETPINVOKE.WrappedWireSubscription_Close(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SetRRDirector(WrappedWireSubscriptionDirector director, int id) {
    RobotRaconteurNETPINVOKE.WrappedWireSubscription_SetRRDirector(swigCPtr, WrappedWireSubscriptionDirector.getCPtr(director), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public RobotRaconteurNode GetNode() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedWireSubscription_GetNode(swigCPtr);
    RobotRaconteurNode ret = (cPtr == global::System.IntPtr.Zero) ? null : new RobotRaconteurNode(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedWireSubscription_send_iterator : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedWireSubscription_send_iterator(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedWireSubscription_send_iterator obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedWireSubscription_send_iterator() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedWireSubscription_send_iterator(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public WrappedWireSubscription_send_iterator(WrappedWireSubscription sub) : this(RobotRaconteurNETPINVOKE.new_WrappedWireSubscription_send_iterator(WrappedWireSubscription.getCPtr(sub)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public WrappedWireConnection Next() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedWireSubscription_send_iterator_Next(swigCPtr);
    WrappedWireConnection ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedWireConnection(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void SetOutValue(MessageElement value) {
    RobotRaconteurNETPINVOKE.WrappedWireSubscription_send_iterator_SetOutValue(swigCPtr, MessageElement.getCPtr(value));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public TypeDefinition GetType() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedWireSubscription_send_iterator_GetType(swigCPtr);
    TypeDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new TypeDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedServiceStub GetStub() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedWireSubscription_send_iterator_GetStub(swigCPtr);
    WrappedServiceStub ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceStub(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedPipeSubscriptionDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedPipeSubscriptionDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedPipeSubscriptionDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedPipeSubscriptionDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedPipeSubscriptionDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual void PipePacketReceived(WrappedPipeSubscription pipe_subscription) {
    RobotRaconteurNETPINVOKE.WrappedPipeSubscriptionDirector_PipePacketReceived(swigCPtr, WrappedPipeSubscription.getCPtr(pipe_subscription));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public WrappedPipeSubscriptionDirector() : this(RobotRaconteurNETPINVOKE.new_WrappedPipeSubscriptionDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("PipePacketReceived", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateWrappedPipeSubscriptionDirector_0(SwigDirectorMethodPipePacketReceived);
    RobotRaconteurNETPINVOKE.WrappedPipeSubscriptionDirector_director_connect(swigCPtr, swigDelegate0);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(WrappedPipeSubscriptionDirector));
    return hasDerivedMethod;
  }

  private void SwigDirectorMethodPipePacketReceived(global::System.IntPtr pipe_subscription) {
    PipePacketReceived((pipe_subscription == global::System.IntPtr.Zero) ? null : new WrappedPipeSubscription(pipe_subscription, true));
  }

  public delegate void SwigDelegateWrappedPipeSubscriptionDirector_0(global::System.IntPtr pipe_subscription);

  private SwigDelegateWrappedPipeSubscriptionDirector_0 swigDelegate0;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(WrappedPipeSubscription) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedPipeSubscription : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal WrappedPipeSubscription(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedPipeSubscription obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedPipeSubscription() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_WrappedPipeSubscription(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public WrappedService_typed_packet ReceivePacket() {
    WrappedService_typed_packet ret = new WrappedService_typed_packet(RobotRaconteurNETPINVOKE.WrappedPipeSubscription_ReceivePacket(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool TryReceivePacket(WrappedService_typed_packet packet) {
    bool ret = RobotRaconteurNETPINVOKE.WrappedPipeSubscription_TryReceivePacket(swigCPtr, WrappedService_typed_packet.getCPtr(packet));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool TryReceivePacketWait(WrappedService_typed_packet packet, int timeout, bool peek) {
    bool ret = RobotRaconteurNETPINVOKE.WrappedPipeSubscription_TryReceivePacketWait__SWIG_0(swigCPtr, WrappedService_typed_packet.getCPtr(packet), timeout, peek);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool TryReceivePacketWait(WrappedService_typed_packet packet, int timeout) {
    bool ret = RobotRaconteurNETPINVOKE.WrappedPipeSubscription_TryReceivePacketWait__SWIG_1(swigCPtr, WrappedService_typed_packet.getCPtr(packet), timeout);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool TryReceivePacketWait(WrappedService_typed_packet packet) {
    bool ret = RobotRaconteurNETPINVOKE.WrappedPipeSubscription_TryReceivePacketWait__SWIG_2(swigCPtr, WrappedService_typed_packet.getCPtr(packet));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public uint Available() {
    uint ret = RobotRaconteurNETPINVOKE.WrappedPipeSubscription_Available(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public uint GetActivePipeEndpointCount() {
    uint ret = RobotRaconteurNETPINVOKE.WrappedPipeSubscription_GetActivePipeEndpointCount(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool GetIgnoreReceived() {
    bool ret = RobotRaconteurNETPINVOKE.WrappedPipeSubscription_GetIgnoreReceived(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void SetIgnoreReceived(bool ignore) {
    RobotRaconteurNETPINVOKE.WrappedPipeSubscription_SetIgnoreReceived(swigCPtr, ignore);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Close() {
    RobotRaconteurNETPINVOKE.WrappedPipeSubscription_Close(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SetRRDirector(WrappedPipeSubscriptionDirector director, int id) {
    RobotRaconteurNETPINVOKE.WrappedPipeSubscription_SetRRDirector(swigCPtr, WrappedPipeSubscriptionDirector.getCPtr(director), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public RobotRaconteurNode GetNode() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedPipeSubscription_GetNode(swigCPtr);
    RobotRaconteurNode ret = (cPtr == global::System.IntPtr.Zero) ? null : new RobotRaconteurNode(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedPipeSubscription_send_iterator : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedPipeSubscription_send_iterator(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedPipeSubscription_send_iterator obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedPipeSubscription_send_iterator() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedPipeSubscription_send_iterator(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public WrappedPipeSubscription_send_iterator(WrappedPipeSubscription sub) : this(RobotRaconteurNETPINVOKE.new_WrappedPipeSubscription_send_iterator(WrappedPipeSubscription.getCPtr(sub)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public WrappedPipeEndpoint Next() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedPipeSubscription_send_iterator_Next(swigCPtr);
    WrappedPipeEndpoint ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedPipeEndpoint(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void AsyncSendPacket(MessageElement value) {
    RobotRaconteurNETPINVOKE.WrappedPipeSubscription_send_iterator_AsyncSendPacket(swigCPtr, MessageElement.getCPtr(value));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public TypeDefinition GetType() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedPipeSubscription_send_iterator_GetType(swigCPtr);
    TypeDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new TypeDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedServiceStub GetStub() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedPipeSubscription_send_iterator_GetStub(swigCPtr);
    WrappedServiceStub ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceStub(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedSubObjectSubscription : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal WrappedSubObjectSubscription(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedSubObjectSubscription obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedSubObjectSubscription() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_WrappedSubObjectSubscription(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public WrappedServiceStub GetDefaultClient() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedSubObjectSubscription_GetDefaultClient(swigCPtr);
    WrappedServiceStub ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceStub(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedServiceSubscription_TryDefaultClientRes TryGetDefaultClient() {
    WrappedServiceSubscription_TryDefaultClientRes ret = new WrappedServiceSubscription_TryDefaultClientRes(RobotRaconteurNETPINVOKE.WrappedSubObjectSubscription_TryGetDefaultClient(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedServiceStub GetDefaultClientWait(int timeout) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedSubObjectSubscription_GetDefaultClientWait__SWIG_0(swigCPtr, timeout);
    WrappedServiceStub ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceStub(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedServiceStub GetDefaultClientWait() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedSubObjectSubscription_GetDefaultClientWait__SWIG_1(swigCPtr);
    WrappedServiceStub ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceStub(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedServiceSubscription_TryDefaultClientRes TryGetDefaultClientWait(int timeout) {
    WrappedServiceSubscription_TryDefaultClientRes ret = new WrappedServiceSubscription_TryDefaultClientRes(RobotRaconteurNETPINVOKE.WrappedSubObjectSubscription_TryGetDefaultClientWait__SWIG_0(swigCPtr, timeout), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedServiceSubscription_TryDefaultClientRes TryGetDefaultClientWait() {
    WrappedServiceSubscription_TryDefaultClientRes ret = new WrappedServiceSubscription_TryDefaultClientRes(RobotRaconteurNETPINVOKE.WrappedSubObjectSubscription_TryGetDefaultClientWait__SWIG_1(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void AsyncGetDefaultClient(int timeout, AsyncStubReturnDirector handler, int id) {
    RobotRaconteurNETPINVOKE.WrappedSubObjectSubscription_AsyncGetDefaultClient(swigCPtr, timeout, AsyncStubReturnDirector.getCPtr(handler), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Close() {
    RobotRaconteurNETPINVOKE.WrappedSubObjectSubscription_Close(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public RobotRaconteurNode GetNode() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedSubObjectSubscription_GetNode(swigCPtr);
    RobotRaconteurNode ret = (cPtr == global::System.IntPtr.Zero) ? null : new RobotRaconteurNode(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

public enum ServiceSubscriptionManager_CONNECTION_METHOD {
  CONNECTION_METHOD_DEFAULT,
  CONNECTION_METHOD_URL,
  CONNECTION_METHOD_TYPE
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedServiceSubscriptionManagerDetails : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal WrappedServiceSubscriptionManagerDetails(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedServiceSubscriptionManagerDetails obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedServiceSubscriptionManagerDetails() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_WrappedServiceSubscriptionManagerDetails(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public string Name {
    set {
      RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionManagerDetails_Name_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionManagerDetails_Name_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public ServiceSubscriptionManager_CONNECTION_METHOD ConnectionMethod {
    set {
      RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionManagerDetails_ConnectionMethod_set(swigCPtr, (int)value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      ServiceSubscriptionManager_CONNECTION_METHOD ret = (ServiceSubscriptionManager_CONNECTION_METHOD)RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionManagerDetails_ConnectionMethod_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public vectorstring Urls {
    set {
      RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionManagerDetails_Urls_set(swigCPtr, vectorstring.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionManagerDetails_Urls_get(swigCPtr);
      vectorstring ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorstring(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string UrlUsername {
    set {
      RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionManagerDetails_UrlUsername_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionManagerDetails_UrlUsername_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public MessageElementData UrlCredentials {
    set {
      RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionManagerDetails_UrlCredentials_set(swigCPtr, MessageElementData.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionManagerDetails_UrlCredentials_get(swigCPtr);
      MessageElementData ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElementData(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public vectorstring ServiceTypes {
    set {
      RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionManagerDetails_ServiceTypes_set(swigCPtr, vectorstring.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionManagerDetails_ServiceTypes_get(swigCPtr);
      vectorstring ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorstring(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public WrappedServiceSubscriptionFilter Filter {
    set {
      RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionManagerDetails_Filter_set(swigCPtr, WrappedServiceSubscriptionFilter.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionManagerDetails_Filter_get(swigCPtr);
      WrappedServiceSubscriptionFilter ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceSubscriptionFilter(cPtr, true);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public bool Enabled {
    set {
      RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionManagerDetails_Enabled_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      bool ret = RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionManagerDetails_Enabled_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public WrappedServiceSubscriptionManagerDetails() : this(RobotRaconteurNETPINVOKE.new_WrappedServiceSubscriptionManagerDetails__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public WrappedServiceSubscriptionManagerDetails(string Name, ServiceSubscriptionManager_CONNECTION_METHOD Connection_method, vectorstring Urls, string UrlUsername, MessageElementData UrlCredentials, vectorstring ServiceTypes, WrappedServiceSubscriptionFilter Filter, bool Enabled) : this(RobotRaconteurNETPINVOKE.new_WrappedServiceSubscriptionManagerDetails__SWIG_1(Name, (int)Connection_method, vectorstring.getCPtr(Urls), UrlUsername, MessageElementData.getCPtr(UrlCredentials), vectorstring.getCPtr(ServiceTypes), WrappedServiceSubscriptionFilter.getCPtr(Filter), Enabled), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public WrappedServiceSubscriptionManagerDetails(string Name, ServiceSubscriptionManager_CONNECTION_METHOD Connection_method, vectorstring Urls, string UrlUsername, MessageElementData UrlCredentials, vectorstring ServiceTypes, WrappedServiceSubscriptionFilter Filter) : this(RobotRaconteurNETPINVOKE.new_WrappedServiceSubscriptionManagerDetails__SWIG_2(Name, (int)Connection_method, vectorstring.getCPtr(Urls), UrlUsername, MessageElementData.getCPtr(UrlCredentials), vectorstring.getCPtr(ServiceTypes), WrappedServiceSubscriptionFilter.getCPtr(Filter)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public WrappedServiceSubscriptionManagerDetails(string Name, ServiceSubscriptionManager_CONNECTION_METHOD Connection_method, vectorstring Urls, string UrlUsername, MessageElementData UrlCredentials, vectorstring ServiceTypes) : this(RobotRaconteurNETPINVOKE.new_WrappedServiceSubscriptionManagerDetails__SWIG_3(Name, (int)Connection_method, vectorstring.getCPtr(Urls), UrlUsername, MessageElementData.getCPtr(UrlCredentials), vectorstring.getCPtr(ServiceTypes)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public WrappedServiceSubscriptionManagerDetails(string Name, ServiceSubscriptionManager_CONNECTION_METHOD Connection_method, vectorstring Urls, string UrlUsername, MessageElementData UrlCredentials) : this(RobotRaconteurNETPINVOKE.new_WrappedServiceSubscriptionManagerDetails__SWIG_4(Name, (int)Connection_method, vectorstring.getCPtr(Urls), UrlUsername, MessageElementData.getCPtr(UrlCredentials)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public WrappedServiceSubscriptionManagerDetails(string Name, ServiceSubscriptionManager_CONNECTION_METHOD Connection_method, vectorstring Urls, string UrlUsername) : this(RobotRaconteurNETPINVOKE.new_WrappedServiceSubscriptionManagerDetails__SWIG_5(Name, (int)Connection_method, vectorstring.getCPtr(Urls), UrlUsername), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public WrappedServiceSubscriptionManagerDetails(string Name, ServiceSubscriptionManager_CONNECTION_METHOD Connection_method, vectorstring Urls) : this(RobotRaconteurNETPINVOKE.new_WrappedServiceSubscriptionManagerDetails__SWIG_6(Name, (int)Connection_method, vectorstring.getCPtr(Urls)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public WrappedServiceSubscriptionManagerDetails(string Name, ServiceSubscriptionManager_CONNECTION_METHOD Connection_method) : this(RobotRaconteurNETPINVOKE.new_WrappedServiceSubscriptionManagerDetails__SWIG_7(Name, (int)Connection_method), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public WrappedServiceSubscriptionManagerDetails(string Name) : this(RobotRaconteurNETPINVOKE.new_WrappedServiceSubscriptionManagerDetails__SWIG_8(Name), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedServiceSubscriptionManager : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal WrappedServiceSubscriptionManager(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedServiceSubscriptionManager obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedServiceSubscriptionManager() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_WrappedServiceSubscriptionManager(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public WrappedServiceSubscriptionManager() : this(RobotRaconteurNETPINVOKE.new_WrappedServiceSubscriptionManager__SWIG_0(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public WrappedServiceSubscriptionManager(RobotRaconteurNode node) : this(RobotRaconteurNETPINVOKE.new_WrappedServiceSubscriptionManager__SWIG_1(RobotRaconteurNode.getCPtr(node)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public WrappedServiceSubscriptionManager(vector_wrappedservicesubscriptionmanagerdetails details) : this(RobotRaconteurNETPINVOKE.new_WrappedServiceSubscriptionManager__SWIG_2(vector_wrappedservicesubscriptionmanagerdetails.getCPtr(details)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public WrappedServiceSubscriptionManager(vector_wrappedservicesubscriptionmanagerdetails details, RobotRaconteurNode node) : this(RobotRaconteurNETPINVOKE.new_WrappedServiceSubscriptionManager__SWIG_3(vector_wrappedservicesubscriptionmanagerdetails.getCPtr(details), RobotRaconteurNode.getCPtr(node)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void AddSubscription(WrappedServiceSubscriptionManagerDetails details) {
    RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionManager_AddSubscription(swigCPtr, WrappedServiceSubscriptionManagerDetails.getCPtr(details));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveSubscription(string name, bool close) {
    RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionManager_RemoveSubscription__SWIG_0(swigCPtr, name, close);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void RemoveSubscription(string name) {
    RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionManager_RemoveSubscription__SWIG_1(swigCPtr, name);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void EnableSubscription(string name) {
    RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionManager_EnableSubscription(swigCPtr, name);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void DisableSubscription(string name, bool close) {
    RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionManager_DisableSubscription__SWIG_0(swigCPtr, name, close);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void DisableSubscription(string name) {
    RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionManager_DisableSubscription__SWIG_1(swigCPtr, name);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public WrappedServiceSubscription GetSubscription(string name, bool force_create) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionManager_GetSubscription__SWIG_0(swigCPtr, name, force_create);
    WrappedServiceSubscription ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceSubscription(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public WrappedServiceSubscription GetSubscription(string name) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionManager_GetSubscription__SWIG_1(swigCPtr, name);
    WrappedServiceSubscription ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceSubscription(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool IsConnected(string name) {
    bool ret = RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionManager_IsConnected(swigCPtr, name);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool IsEnabled(string name) {
    bool ret = RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionManager_IsEnabled(swigCPtr, name);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void Close(bool close_subscriptions) {
    RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionManager_Close__SWIG_0(swigCPtr, close_subscriptions);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Close() {
    RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionManager_Close__SWIG_1(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public vectorstring GetSubscriptionNames() {
    vectorstring ret = new vectorstring(RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionManager_GetSubscriptionNames(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public vector_wrappedservicesubscriptionmanagerdetails GetSubscriptionDetails() {
    vector_wrappedservicesubscriptionmanagerdetails ret = new vector_wrappedservicesubscriptionmanagerdetails(RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionManager_GetSubscriptionDetails(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public RobotRaconteurNode GetNode() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionManager_GetNode(swigCPtr);
    RobotRaconteurNode ret = (cPtr == global::System.IntPtr.Zero) ? null : new RobotRaconteurNode(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class RRLogRecord : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal RRLogRecord(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(RRLogRecord obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~RRLogRecord() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_RRLogRecord(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

public RobotRaconteurNode Node
{
	get
	{
		return _GetNode();
	}
	set
	{
		_SetNode(value);
	}

}

  private RobotRaconteurNode _GetNode() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.RRLogRecord__GetNode(swigCPtr);
    RobotRaconteurNode ret = (cPtr == global::System.IntPtr.Zero) ? null : new RobotRaconteurNode(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _SetNode(RobotRaconteurNode node) {
    RobotRaconteurNETPINVOKE.RRLogRecord__SetNode(swigCPtr, RobotRaconteurNode.getCPtr(node));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public LogLevel Level {
    set {
      RobotRaconteurNETPINVOKE.RRLogRecord_Level_set(swigCPtr, (int)value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      LogLevel ret = (LogLevel)RobotRaconteurNETPINVOKE.RRLogRecord_Level_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public LogComponent Component {
    set {
      RobotRaconteurNETPINVOKE.RRLogRecord_Component_set(swigCPtr, (int)value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      LogComponent ret = (LogComponent)RobotRaconteurNETPINVOKE.RRLogRecord_Component_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string ComponentName {
    set {
      RobotRaconteurNETPINVOKE.RRLogRecord_ComponentName_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.RRLogRecord_ComponentName_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string ComponentObjectID {
    set {
      RobotRaconteurNETPINVOKE.RRLogRecord_ComponentObjectID_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.RRLogRecord_ComponentObjectID_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public int Endpoint {
    set {
      RobotRaconteurNETPINVOKE.RRLogRecord_Endpoint_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      int ret = RobotRaconteurNETPINVOKE.RRLogRecord_Endpoint_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string ServicePath {
    set {
      RobotRaconteurNETPINVOKE.RRLogRecord_ServicePath_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.RRLogRecord_ServicePath_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string Member {
    set {
      RobotRaconteurNETPINVOKE.RRLogRecord_Member_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.RRLogRecord_Member_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string Message {
    set {
      RobotRaconteurNETPINVOKE.RRLogRecord_Message_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.RRLogRecord_Message_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public DateTime Time {
    set {
      RobotRaconteurNETPINVOKE.RRLogRecord_Time_set(swigCPtr, 
    value.Ticks - (new DateTime(1970,1,1)).Ticks
);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
	get {
    long date_ticks = RobotRaconteurNETPINVOKE.RRLogRecord_Time_get(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return new DateTime(date_ticks + (new DateTime(1970,1,1)).Ticks);
	}

  }

  public string SourceFile {
    set {
      RobotRaconteurNETPINVOKE.RRLogRecord_SourceFile_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.RRLogRecord_SourceFile_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public uint SourceLine {
    set {
      RobotRaconteurNETPINVOKE.RRLogRecord_SourceLine_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      uint ret = RobotRaconteurNETPINVOKE.RRLogRecord_SourceLine_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string ThreadID {
    set {
      RobotRaconteurNETPINVOKE.RRLogRecord_ThreadID_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.RRLogRecord_ThreadID_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string FiberID {
    set {
      RobotRaconteurNETPINVOKE.RRLogRecord_FiberID_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.RRLogRecord_FiberID_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public override string ToString() {
    string ret = RobotRaconteurNETPINVOKE.RRLogRecord_ToString(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public RRLogRecord() : this(RobotRaconteurNETPINVOKE.new_RRLogRecord(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class LogRecordHandler : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal LogRecordHandler(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(LogRecordHandler obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~LogRecordHandler() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_LogRecordHandler(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class FileLogRecordHandler : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal FileLogRecordHandler(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(FileLogRecordHandler obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~FileLogRecordHandler() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_FileLogRecordHandler(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public void OpenFile(string filename, bool append) {
    RobotRaconteurNETPINVOKE.FileLogRecordHandler_OpenFile__SWIG_0(swigCPtr, filename, append);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void OpenFile(string filename) {
    RobotRaconteurNETPINVOKE.FileLogRecordHandler_OpenFile__SWIG_1(swigCPtr, filename);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public FileLogRecordHandler() : this(RobotRaconteurNETPINVOKE.new_FileLogRecordHandler(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class UserLogRecordHandlerDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal UserLogRecordHandlerDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(UserLogRecordHandlerDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~UserLogRecordHandlerDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_UserLogRecordHandlerDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public virtual void HandleLogRecord(RRLogRecord record) {
    RobotRaconteurNETPINVOKE.UserLogRecordHandlerDirector_HandleLogRecord(swigCPtr, RRLogRecord.getCPtr(record));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public UserLogRecordHandlerDirector() : this(RobotRaconteurNETPINVOKE.new_UserLogRecordHandlerDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("HandleLogRecord", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateUserLogRecordHandlerDirector_0(SwigDirectorMethodHandleLogRecord);
    RobotRaconteurNETPINVOKE.UserLogRecordHandlerDirector_director_connect(swigCPtr, swigDelegate0);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(UserLogRecordHandlerDirector));
    return hasDerivedMethod;
  }

  private void SwigDirectorMethodHandleLogRecord(global::System.IntPtr record) {
    HandleLogRecord(new RRLogRecord(record, false));
  }

  public delegate void SwigDelegateUserLogRecordHandlerDirector_0(global::System.IntPtr record);

  private SwigDelegateUserLogRecordHandlerDirector_0 swigDelegate0;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(RRLogRecord) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class UserLogRecordHandlerBase : LogRecordHandler {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnDerived;

  internal UserLogRecordHandlerBase(global::System.IntPtr cPtr, bool cMemoryOwn) : base(RobotRaconteurNETPINVOKE.UserLogRecordHandlerBase_SWIGSmartPtrUpcast(cPtr), true) {
    swigCMemOwnDerived = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(UserLogRecordHandlerBase obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  protected override void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnDerived) {
          swigCMemOwnDerived = false;
          RobotRaconteurNETPINVOKE.delete_UserLogRecordHandlerBase(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
      base.Dispose(disposing);
    }
  }

  public void _SetHandler(UserLogRecordHandlerDirector director, int id) {
    RobotRaconteurNETPINVOKE.UserLogRecordHandlerBase__SetHandler(swigCPtr, UserLogRecordHandlerDirector.getCPtr(director), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public UserLogRecordHandlerBase() : this(RobotRaconteurNETPINVOKE.new_UserLogRecordHandlerBase(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class NodeDirectories : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal NodeDirectories(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(NodeDirectories obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~NodeDirectories() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_NodeDirectories(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public FilesystemPath system_data_dir {
    set {
      RobotRaconteurNETPINVOKE.NodeDirectories_system_data_dir_set(swigCPtr, FilesystemPath.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.NodeDirectories_system_data_dir_get(swigCPtr);
      FilesystemPath ret = (cPtr == global::System.IntPtr.Zero) ? null : new FilesystemPath(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public FilesystemPath system_config_dir {
    set {
      RobotRaconteurNETPINVOKE.NodeDirectories_system_config_dir_set(swigCPtr, FilesystemPath.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.NodeDirectories_system_config_dir_get(swigCPtr);
      FilesystemPath ret = (cPtr == global::System.IntPtr.Zero) ? null : new FilesystemPath(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public FilesystemPath system_state_dir {
    set {
      RobotRaconteurNETPINVOKE.NodeDirectories_system_state_dir_set(swigCPtr, FilesystemPath.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.NodeDirectories_system_state_dir_get(swigCPtr);
      FilesystemPath ret = (cPtr == global::System.IntPtr.Zero) ? null : new FilesystemPath(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public FilesystemPath system_cache_dir {
    set {
      RobotRaconteurNETPINVOKE.NodeDirectories_system_cache_dir_set(swigCPtr, FilesystemPath.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.NodeDirectories_system_cache_dir_get(swigCPtr);
      FilesystemPath ret = (cPtr == global::System.IntPtr.Zero) ? null : new FilesystemPath(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public FilesystemPath system_run_dir {
    set {
      RobotRaconteurNETPINVOKE.NodeDirectories_system_run_dir_set(swigCPtr, FilesystemPath.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.NodeDirectories_system_run_dir_get(swigCPtr);
      FilesystemPath ret = (cPtr == global::System.IntPtr.Zero) ? null : new FilesystemPath(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public FilesystemPath user_data_dir {
    set {
      RobotRaconteurNETPINVOKE.NodeDirectories_user_data_dir_set(swigCPtr, FilesystemPath.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.NodeDirectories_user_data_dir_get(swigCPtr);
      FilesystemPath ret = (cPtr == global::System.IntPtr.Zero) ? null : new FilesystemPath(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public FilesystemPath user_config_dir {
    set {
      RobotRaconteurNETPINVOKE.NodeDirectories_user_config_dir_set(swigCPtr, FilesystemPath.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.NodeDirectories_user_config_dir_get(swigCPtr);
      FilesystemPath ret = (cPtr == global::System.IntPtr.Zero) ? null : new FilesystemPath(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public FilesystemPath user_state_dir {
    set {
      RobotRaconteurNETPINVOKE.NodeDirectories_user_state_dir_set(swigCPtr, FilesystemPath.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.NodeDirectories_user_state_dir_get(swigCPtr);
      FilesystemPath ret = (cPtr == global::System.IntPtr.Zero) ? null : new FilesystemPath(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public FilesystemPath user_cache_dir {
    set {
      RobotRaconteurNETPINVOKE.NodeDirectories_user_cache_dir_set(swigCPtr, FilesystemPath.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.NodeDirectories_user_cache_dir_get(swigCPtr);
      FilesystemPath ret = (cPtr == global::System.IntPtr.Zero) ? null : new FilesystemPath(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public FilesystemPath user_run_dir {
    set {
      RobotRaconteurNETPINVOKE.NodeDirectories_user_run_dir_set(swigCPtr, FilesystemPath.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.NodeDirectories_user_run_dir_get(swigCPtr);
      FilesystemPath ret = (cPtr == global::System.IntPtr.Zero) ? null : new FilesystemPath(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public NodeDirectories() : this(RobotRaconteurNETPINVOKE.new_NodeDirectories(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class NodeDirectoriesFD : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal NodeDirectoriesFD(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(NodeDirectoriesFD obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~NodeDirectoriesFD() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_NodeDirectoriesFD(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class NodeDirectoriesUtil : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal NodeDirectoriesUtil(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(NodeDirectoriesUtil obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~NodeDirectoriesUtil() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_NodeDirectoriesUtil(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public static NodeDirectories GetDefaultNodeDirectories(RobotRaconteurNode node) {
    NodeDirectories ret = new NodeDirectories(RobotRaconteurNETPINVOKE.NodeDirectoriesUtil_GetDefaultNodeDirectories__SWIG_0(RobotRaconteurNode.getCPtr(node)), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static NodeDirectories GetDefaultNodeDirectories() {
    NodeDirectories ret = new NodeDirectories(RobotRaconteurNETPINVOKE.NodeDirectoriesUtil_GetDefaultNodeDirectories__SWIG_1(), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static string GetLogonUserName() {
    string ret = RobotRaconteurNETPINVOKE.NodeDirectoriesUtil_GetLogonUserName();
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static bool IsLogonUserRoot() {
    bool ret = RobotRaconteurNETPINVOKE.NodeDirectoriesUtil_IsLogonUserRoot();
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static bool ReadInfoFile(FilesystemPath fname, map_strstr data) {
    bool ret = RobotRaconteurNETPINVOKE.NodeDirectoriesUtil_ReadInfoFile(FilesystemPath.getCPtr(fname), map_strstr.getCPtr(data));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static NodeDirectoriesFD CreatePidFile(FilesystemPath path) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.NodeDirectoriesUtil_CreatePidFile(FilesystemPath.getCPtr(path));
    NodeDirectoriesFD ret = (cPtr == global::System.IntPtr.Zero) ? null : new NodeDirectoriesFD(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static NodeDirectoriesFD CreateInfoFile(FilesystemPath path, map_strstr info) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.NodeDirectoriesUtil_CreateInfoFile(FilesystemPath.getCPtr(path), map_strstr.getCPtr(info));
    NodeDirectoriesFD ret = (cPtr == global::System.IntPtr.Zero) ? null : new NodeDirectoriesFD(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static void RefreshInfoFile(NodeDirectoriesFD h_info, map_strstr updated_info) {
    RobotRaconteurNETPINVOKE.NodeDirectoriesUtil_RefreshInfoFile(NodeDirectoriesFD.getCPtr(h_info), map_strstr.getCPtr(updated_info));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public NodeDirectoriesUtil() : this(RobotRaconteurNETPINVOKE.new_NodeDirectoriesUtil(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class GetUuidForNameAndLockResult : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal GetUuidForNameAndLockResult(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(GetUuidForNameAndLockResult obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~GetUuidForNameAndLockResult() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_GetUuidForNameAndLockResult(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public NodeID uuid {
    set {
      RobotRaconteurNETPINVOKE.GetUuidForNameAndLockResult_uuid_set(swigCPtr, NodeID.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.GetUuidForNameAndLockResult_uuid_get(swigCPtr);
      NodeID ret = (cPtr == global::System.IntPtr.Zero) ? null : new NodeID(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public string name {
    set {
      RobotRaconteurNETPINVOKE.GetUuidForNameAndLockResult_name_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      string ret = RobotRaconteurNETPINVOKE.GetUuidForNameAndLockResult_name_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public vectorstring scope {
    set {
      RobotRaconteurNETPINVOKE.GetUuidForNameAndLockResult_scope_set(swigCPtr, vectorstring.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.GetUuidForNameAndLockResult_scope_get(swigCPtr);
      vectorstring ret = (cPtr == global::System.IntPtr.Zero) ? null : new vectorstring(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public NodeDirectoriesFD fd {
    set {
      RobotRaconteurNETPINVOKE.GetUuidForNameAndLockResult_fd_set(swigCPtr, NodeDirectoriesFD.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.GetUuidForNameAndLockResult_fd_get(swigCPtr);
      NodeDirectoriesFD ret = (cPtr == global::System.IntPtr.Zero) ? null : new NodeDirectoriesFD(cPtr, true);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public GetUuidForNameAndLockResult() : this(RobotRaconteurNETPINVOKE.new_GetUuidForNameAndLockResult(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class NodeDirectoriesResourceAlreadyInUse : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal NodeDirectoriesResourceAlreadyInUse(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(NodeDirectoriesResourceAlreadyInUse obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~NodeDirectoriesResourceAlreadyInUse() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_NodeDirectoriesResourceAlreadyInUse(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public NodeDirectoriesResourceAlreadyInUse() : this(RobotRaconteurNETPINVOKE.new_NodeDirectoriesResourceAlreadyInUse(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class ClientServiceListenerDirector : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal ClientServiceListenerDirector(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(ClientServiceListenerDirector obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~ClientServiceListenerDirector() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_ClientServiceListenerDirector(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public int objectheapid {
    set {
      RobotRaconteurNETPINVOKE.ClientServiceListenerDirector_objectheapid_set(swigCPtr, value);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      int ret = RobotRaconteurNETPINVOKE.ClientServiceListenerDirector_objectheapid_get(swigCPtr);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public ClientServiceListenerDirector() : this(RobotRaconteurNETPINVOKE.new_ClientServiceListenerDirector(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  public virtual void Callback(int code) {
    if (SwigDerivedClassHasMethod("Callback", swigMethodTypes0)) RobotRaconteurNETPINVOKE.ClientServiceListenerDirector_CallbackSwigExplicitClientServiceListenerDirector(swigCPtr, code); else RobotRaconteurNETPINVOKE.ClientServiceListenerDirector_Callback(swigCPtr, code);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void Callback2(int code, string p) {
    if (SwigDerivedClassHasMethod("Callback2", swigMethodTypes1)) RobotRaconteurNETPINVOKE.ClientServiceListenerDirector_Callback2SwigExplicitClientServiceListenerDirector(swigCPtr, code, p); else RobotRaconteurNETPINVOKE.ClientServiceListenerDirector_Callback2(swigCPtr, code, p);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("Callback", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateClientServiceListenerDirector_0(SwigDirectorMethodCallback);
    if (SwigDerivedClassHasMethod("Callback2", swigMethodTypes1))
      swigDelegate1 = new SwigDelegateClientServiceListenerDirector_1(SwigDirectorMethodCallback2);
    RobotRaconteurNETPINVOKE.ClientServiceListenerDirector_director_connect(swigCPtr, swigDelegate0, swigDelegate1);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(ClientServiceListenerDirector));
    return hasDerivedMethod;
  }

  private void SwigDirectorMethodCallback(int code) {
    Callback(code);
  }

  private void SwigDirectorMethodCallback2(int code, string p) {
    Callback2(code, p);
  }

  public delegate void SwigDelegateClientServiceListenerDirector_0(int code);
  public delegate void SwigDelegateClientServiceListenerDirector_1(int code, string p);

  private SwigDelegateClientServiceListenerDirector_0 swigDelegate0;
  private SwigDelegateClientServiceListenerDirector_1 swigDelegate1;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(int) };
  private static global::System.Type[] swigMethodTypes1 = new global::System.Type[] { typeof(int), typeof(string) };
}

}
namespace RobotRaconteur {

public enum RobotRaconteurObjectLockFlags {
  USER_LOCK = 0,
  CLIENT_LOCK
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public partial class RobotRaconteurNode : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal RobotRaconteurNode(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(RobotRaconteurNode obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~RobotRaconteurNode() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_RobotRaconteurNode(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public uint RegisterTransport(Transport transport) {
    uint ret = RobotRaconteurNETPINVOKE.RobotRaconteurNode_RegisterTransport(swigCPtr, Transport.getCPtr(transport));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private uint _GetRequestTimeout() {
    uint ret = RobotRaconteurNETPINVOKE.RobotRaconteurNode__GetRequestTimeout(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _SetRequestTimeout(uint timeout) {
    RobotRaconteurNETPINVOKE.RobotRaconteurNode__SetRequestTimeout(swigCPtr, timeout);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private uint _GetTransportInactivityTimeout() {
    uint ret = RobotRaconteurNETPINVOKE.RobotRaconteurNode__GetTransportInactivityTimeout(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _SetTransportInactivityTimeout(uint timeout) {
    RobotRaconteurNETPINVOKE.RobotRaconteurNode__SetTransportInactivityTimeout(swigCPtr, timeout);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private uint _GetEndpointInactivityTimeout() {
    uint ret = RobotRaconteurNETPINVOKE.RobotRaconteurNode__GetEndpointInactivityTimeout(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _SetEndpointInactivityTimeout(uint timeout) {
    RobotRaconteurNETPINVOKE.RobotRaconteurNode__SetEndpointInactivityTimeout(swigCPtr, timeout);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private uint _GetMemoryMaxTransferSize() {
    uint ret = RobotRaconteurNETPINVOKE.RobotRaconteurNode__GetMemoryMaxTransferSize(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _SetMemoryMaxTransferSize(uint size) {
    RobotRaconteurNETPINVOKE.RobotRaconteurNode__SetMemoryMaxTransferSize(swigCPtr, size);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private uint _GetNodeDiscoveryMaxCacheCount() {
    uint ret = RobotRaconteurNETPINVOKE.RobotRaconteurNode__GetNodeDiscoveryMaxCacheCount(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _SetNodeDiscoveryMaxCacheCount(uint count) {
    RobotRaconteurNETPINVOKE.RobotRaconteurNode__SetNodeDiscoveryMaxCacheCount(swigCPtr, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void UnregisterServiceType(string type) {
    RobotRaconteurNETPINVOKE.RobotRaconteurNode_UnregisterServiceType(swigCPtr, type);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private WrappedServiceStub _ConnectService(string url, string username, MessageElementData credentials, ClientServiceListenerDirector listener, string objecttype) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.RobotRaconteurNode__ConnectService__SWIG_0(swigCPtr, url, username, MessageElementData.getCPtr(credentials), ClientServiceListenerDirector.getCPtr(listener), objecttype);
    WrappedServiceStub ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceStub(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private WrappedServiceStub _ConnectService(string url, string username, MessageElementData credentials, ClientServiceListenerDirector listener) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.RobotRaconteurNode__ConnectService__SWIG_1(swigCPtr, url, username, MessageElementData.getCPtr(credentials), ClientServiceListenerDirector.getCPtr(listener));
    WrappedServiceStub ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceStub(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private WrappedServiceStub _ConnectService(string url, string username, MessageElementData credentials) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.RobotRaconteurNode__ConnectService__SWIG_2(swigCPtr, url, username, MessageElementData.getCPtr(credentials));
    WrappedServiceStub ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceStub(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private WrappedServiceStub _ConnectService(string url, string username) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.RobotRaconteurNode__ConnectService__SWIG_3(swigCPtr, url, username);
    WrappedServiceStub ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceStub(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private WrappedServiceStub _ConnectService(string url) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.RobotRaconteurNode__ConnectService__SWIG_4(swigCPtr, url);
    WrappedServiceStub ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceStub(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private WrappedServiceStub _ConnectService(vectorstring url, string username, MessageElementData credentials, ClientServiceListenerDirector listener, string objecttype) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.RobotRaconteurNode__ConnectService__SWIG_5(swigCPtr, vectorstring.getCPtr(url), username, MessageElementData.getCPtr(credentials), ClientServiceListenerDirector.getCPtr(listener), objecttype);
    WrappedServiceStub ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceStub(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private WrappedServiceStub _ConnectService(vectorstring url, string username, MessageElementData credentials, ClientServiceListenerDirector listener) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.RobotRaconteurNode__ConnectService__SWIG_6(swigCPtr, vectorstring.getCPtr(url), username, MessageElementData.getCPtr(credentials), ClientServiceListenerDirector.getCPtr(listener));
    WrappedServiceStub ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceStub(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private WrappedServiceStub _ConnectService(vectorstring url, string username, MessageElementData credentials) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.RobotRaconteurNode__ConnectService__SWIG_7(swigCPtr, vectorstring.getCPtr(url), username, MessageElementData.getCPtr(credentials));
    WrappedServiceStub ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceStub(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private WrappedServiceStub _ConnectService(vectorstring url, string username) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.RobotRaconteurNode__ConnectService__SWIG_8(swigCPtr, vectorstring.getCPtr(url), username);
    WrappedServiceStub ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceStub(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private WrappedServiceStub _ConnectService(vectorstring url) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.RobotRaconteurNode__ConnectService__SWIG_9(swigCPtr, vectorstring.getCPtr(url));
    WrappedServiceStub ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceStub(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _AsyncConnectService(string url, string username, MessageElementData credentials, ClientServiceListenerDirector listener, string objecttype, int timeout, AsyncStubReturnDirector handler, int id) {
    RobotRaconteurNETPINVOKE.RobotRaconteurNode__AsyncConnectService__SWIG_0(swigCPtr, url, username, MessageElementData.getCPtr(credentials), ClientServiceListenerDirector.getCPtr(listener), objecttype, timeout, AsyncStubReturnDirector.getCPtr(handler), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private void _AsyncConnectService(vectorstring url, string username, MessageElementData credentials, ClientServiceListenerDirector listener, string objecttype, int timeout, AsyncStubReturnDirector handler, int id) {
    RobotRaconteurNETPINVOKE.RobotRaconteurNode__AsyncConnectService__SWIG_1(swigCPtr, vectorstring.getCPtr(url), username, MessageElementData.getCPtr(credentials), ClientServiceListenerDirector.getCPtr(listener), objecttype, timeout, AsyncStubReturnDirector.getCPtr(handler), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private void _DisconnectService(WrappedServiceStub obj) {
    RobotRaconteurNETPINVOKE.RobotRaconteurNode__DisconnectService(swigCPtr, WrappedServiceStub.getCPtr(obj));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private void _AsyncDisconnectService(WrappedServiceStub obj, AsyncVoidNoErrReturnDirector handler, int id) {
    RobotRaconteurNETPINVOKE.RobotRaconteurNode__AsyncDisconnectService(swigCPtr, WrappedServiceStub.getCPtr(obj), AsyncVoidNoErrReturnDirector.getCPtr(handler), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static string SelectRemoteNodeURL(vectorstring urls) {
    string ret = RobotRaconteurNETPINVOKE.RobotRaconteurNode_SelectRemoteNodeURL(vectorstring.getCPtr(urls));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _RegisterServiceType(ServiceDefinition def) {
    RobotRaconteurNETPINVOKE.RobotRaconteurNode__RegisterServiceType(swigCPtr, ServiceDefinition.getCPtr(def));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private void _RegisterServiceTypes(vectorptr_servicedefinition defs) {
    RobotRaconteurNETPINVOKE.RobotRaconteurNode__RegisterServiceTypes(swigCPtr, vectorptr_servicedefinition.getCPtr(defs));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private ServiceDefinition _GetServiceType(string servicename) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.RobotRaconteurNode__GetServiceType(swigCPtr, servicename);
    ServiceDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new ServiceDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private ServiceDefinition _GetPulledServiceType(RRObject obj, string servicename) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.RobotRaconteurNode__GetPulledServiceType(swigCPtr, RRObject.getCPtr(obj), servicename);
    ServiceDefinition ret = (cPtr == global::System.IntPtr.Zero) ? null : new ServiceDefinition(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool IsServiceTypeRegistered(string servicename) {
    bool ret = RobotRaconteurNETPINVOKE.RobotRaconteurNode_IsServiceTypeRegistered(swigCPtr, servicename);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private vectorstring _GetRegisteredServiceTypes() {
    vectorstring ret = new vectorstring(RobotRaconteurNETPINVOKE.RobotRaconteurNode__GetRegisteredServiceTypes(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private vectorstring _GetPulledServiceTypes(RRObject obj) {
    vectorstring ret = new vectorstring(RobotRaconteurNETPINVOKE.RobotRaconteurNode__GetPulledServiceTypes(swigCPtr, RRObject.getCPtr(obj)), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private static RobotRaconteurNode _get_s() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.RobotRaconteurNode__get_s();
    RobotRaconteurNode ret = (cPtr == global::System.IntPtr.Zero) ? null : new RobotRaconteurNode(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _Shutdown() {
    RobotRaconteurNETPINVOKE.RobotRaconteurNode__Shutdown(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private string _RequestObjectLock(WrappedServiceStub obj, RobotRaconteurObjectLockFlags flags) {
    string ret = RobotRaconteurNETPINVOKE.RobotRaconteurNode__RequestObjectLock(swigCPtr, WrappedServiceStub.getCPtr(obj), (int)flags);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private string _ReleaseObjectLock(WrappedServiceStub obj) {
    string ret = RobotRaconteurNETPINVOKE.RobotRaconteurNode__ReleaseObjectLock(swigCPtr, WrappedServiceStub.getCPtr(obj));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _MonitorEnter(WrappedServiceStub obj, int timeout) {
    RobotRaconteurNETPINVOKE.RobotRaconteurNode__MonitorEnter__SWIG_0(swigCPtr, WrappedServiceStub.getCPtr(obj), timeout);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private void _MonitorEnter(WrappedServiceStub obj) {
    RobotRaconteurNETPINVOKE.RobotRaconteurNode__MonitorEnter__SWIG_1(swigCPtr, WrappedServiceStub.getCPtr(obj));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private void _MonitorExit(WrappedServiceStub obj) {
    RobotRaconteurNETPINVOKE.RobotRaconteurNode__MonitorExit(swigCPtr, WrappedServiceStub.getCPtr(obj));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private DateTime _NowUTC() {
    long date_ticks = RobotRaconteurNETPINVOKE.RobotRaconteurNode__NowUTC(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return new DateTime(date_ticks + (new DateTime(1970,1,1)).Ticks);
}

  private TimeSpec _NowTimeSpec() {
    TimeSpec ret = new TimeSpec(RobotRaconteurNETPINVOKE.RobotRaconteurNode__NowTimeSpec(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private DateTime _NowNodeTime() {
    long date_ticks = RobotRaconteurNETPINVOKE.RobotRaconteurNode__NowNodeTime(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return new DateTime(date_ticks + (new DateTime(1970,1,1)).Ticks);
}

  private DateTime _NodeSyncTimeUTC() {
    long date_ticks = RobotRaconteurNETPINVOKE.RobotRaconteurNode__NodeSyncTimeUTC(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return new DateTime(date_ticks + (new DateTime(1970,1,1)).Ticks);
}

  private TimeSpec _NodeSyncTimeSpec() {
    TimeSpec ret = new TimeSpec(RobotRaconteurNETPINVOKE.RobotRaconteurNode__NodeSyncTimeSpec(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _AsyncRequestObjectLock(WrappedServiceStub obj, RobotRaconteurObjectLockFlags flags, int timeout, AsyncStringReturnDirector handler, int id) {
    RobotRaconteurNETPINVOKE.RobotRaconteurNode__AsyncRequestObjectLock(swigCPtr, WrappedServiceStub.getCPtr(obj), (int)flags, timeout, AsyncStringReturnDirector.getCPtr(handler), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private void _AsyncReleaseObjectLock(WrappedServiceStub obj, int timeout, AsyncStringReturnDirector handler, int id) {
    RobotRaconteurNETPINVOKE.RobotRaconteurNode__AsyncReleaseObjectLock(swigCPtr, WrappedServiceStub.getCPtr(obj), timeout, AsyncStringReturnDirector.getCPtr(handler), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private MessageElement _GetServiceAttributes(WrappedServiceStub obj) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.RobotRaconteurNode__GetServiceAttributes(swigCPtr, WrappedServiceStub.getCPtr(obj));
    MessageElement ret = (cPtr == global::System.IntPtr.Zero) ? null : new MessageElement(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private NodeID _GetServiceNodeID(WrappedServiceStub obj) {
    NodeID ret = new NodeID(RobotRaconteurNETPINVOKE.RobotRaconteurNode__GetServiceNodeID(swigCPtr, WrappedServiceStub.getCPtr(obj)), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private string _GetServiceNodeName(WrappedServiceStub obj) {
    string ret = RobotRaconteurNETPINVOKE.RobotRaconteurNode__GetServiceNodeName(swigCPtr, WrappedServiceStub.getCPtr(obj));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private string _GetServiceName(WrappedServiceStub obj) {
    string ret = RobotRaconteurNETPINVOKE.RobotRaconteurNode__GetServiceName(swigCPtr, WrappedServiceStub.getCPtr(obj));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private string _GetObjectServicePath(WrappedServiceStub obj) {
    string ret = RobotRaconteurNETPINVOKE.RobotRaconteurNode__GetObjectServicePath(swigCPtr, WrappedServiceStub.getCPtr(obj));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private string _GetObjectType(WrappedServiceStub obj) {
    string ret = RobotRaconteurNETPINVOKE.RobotRaconteurNode__GetObjectType(swigCPtr, WrappedServiceStub.getCPtr(obj));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private ServerContext _RegisterService(string name, string servicetype, RRObject obj, ServiceSecurityPolicy securitypolicy) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.RobotRaconteurNode__RegisterService__SWIG_0(swigCPtr, name, servicetype, RRObject.getCPtr(obj), ServiceSecurityPolicy.getCPtr(securitypolicy));
    ServerContext ret = (cPtr == global::System.IntPtr.Zero) ? null : new ServerContext(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private ServerContext _RegisterService(string name, string servicetype, RRObject obj) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.RobotRaconteurNode__RegisterService__SWIG_1(swigCPtr, name, servicetype, RRObject.getCPtr(obj));
    ServerContext ret = (cPtr == global::System.IntPtr.Zero) ? null : new ServerContext(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void CloseService(string sname) {
    RobotRaconteurNETPINVOKE.RobotRaconteurNode_CloseService(swigCPtr, sname);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private NodeID _NodeID() {
    NodeID ret = new NodeID(RobotRaconteurNETPINVOKE.RobotRaconteurNode__NodeID(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _SetNodeID(NodeID id) {
    RobotRaconteurNETPINVOKE.RobotRaconteurNode__SetNodeID(swigCPtr, NodeID.getCPtr(id));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private string _NodeName() {
    string ret = RobotRaconteurNETPINVOKE.RobotRaconteurNode__NodeName(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _SetNodeName(string name) {
    RobotRaconteurNETPINVOKE.RobotRaconteurNode__SetNodeName(swigCPtr, name);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private int _GetThreadPoolCount() {
    int ret = RobotRaconteurNETPINVOKE.RobotRaconteurNode__GetThreadPoolCount(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _SetThreadPoolCount(int count) {
    RobotRaconteurNETPINVOKE.RobotRaconteurNode__SetThreadPoolCount(swigCPtr, count);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private string _FindObjectType(RRObject obj, string n) {
    string ret = RobotRaconteurNETPINVOKE.RobotRaconteurNode__FindObjectType__SWIG_0(swigCPtr, RRObject.getCPtr(obj), n);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private string _FindObjectType(RRObject obj, string n, string i) {
    string ret = RobotRaconteurNETPINVOKE.RobotRaconteurNode__FindObjectType__SWIG_1(swigCPtr, RRObject.getCPtr(obj), n, i);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _AsyncFindObjectType(WrappedServiceStub obj, string n, int timeout, AsyncStringReturnDirector handler, int id) {
    RobotRaconteurNETPINVOKE.RobotRaconteurNode__AsyncFindObjectType__SWIG_0(swigCPtr, WrappedServiceStub.getCPtr(obj), n, timeout, AsyncStringReturnDirector.getCPtr(handler), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private void _AsyncFindObjectType(WrappedServiceStub obj, string n, string i, int timeout, AsyncStringReturnDirector handler, int id) {
    RobotRaconteurNETPINVOKE.RobotRaconteurNode__AsyncFindObjectType__SWIG_1(swigCPtr, WrappedServiceStub.getCPtr(obj), n, i, timeout, AsyncStringReturnDirector.getCPtr(handler), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private void _SetExceptionHandler(AsyncVoidReturnDirector handler, int id) {
    RobotRaconteurNETPINVOKE.RobotRaconteurNode__SetExceptionHandler(swigCPtr, AsyncVoidReturnDirector.getCPtr(handler), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private void _ClearExceptionHandler() {
    RobotRaconteurNETPINVOKE.RobotRaconteurNode__ClearExceptionHandler(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void Sleep(int duration) {
    RobotRaconteurNETPINVOKE.RobotRaconteurNode_Sleep(swigCPtr, duration);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private Timer _CreateTimer(int period, bool oneshot, AsyncTimerEventReturnDirector handler, int id) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.RobotRaconteurNode__CreateTimer(swigCPtr, period, oneshot, AsyncTimerEventReturnDirector.getCPtr(handler), id);
    Timer ret = (cPtr == global::System.IntPtr.Zero) ? null : new Timer(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public Rate CreateRate(double frequency) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.RobotRaconteurNode_CreateRate(swigCPtr, frequency);
    Rate ret = (cPtr == global::System.IntPtr.Zero) ? null : new Rate(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public AutoResetEvent CreateAutoResetEvent() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.RobotRaconteurNode_CreateAutoResetEvent(swigCPtr);
    AutoResetEvent ret = (cPtr == global::System.IntPtr.Zero) ? null : new AutoResetEvent(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  private void _PostToThreadPool(AsyncVoidNoErrReturnDirector handler, int id) {
    RobotRaconteurNETPINVOKE.RobotRaconteurNode__PostToThreadPool(swigCPtr, AsyncVoidNoErrReturnDirector.getCPtr(handler), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private string _GetRobotRaconteurVersion() {
    string ret = RobotRaconteurNETPINVOKE.RobotRaconteurNode__GetRobotRaconteurVersion(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool CompareLogLevel(LogLevel log_level) {
    bool ret = RobotRaconteurNETPINVOKE.RobotRaconteurNode_CompareLogLevel(swigCPtr, (int)log_level);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void LogMessage(LogLevel level, string message) {
    RobotRaconteurNETPINVOKE.RobotRaconteurNode_LogMessage(swigCPtr, (int)level, message);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void LogRecord(RRLogRecord record) {
    RobotRaconteurNETPINVOKE.RobotRaconteurNode_LogRecord(swigCPtr, RRLogRecord.getCPtr(record));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public LogLevel GetLogLevel() {
    LogLevel ret = (LogLevel)RobotRaconteurNETPINVOKE.RobotRaconteurNode_GetLogLevel(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void SetLogLevel(LogLevel level) {
    RobotRaconteurNETPINVOKE.RobotRaconteurNode_SetLogLevel(swigCPtr, (int)level);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public LogLevel SetLogLevelFromString(string level) {
    LogLevel ret = (LogLevel)RobotRaconteurNETPINVOKE.RobotRaconteurNode_SetLogLevelFromString(swigCPtr, level);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public LogLevel SetLogLevelFromEnvVariable(string env_variable_name) {
    LogLevel ret = (LogLevel)RobotRaconteurNETPINVOKE.RobotRaconteurNode_SetLogLevelFromEnvVariable__SWIG_0(swigCPtr, env_variable_name);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public LogLevel SetLogLevelFromEnvVariable() {
    LogLevel ret = (LogLevel)RobotRaconteurNETPINVOKE.RobotRaconteurNode_SetLogLevelFromEnvVariable__SWIG_1(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public LogRecordHandler GetLogRecordHandler() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.RobotRaconteurNode_GetLogRecordHandler(swigCPtr);
    LogRecordHandler ret = (cPtr == global::System.IntPtr.Zero) ? null : new LogRecordHandler(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void SetLogRecordHandler(LogRecordHandler handler) {
    RobotRaconteurNETPINVOKE.RobotRaconteurNode_SetLogRecordHandler(swigCPtr, LogRecordHandler.getCPtr(handler));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void CheckConnection(uint client) {
    RobotRaconteurNETPINVOKE.RobotRaconteurNode_CheckConnection(swigCPtr, client);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public NodeDirectories GetNodeDirectories() {
    NodeDirectories ret = new NodeDirectories(RobotRaconteurNETPINVOKE.RobotRaconteurNode_GetNodeDirectories(swigCPtr), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void SetNodeDirectories(NodeDirectories dir) {
    RobotRaconteurNETPINVOKE.RobotRaconteurNode_SetNodeDirectories(swigCPtr, NodeDirectories.getCPtr(dir));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

[global::System.Flags] public enum RobotRaconteurNodeSetupFlags {
  NONE = 0x0,
  ENABLE_NODE_DISCOVERY_LISTENING = 0x1,
  ENABLE_NODE_ANNOUNCE = 0x2,
  ENABLE_LOCAL_TRANSPORT = 0x4,
  ENABLE_TCP_TRANSPORT = 0x8,
  ENABLE_HARDWARE_TRANSPORT = 0x10,
  LOCAL_TRANSPORT_START_SERVER = 0x20,
  LOCAL_TRANSPORT_START_CLIENT = 0x40,
  TCP_TRANSPORT_START_SERVER = 0x80,
  TCP_TRANSPORT_START_SERVER_PORT_SHARER = 0x100,
  DISABLE_MESSAGE4 = 0x200,
  DISABLE_STRINGTABLE = 0x400,
  DISABLE_TIMEOUTS = 0x800,
  LOAD_TLS_CERT = 0x1000,
  REQUIRE_TLS = 0x2000,
  LOCAL_TRANSPORT_SERVER_PUBLIC = 0x4000,
  TCP_TRANSPORT_LISTEN_LOCALHOST = 0x8000,
  NODENAME_OVERRIDE = 0x10000,
  NODEID_OVERRIDE = 0x20000,
  TCP_PORT_OVERRIDE = 0x40000,
  TCP_WEBSOCKET_ORIGIN_OVERRIDE = 0x80000,
  ENABLE_INTRA_TRANSPORT = 0x100000,
  INTRA_TRANSPORT_START_SERVER = 0x200000,
  TCP_TRANSPORT_IPV4_DISCOVERY = 0x400000,
  TCP_TRANSPORT_IPV6_DISCOVERY = 0x800000,
  LOCAL_TAP_ENABLE = 0x1000000,
  LOCAL_TAP_NAME = 0x2000000,
  JUMBO_MESSAGE = 0x4000000,
  ENABLE_ALL_TRANSPORTS = 0x10001C,
  CLIENT_DEFAULT = 0x90004D,
  CLIENT_DEFAULT_ALLOWED_OVERRIDE = 0x7D33E5D,
  SERVER_DEFAULT = 0xB004AF,
  SERVER_DEFAULT_ALLOWED_OVERRIDE = 0x7FFFFFF,
  SECURE_SERVER_DEFAULT = 0xB034AF,
  SECURE_SERVER_DEFAULT_ALLOWED_OVERRIDE = 0x73FCFFF
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class CommandLineConfigParser : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal CommandLineConfigParser(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(CommandLineConfigParser obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~CommandLineConfigParser() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_CommandLineConfigParser(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

    public void ParseCommandLine(string[] args)
    {
        vectorstring args2 = new vectorstring(args);
        _ParseCommandLine(args2);
    }

  public CommandLineConfigParser(uint allowed_overrides, string prefix) : this(RobotRaconteurNETPINVOKE.new_CommandLineConfigParser__SWIG_0(allowed_overrides, prefix), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public CommandLineConfigParser(uint allowed_overrides) : this(RobotRaconteurNETPINVOKE.new_CommandLineConfigParser__SWIG_1(allowed_overrides), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void SetDefaults(string node_name, ushort tcp_port, uint default_flags) {
    RobotRaconteurNETPINVOKE.CommandLineConfigParser_SetDefaults(swigCPtr, node_name, tcp_port, default_flags);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void AddStringOption(string name, string descr) {
    RobotRaconteurNETPINVOKE.CommandLineConfigParser_AddStringOption(swigCPtr, name, descr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void AddBoolOption(string name, string descr) {
    RobotRaconteurNETPINVOKE.CommandLineConfigParser_AddBoolOption(swigCPtr, name, descr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void AddIntOption(string name, string descr) {
    RobotRaconteurNETPINVOKE.CommandLineConfigParser_AddIntOption(swigCPtr, name, descr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private void _ParseCommandLine(vectorstring args) {
    RobotRaconteurNETPINVOKE.CommandLineConfigParser__ParseCommandLine(swigCPtr, vectorstring.getCPtr(args));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public string GetOptionOrDefaultAsString(string option) {
    string ret = RobotRaconteurNETPINVOKE.CommandLineConfigParser_GetOptionOrDefaultAsString__SWIG_0(swigCPtr, option);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public string GetOptionOrDefaultAsString(string option, string default_value) {
    string ret = RobotRaconteurNETPINVOKE.CommandLineConfigParser_GetOptionOrDefaultAsString__SWIG_1(swigCPtr, option, default_value);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool GetOptionOrDefaultAsBool(string option) {
    bool ret = RobotRaconteurNETPINVOKE.CommandLineConfigParser_GetOptionOrDefaultAsBool__SWIG_0(swigCPtr, option);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public bool GetOptionOrDefaultAsBool(string option, bool default_value) {
    bool ret = RobotRaconteurNETPINVOKE.CommandLineConfigParser_GetOptionOrDefaultAsBool__SWIG_1(swigCPtr, option, default_value);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public int GetOptionOrDefaultAsInt(string option) {
    int ret = RobotRaconteurNETPINVOKE.CommandLineConfigParser_GetOptionOrDefaultAsInt__SWIG_0(swigCPtr, option);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public int GetOptionOrDefaultAsInt(string option, int default_value) {
    int ret = RobotRaconteurNETPINVOKE.CommandLineConfigParser_GetOptionOrDefaultAsInt__SWIG_1(swigCPtr, option, default_value);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class WrappedRobotRaconteurNodeSetup : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal WrappedRobotRaconteurNodeSetup(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(WrappedRobotRaconteurNodeSetup obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~WrappedRobotRaconteurNodeSetup() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_WrappedRobotRaconteurNodeSetup(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public LocalTransport GetLocalTransport() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedRobotRaconteurNodeSetup_GetLocalTransport(swigCPtr);
    LocalTransport ret = (cPtr == global::System.IntPtr.Zero) ? null : new LocalTransport(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public IntraTransport GetIntraTransport() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedRobotRaconteurNodeSetup_GetIntraTransport(swigCPtr);
    IntraTransport ret = (cPtr == global::System.IntPtr.Zero) ? null : new IntraTransport(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public TcpTransport GetTcpTransport() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedRobotRaconteurNodeSetup_GetTcpTransport(swigCPtr);
    TcpTransport ret = (cPtr == global::System.IntPtr.Zero) ? null : new TcpTransport(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public HardwareTransport GetHardwareTransport() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedRobotRaconteurNodeSetup_GetHardwareTransport(swigCPtr);
    HardwareTransport ret = (cPtr == global::System.IntPtr.Zero) ? null : new HardwareTransport(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public CommandLineConfigParser GetCommandLineConfig() {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedRobotRaconteurNodeSetup_GetCommandLineConfig(swigCPtr);
    CommandLineConfigParser ret = (cPtr == global::System.IntPtr.Zero) ? null : new CommandLineConfigParser(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void ReleaseNode() {
    RobotRaconteurNETPINVOKE.WrappedRobotRaconteurNodeSetup_ReleaseNode(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public WrappedRobotRaconteurNodeSetup(RobotRaconteurNode node, string node_name, ushort tcp_port, uint flags) : this(RobotRaconteurNETPINVOKE.new_WrappedRobotRaconteurNodeSetup__SWIG_0(RobotRaconteurNode.getCPtr(node), node_name, tcp_port, flags), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public WrappedRobotRaconteurNodeSetup(RobotRaconteurNode node, CommandLineConfigParser config) : this(RobotRaconteurNETPINVOKE.new_WrappedRobotRaconteurNodeSetup__SWIG_1(RobotRaconteurNode.getCPtr(node), CommandLineConfigParser.getCPtr(config)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public WrappedRobotRaconteurNodeSetup(RobotRaconteurNode node, string node_name, ushort tcp_port, uint flags, uint allowed_overrides, vectorstring args) : this(RobotRaconteurNETPINVOKE.new_WrappedRobotRaconteurNodeSetup__SWIG_2(RobotRaconteurNode.getCPtr(node), node_name, tcp_port, flags, allowed_overrides, vectorstring.getCPtr(args)), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class BroadcastDownsampler : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  private bool swigCMemOwnBase;

  internal BroadcastDownsampler(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwnBase = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(BroadcastDownsampler obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~BroadcastDownsampler() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwnBase) {
          swigCMemOwnBase = false;
          RobotRaconteurNETPINVOKE.delete_BroadcastDownsampler(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

    public void AddPipeBroadcaster<T>(PipeBroadcaster<T> broadcaster)
    {
        _AddPipeBroadcaster(broadcaster.innerpipe);
    }

    public void AddWireBroadcaster<T>(WireBroadcaster<T> broadcaster)
    {
        _AddWireBroadcaster(broadcaster.innerwire);
    }

    public BroadcastDownsampler(ServerContext context, uint default_downsample) : this()
    {
        _Init(context, default_downsample);
    }


  private BroadcastDownsampler() : this(RobotRaconteurNETPINVOKE.new_BroadcastDownsampler(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void _Init(ServerContext context, uint default_downsample) {
    RobotRaconteurNETPINVOKE.BroadcastDownsampler__Init__SWIG_0(swigCPtr, ServerContext.getCPtr(context), default_downsample);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void _Init(ServerContext context) {
    RobotRaconteurNETPINVOKE.BroadcastDownsampler__Init__SWIG_1(swigCPtr, ServerContext.getCPtr(context));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public uint GetClientDownsample(uint ep) {
    uint ret = RobotRaconteurNETPINVOKE.BroadcastDownsampler_GetClientDownsample(swigCPtr, ep);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public void SetClientDownsample(uint ep, uint downsample) {
    RobotRaconteurNETPINVOKE.BroadcastDownsampler_SetClientDownsample(swigCPtr, ep, downsample);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void BeginStep() {
    RobotRaconteurNETPINVOKE.BroadcastDownsampler_BeginStep(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public void EndStep() {
    RobotRaconteurNETPINVOKE.BroadcastDownsampler_EndStep(swigCPtr);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private void _AddPipeBroadcaster(WrappedPipeBroadcaster broadcaster) {
    RobotRaconteurNETPINVOKE.BroadcastDownsampler__AddPipeBroadcaster(swigCPtr, WrappedPipeBroadcaster.getCPtr(broadcaster));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  private void _AddWireBroadcaster(WrappedWireBroadcaster broadcaster) {
    RobotRaconteurNETPINVOKE.BroadcastDownsampler__AddWireBroadcaster(swigCPtr, WrappedWireBroadcaster.getCPtr(broadcaster));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class RRNativeObjectHeapSupport : global::System.IDisposable {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal RRNativeObjectHeapSupport(global::System.IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(RRNativeObjectHeapSupport obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }

  ~RRNativeObjectHeapSupport() {
    Dispose(false);
  }

  public void Dispose() {
    Dispose(true);
    global::System.GC.SuppressFinalize(this);
  }

  protected virtual void Dispose(bool disposing) {
    lock(this) {
      if (swigCPtr.Handle != global::System.IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          RobotRaconteurNETPINVOKE.delete_RRNativeObjectHeapSupport(swigCPtr);
        }
        swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
      }
    }
  }

  public static void Set_Support(RRNativeObjectHeapSupport s) {
    RobotRaconteurNETPINVOKE.RRNativeObjectHeapSupport_Set_Support(RRNativeObjectHeapSupport.getCPtr(s));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public virtual void DeleteObject_i(int id) {
    RobotRaconteurNETPINVOKE.RRNativeObjectHeapSupport_DeleteObject_i(swigCPtr, id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static void DeleteObject(int id) {
    RobotRaconteurNETPINVOKE.RRNativeObjectHeapSupport_DeleteObject(id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public RRNativeObjectHeapSupport() : this(RobotRaconteurNETPINVOKE.new_RRNativeObjectHeapSupport(), true) {
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    SwigDirectorConnect();
  }

  private void SwigDirectorConnect() {
    if (SwigDerivedClassHasMethod("DeleteObject_i", swigMethodTypes0))
      swigDelegate0 = new SwigDelegateRRNativeObjectHeapSupport_0(SwigDirectorMethodDeleteObject_i);
    RobotRaconteurNETPINVOKE.RRNativeObjectHeapSupport_director_connect(swigCPtr, swigDelegate0);
  }

  private bool SwigDerivedClassHasMethod(string methodName, global::System.Type[] methodTypes) {
    global::System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, global::System.Reflection.BindingFlags.Public | global::System.Reflection.BindingFlags.NonPublic | global::System.Reflection.BindingFlags.Instance, null, methodTypes, null);
    bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(RRNativeObjectHeapSupport));
    return hasDerivedMethod;
  }

  private void SwigDirectorMethodDeleteObject_i(int id) {
    DeleteObject_i(id);
  }

  public delegate void SwigDelegateRRNativeObjectHeapSupport_0(int id);

  private SwigDelegateRRNativeObjectHeapSupport_0 swigDelegate0;

  private static global::System.Type[] swigMethodTypes0 = new global::System.Type[] { typeof(int) };
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

class RobotRaconteurNETPINVOKE {

  protected class SWIGExceptionHelper {

    public delegate void ExceptionDelegate(string message);
    public delegate void ExceptionArgumentDelegate(string message, string paramName);

    static ExceptionDelegate applicationDelegate = new ExceptionDelegate(SetPendingApplicationException);
    static ExceptionDelegate arithmeticDelegate = new ExceptionDelegate(SetPendingArithmeticException);
    static ExceptionDelegate divideByZeroDelegate = new ExceptionDelegate(SetPendingDivideByZeroException);
    static ExceptionDelegate indexOutOfRangeDelegate = new ExceptionDelegate(SetPendingIndexOutOfRangeException);
    static ExceptionDelegate invalidCastDelegate = new ExceptionDelegate(SetPendingInvalidCastException);
    static ExceptionDelegate invalidOperationDelegate = new ExceptionDelegate(SetPendingInvalidOperationException);
    static ExceptionDelegate ioDelegate = new ExceptionDelegate(SetPendingIOException);
    static ExceptionDelegate nullReferenceDelegate = new ExceptionDelegate(SetPendingNullReferenceException);
    static ExceptionDelegate outOfMemoryDelegate = new ExceptionDelegate(SetPendingOutOfMemoryException);
    static ExceptionDelegate overflowDelegate = new ExceptionDelegate(SetPendingOverflowException);
    static ExceptionDelegate systemDelegate = new ExceptionDelegate(SetPendingSystemException);

    static ExceptionArgumentDelegate argumentDelegate = new ExceptionArgumentDelegate(SetPendingArgumentException);
    static ExceptionArgumentDelegate argumentNullDelegate = new ExceptionArgumentDelegate(SetPendingArgumentNullException);
    static ExceptionArgumentDelegate argumentOutOfRangeDelegate = new ExceptionArgumentDelegate(SetPendingArgumentOutOfRangeException);

    [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="SWIGRegisterExceptionCallbacks_RobotRaconteurNET")]
    public static extern void SWIGRegisterExceptionCallbacks_RobotRaconteurNET(
                                ExceptionDelegate applicationDelegate,
                                ExceptionDelegate arithmeticDelegate,
                                ExceptionDelegate divideByZeroDelegate, 
                                ExceptionDelegate indexOutOfRangeDelegate, 
                                ExceptionDelegate invalidCastDelegate,
                                ExceptionDelegate invalidOperationDelegate,
                                ExceptionDelegate ioDelegate,
                                ExceptionDelegate nullReferenceDelegate,
                                ExceptionDelegate outOfMemoryDelegate, 
                                ExceptionDelegate overflowDelegate, 
                                ExceptionDelegate systemExceptionDelegate);

    [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="SWIGRegisterExceptionArgumentCallbacks_RobotRaconteurNET")]
    public static extern void SWIGRegisterExceptionCallbacksArgument_RobotRaconteurNET(
                                ExceptionArgumentDelegate argumentDelegate,
                                ExceptionArgumentDelegate argumentNullDelegate,
                                ExceptionArgumentDelegate argumentOutOfRangeDelegate);

    static void SetPendingApplicationException(string message) {
      SWIGPendingException.Set(new global::System.ApplicationException(message, SWIGPendingException.Retrieve()));
    }
    static void SetPendingArithmeticException(string message) {
      SWIGPendingException.Set(new global::System.ArithmeticException(message, SWIGPendingException.Retrieve()));
    }
    static void SetPendingDivideByZeroException(string message) {
      SWIGPendingException.Set(new global::System.DivideByZeroException(message, SWIGPendingException.Retrieve()));
    }
    static void SetPendingIndexOutOfRangeException(string message) {
      SWIGPendingException.Set(new global::System.IndexOutOfRangeException(message, SWIGPendingException.Retrieve()));
    }
    static void SetPendingInvalidCastException(string message) {
      SWIGPendingException.Set(new global::System.InvalidCastException(message, SWIGPendingException.Retrieve()));
    }
    static void SetPendingInvalidOperationException(string message) {
      SWIGPendingException.Set(new global::System.InvalidOperationException(message, SWIGPendingException.Retrieve()));
    }
    static void SetPendingIOException(string message) {
      SWIGPendingException.Set(new global::System.IO.IOException(message, SWIGPendingException.Retrieve()));
    }
    static void SetPendingNullReferenceException(string message) {
      SWIGPendingException.Set(new global::System.NullReferenceException(message, SWIGPendingException.Retrieve()));
    }
    static void SetPendingOutOfMemoryException(string message) {
      SWIGPendingException.Set(new global::System.OutOfMemoryException(message, SWIGPendingException.Retrieve()));
    }
    static void SetPendingOverflowException(string message) {
      SWIGPendingException.Set(new global::System.OverflowException(message, SWIGPendingException.Retrieve()));
    }
    static void SetPendingSystemException(string message) {
      SWIGPendingException.Set(new global::System.SystemException(message, SWIGPendingException.Retrieve()));
    }

    static void SetPendingArgumentException(string message, string paramName) {
      SWIGPendingException.Set(new global::System.ArgumentException(message, paramName, SWIGPendingException.Retrieve()));
    }
    static void SetPendingArgumentNullException(string message, string paramName) {
      global::System.Exception e = SWIGPendingException.Retrieve();
      if (e != null) message = message + " Inner Exception: " + e.Message;
      SWIGPendingException.Set(new global::System.ArgumentNullException(paramName, message));
    }
    static void SetPendingArgumentOutOfRangeException(string message, string paramName) {
      global::System.Exception e = SWIGPendingException.Retrieve();
      if (e != null) message = message + " Inner Exception: " + e.Message;
      SWIGPendingException.Set(new global::System.ArgumentOutOfRangeException(paramName, message));
    }

    static SWIGExceptionHelper() {
      SWIGRegisterExceptionCallbacks_RobotRaconteurNET(
                                applicationDelegate,
                                arithmeticDelegate,
                                divideByZeroDelegate,
                                indexOutOfRangeDelegate,
                                invalidCastDelegate,
                                invalidOperationDelegate,
                                ioDelegate,
                                nullReferenceDelegate,
                                outOfMemoryDelegate,
                                overflowDelegate,
                                systemDelegate);

      SWIGRegisterExceptionCallbacksArgument_RobotRaconteurNET(
                                argumentDelegate,
                                argumentNullDelegate,
                                argumentOutOfRangeDelegate);
    }
  }

  protected static SWIGExceptionHelper swigExceptionHelper = new SWIGExceptionHelper();

  public class SWIGPendingException {
    [global::System.ThreadStatic]
    private static global::System.Exception pendingException = null;
    private static int numExceptionsPending = 0;
    private static global::System.Object exceptionsLock = null;

    public static bool Pending {
      get {
        bool pending = false;
        if (numExceptionsPending > 0)
          if (pendingException != null)
            pending = true;
        return pending;
      } 
    }

    public static void Set(global::System.Exception e) {
      if (pendingException != null)
        throw new global::System.ApplicationException("FATAL: An earlier pending exception from unmanaged code was missed and thus not thrown (" + pendingException.ToString() + ")", e);
      pendingException = e;
      lock(exceptionsLock) {
        numExceptionsPending++;
      }
    }

    public static global::System.Exception Retrieve() {
      global::System.Exception e = null;
      if (numExceptionsPending > 0) {
        if (pendingException != null) {
          e = pendingException;
          pendingException = null;
          lock(exceptionsLock) {
            numExceptionsPending--;
          }
        }
      }
      return e;
    }

    static SWIGPendingException() {
      exceptionsLock = new global::System.Object();
    }
  }


  protected class SWIGStringHelper {

    public delegate string SWIGStringDelegate(string message);
    static SWIGStringDelegate stringDelegate = new SWIGStringDelegate(CreateString);

    [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="SWIGRegisterStringCallback_RobotRaconteurNET")]
    public static extern void SWIGRegisterStringCallback_RobotRaconteurNET(SWIGStringDelegate stringDelegate);

    static string CreateString(string cString) {
      return cString;
    }

    static SWIGStringHelper() {
      SWIGRegisterStringCallback_RobotRaconteurNET(stringDelegate);
    }
  }

  static protected SWIGStringHelper swigStringHelper = new SWIGStringHelper();


  static RobotRaconteurNETPINVOKE() {
  }


  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageFlags_ROUTING_INFO_get")]
  public static extern byte MessageFlags_ROUTING_INFO_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageFlags_ENDPOINT_INFO_get")]
  public static extern byte MessageFlags_ENDPOINT_INFO_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageFlags_PRIORITY_get")]
  public static extern byte MessageFlags_PRIORITY_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageFlags_UNRELIABLE_get")]
  public static extern byte MessageFlags_UNRELIABLE_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageFlags_META_INFO_get")]
  public static extern byte MessageFlags_META_INFO_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageFlags_STRING_TABLE_get")]
  public static extern byte MessageFlags_STRING_TABLE_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageFlags_MULTIPLE_ENTRIES_get")]
  public static extern byte MessageFlags_MULTIPLE_ENTRIES_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageFlags_EXTENDED_get")]
  public static extern byte MessageFlags_EXTENDED_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageFlags_Version2Compat_get")]
  public static extern byte MessageFlags_Version2Compat_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageEntryFlags_SERVICE_PATH_STR_get")]
  public static extern byte MessageEntryFlags_SERVICE_PATH_STR_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageEntryFlags_SERVICE_PATH_CODE_get")]
  public static extern byte MessageEntryFlags_SERVICE_PATH_CODE_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageEntryFlags_MEMBER_NAME_STR_get")]
  public static extern byte MessageEntryFlags_MEMBER_NAME_STR_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageEntryFlags_MEMBER_NAME_CODE_get")]
  public static extern byte MessageEntryFlags_MEMBER_NAME_CODE_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageEntryFlags_REQUEST_ID_get")]
  public static extern byte MessageEntryFlags_REQUEST_ID_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageEntryFlags_ERROR_get")]
  public static extern byte MessageEntryFlags_ERROR_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageEntryFlags_META_INFO_get")]
  public static extern byte MessageEntryFlags_META_INFO_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageEntryFlags_EXTENDED_get")]
  public static extern byte MessageEntryFlags_EXTENDED_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageEntryFlags_Version2Compat_get")]
  public static extern byte MessageEntryFlags_Version2Compat_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementFlags_ELEMENT_NAME_STR_get")]
  public static extern byte MessageElementFlags_ELEMENT_NAME_STR_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementFlags_ELEMENT_NAME_CODE_get")]
  public static extern byte MessageElementFlags_ELEMENT_NAME_CODE_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementFlags_ELEMENT_NUMBER_get")]
  public static extern byte MessageElementFlags_ELEMENT_NUMBER_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementFlags_ELEMENT_TYPE_NAME_STR_get")]
  public static extern byte MessageElementFlags_ELEMENT_TYPE_NAME_STR_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementFlags_ELEMENT_TYPE_NAME_CODE_get")]
  public static extern byte MessageElementFlags_ELEMENT_TYPE_NAME_CODE_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementFlags_META_INFO_get")]
  public static extern byte MessageElementFlags_META_INFO_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementFlags_EXTENDED_get")]
  public static extern byte MessageElementFlags_EXTENDED_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementFlags_Version2Compat_get")]
  public static extern byte MessageElementFlags_Version2Compat_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RR_TIMEOUT_INFINITE_get")]
  public static extern int RR_TIMEOUT_INFINITE_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RR_VALUE_LIFESPAN_INFINITE_get")]
  public static extern int RR_VALUE_LIFESPAN_INFINITE_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TranspartCapabilityCode_PAGE_MASK_get")]
  public static extern uint TranspartCapabilityCode_PAGE_MASK_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TransportCapabilityCode_MESSAGE2_BASIC_PAGE_get")]
  public static extern uint TransportCapabilityCode_MESSAGE2_BASIC_PAGE_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TransportCapabilityCode_MESSAGE2_BASIC_ENABLE_get")]
  public static extern uint TransportCapabilityCode_MESSAGE2_BASIC_ENABLE_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TransportCapabilityCode_MESSAGE2_BASIC_CONNECTCOMBINED_get")]
  public static extern uint TransportCapabilityCode_MESSAGE2_BASIC_CONNECTCOMBINED_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TransportCapabilityCode_MESSAGE4_BASIC_PAGE_get")]
  public static extern uint TransportCapabilityCode_MESSAGE4_BASIC_PAGE_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TransportCapabilityCode_MESSAGE4_BASIC_ENABLE_get")]
  public static extern uint TransportCapabilityCode_MESSAGE4_BASIC_ENABLE_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TransportCapabilityCode_MESSAGE4_BASIC_CONNECTCOMBINED_get")]
  public static extern uint TransportCapabilityCode_MESSAGE4_BASIC_CONNECTCOMBINED_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TransportCapabilityCode_MESSAGE4_STRINGTABLE_PAGE_get")]
  public static extern uint TransportCapabilityCode_MESSAGE4_STRINGTABLE_PAGE_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TransportCapabilityCode_MESSAGE4_STRINGTABLE_ENABLE_get")]
  public static extern uint TransportCapabilityCode_MESSAGE4_STRINGTABLE_ENABLE_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TransportCapabilityCode_MESSAGE4_STRINGTABLE_MESSAGE_LOCAL_get")]
  public static extern uint TransportCapabilityCode_MESSAGE4_STRINGTABLE_MESSAGE_LOCAL_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TransportCapabilityCode_MESSAGE4_STRINGTABLE_STANDARD_TABLE_get")]
  public static extern uint TransportCapabilityCode_MESSAGE4_STRINGTABLE_STANDARD_TABLE_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_FilesystemPath")]
  public static extern global::System.IntPtr new_FilesystemPath(string jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_FilesystemPath_string_")]
  public static extern string FilesystemPath_string_(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_FilesystemPath")]
  public static extern void delete_FilesystemPath(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurExceptionHelper_SetRobotRaconteurException")]
  public static extern void RobotRaconteurExceptionHelper_SetRobotRaconteurException(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurExceptionHelper_SetRobotRaconteurExceptionSwigExplicitRobotRaconteurExceptionHelper")]
  public static extern void RobotRaconteurExceptionHelper_SetRobotRaconteurExceptionSwigExplicitRobotRaconteurExceptionHelper(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_RobotRaconteurExceptionHelper")]
  public static extern void delete_RobotRaconteurExceptionHelper(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_RobotRaconteurExceptionHelper")]
  public static extern global::System.IntPtr new_RobotRaconteurExceptionHelper();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurExceptionHelper_director_connect")]
  public static extern void RobotRaconteurExceptionHelper_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, RobotRaconteurExceptionHelper.SwigDelegateRobotRaconteurExceptionHelper_0 delegate0);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_robotRaconteurExceptionHelper_set")]
  public static extern void robotRaconteurExceptionHelper_set(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_robotRaconteurExceptionHelper_get")]
  public static extern global::System.IntPtr robotRaconteurExceptionHelper_get();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRDirectorExceptionHelper_Reset")]
  public static extern void RRDirectorExceptionHelper_Reset();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRDirectorExceptionHelper_SetError")]
  public static extern void RRDirectorExceptionHelper_SetError(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRDirectorExceptionHelper_IsErrorPending")]
  public static extern bool RRDirectorExceptionHelper_IsErrorPending();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRDirectorExceptionHelper_GetError")]
  public static extern global::System.IntPtr RRDirectorExceptionHelper_GetError();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_RRDirectorExceptionHelper")]
  public static extern global::System.IntPtr new_RRDirectorExceptionHelper();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_RRDirectorExceptionHelper")]
  public static extern void delete_RRDirectorExceptionHelper(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorstring_Clear")]
  public static extern void vectorstring_Clear(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorstring_Add")]
  public static extern void vectorstring_Add(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorstring_size")]
  public static extern uint vectorstring_size(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorstring_capacity")]
  public static extern uint vectorstring_capacity(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorstring_reserve")]
  public static extern void vectorstring_reserve(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorstring__SWIG_0")]
  public static extern global::System.IntPtr new_vectorstring__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorstring__SWIG_1")]
  public static extern global::System.IntPtr new_vectorstring__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorstring__SWIG_2")]
  public static extern global::System.IntPtr new_vectorstring__SWIG_2(int jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorstring_getitemcopy")]
  public static extern string vectorstring_getitemcopy(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorstring_getitem")]
  public static extern string vectorstring_getitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorstring_setitem")]
  public static extern void vectorstring_setitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, string jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorstring_AddRange")]
  public static extern void vectorstring_AddRange(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorstring_GetRange")]
  public static extern global::System.IntPtr vectorstring_GetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorstring_Insert")]
  public static extern void vectorstring_Insert(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, string jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorstring_InsertRange")]
  public static extern void vectorstring_InsertRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorstring_RemoveAt")]
  public static extern void vectorstring_RemoveAt(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorstring_RemoveRange")]
  public static extern void vectorstring_RemoveRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorstring_Repeat")]
  public static extern global::System.IntPtr vectorstring_Repeat(string jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorstring_Reverse__SWIG_0")]
  public static extern void vectorstring_Reverse__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorstring_Reverse__SWIG_1")]
  public static extern void vectorstring_Reverse__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorstring_SetRange")]
  public static extern void vectorstring_SetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorstring_Contains")]
  public static extern bool vectorstring_Contains(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorstring_IndexOf")]
  public static extern int vectorstring_IndexOf(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorstring_LastIndexOf")]
  public static extern int vectorstring_LastIndexOf(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorstring_Remove")]
  public static extern bool vectorstring_Remove(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_vectorstring")]
  public static extern void delete_vectorstring(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorint32_Clear")]
  public static extern void vectorint32_Clear(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorint32_Add")]
  public static extern void vectorint32_Add(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorint32_size")]
  public static extern uint vectorint32_size(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorint32_capacity")]
  public static extern uint vectorint32_capacity(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorint32_reserve")]
  public static extern void vectorint32_reserve(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorint32__SWIG_0")]
  public static extern global::System.IntPtr new_vectorint32__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorint32__SWIG_1")]
  public static extern global::System.IntPtr new_vectorint32__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorint32__SWIG_2")]
  public static extern global::System.IntPtr new_vectorint32__SWIG_2(int jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorint32_getitemcopy")]
  public static extern int vectorint32_getitemcopy(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorint32_getitem")]
  public static extern int vectorint32_getitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorint32_setitem")]
  public static extern void vectorint32_setitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorint32_AddRange")]
  public static extern void vectorint32_AddRange(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorint32_GetRange")]
  public static extern global::System.IntPtr vectorint32_GetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorint32_Insert")]
  public static extern void vectorint32_Insert(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorint32_InsertRange")]
  public static extern void vectorint32_InsertRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorint32_RemoveAt")]
  public static extern void vectorint32_RemoveAt(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorint32_RemoveRange")]
  public static extern void vectorint32_RemoveRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorint32_Repeat")]
  public static extern global::System.IntPtr vectorint32_Repeat(int jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorint32_Reverse__SWIG_0")]
  public static extern void vectorint32_Reverse__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorint32_Reverse__SWIG_1")]
  public static extern void vectorint32_Reverse__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorint32_SetRange")]
  public static extern void vectorint32_SetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorint32_Contains")]
  public static extern bool vectorint32_Contains(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorint32_IndexOf")]
  public static extern int vectorint32_IndexOf(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorint32_LastIndexOf")]
  public static extern int vectorint32_LastIndexOf(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorint32_Remove")]
  public static extern bool vectorint32_Remove(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_vectorint32")]
  public static extern void delete_vectorint32(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectoruint32_Clear")]
  public static extern void vectoruint32_Clear(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectoruint32_Add")]
  public static extern void vectoruint32_Add(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectoruint32_size")]
  public static extern uint vectoruint32_size(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectoruint32_capacity")]
  public static extern uint vectoruint32_capacity(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectoruint32_reserve")]
  public static extern void vectoruint32_reserve(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectoruint32__SWIG_0")]
  public static extern global::System.IntPtr new_vectoruint32__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectoruint32__SWIG_1")]
  public static extern global::System.IntPtr new_vectoruint32__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectoruint32__SWIG_2")]
  public static extern global::System.IntPtr new_vectoruint32__SWIG_2(int jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectoruint32_getitemcopy")]
  public static extern uint vectoruint32_getitemcopy(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectoruint32_getitem")]
  public static extern uint vectoruint32_getitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectoruint32_setitem")]
  public static extern void vectoruint32_setitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, uint jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectoruint32_AddRange")]
  public static extern void vectoruint32_AddRange(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectoruint32_GetRange")]
  public static extern global::System.IntPtr vectoruint32_GetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectoruint32_Insert")]
  public static extern void vectoruint32_Insert(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, uint jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectoruint32_InsertRange")]
  public static extern void vectoruint32_InsertRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectoruint32_RemoveAt")]
  public static extern void vectoruint32_RemoveAt(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectoruint32_RemoveRange")]
  public static extern void vectoruint32_RemoveRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectoruint32_Repeat")]
  public static extern global::System.IntPtr vectoruint32_Repeat(uint jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectoruint32_Reverse__SWIG_0")]
  public static extern void vectoruint32_Reverse__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectoruint32_Reverse__SWIG_1")]
  public static extern void vectoruint32_Reverse__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectoruint32_SetRange")]
  public static extern void vectoruint32_SetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectoruint32_Contains")]
  public static extern bool vectoruint32_Contains(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectoruint32_IndexOf")]
  public static extern int vectoruint32_IndexOf(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectoruint32_LastIndexOf")]
  public static extern int vectoruint32_LastIndexOf(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectoruint32_Remove")]
  public static extern bool vectoruint32_Remove(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_vectoruint32")]
  public static extern void delete_vectoruint32(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_int8_t_Clear")]
  public static extern void vector_int8_t_Clear(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_int8_t_Add")]
  public static extern void vector_int8_t_Add(global::System.Runtime.InteropServices.HandleRef jarg1, sbyte jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_int8_t_size")]
  public static extern uint vector_int8_t_size(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_int8_t_capacity")]
  public static extern uint vector_int8_t_capacity(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_int8_t_reserve")]
  public static extern void vector_int8_t_reserve(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vector_int8_t__SWIG_0")]
  public static extern global::System.IntPtr new_vector_int8_t__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vector_int8_t__SWIG_1")]
  public static extern global::System.IntPtr new_vector_int8_t__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vector_int8_t__SWIG_2")]
  public static extern global::System.IntPtr new_vector_int8_t__SWIG_2(int jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_int8_t_getitemcopy")]
  public static extern sbyte vector_int8_t_getitemcopy(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_int8_t_getitem")]
  public static extern sbyte vector_int8_t_getitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_int8_t_setitem")]
  public static extern void vector_int8_t_setitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, sbyte jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_int8_t_AddRange")]
  public static extern void vector_int8_t_AddRange(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_int8_t_GetRange")]
  public static extern global::System.IntPtr vector_int8_t_GetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_int8_t_Insert")]
  public static extern void vector_int8_t_Insert(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, sbyte jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_int8_t_InsertRange")]
  public static extern void vector_int8_t_InsertRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_int8_t_RemoveAt")]
  public static extern void vector_int8_t_RemoveAt(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_int8_t_RemoveRange")]
  public static extern void vector_int8_t_RemoveRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_int8_t_Repeat")]
  public static extern global::System.IntPtr vector_int8_t_Repeat(sbyte jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_int8_t_Reverse__SWIG_0")]
  public static extern void vector_int8_t_Reverse__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_int8_t_Reverse__SWIG_1")]
  public static extern void vector_int8_t_Reverse__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_int8_t_SetRange")]
  public static extern void vector_int8_t_SetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_int8_t_Contains")]
  public static extern bool vector_int8_t_Contains(global::System.Runtime.InteropServices.HandleRef jarg1, sbyte jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_int8_t_IndexOf")]
  public static extern int vector_int8_t_IndexOf(global::System.Runtime.InteropServices.HandleRef jarg1, sbyte jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_int8_t_LastIndexOf")]
  public static extern int vector_int8_t_LastIndexOf(global::System.Runtime.InteropServices.HandleRef jarg1, sbyte jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_int8_t_Remove")]
  public static extern bool vector_int8_t_Remove(global::System.Runtime.InteropServices.HandleRef jarg1, sbyte jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_vector_int8_t")]
  public static extern void delete_vector_int8_t(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint8_t_Clear")]
  public static extern void vector_uint8_t_Clear(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint8_t_Add")]
  public static extern void vector_uint8_t_Add(global::System.Runtime.InteropServices.HandleRef jarg1, byte jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint8_t_size")]
  public static extern uint vector_uint8_t_size(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint8_t_capacity")]
  public static extern uint vector_uint8_t_capacity(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint8_t_reserve")]
  public static extern void vector_uint8_t_reserve(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vector_uint8_t__SWIG_0")]
  public static extern global::System.IntPtr new_vector_uint8_t__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vector_uint8_t__SWIG_1")]
  public static extern global::System.IntPtr new_vector_uint8_t__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vector_uint8_t__SWIG_2")]
  public static extern global::System.IntPtr new_vector_uint8_t__SWIG_2(int jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint8_t_getitemcopy")]
  public static extern byte vector_uint8_t_getitemcopy(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint8_t_getitem")]
  public static extern byte vector_uint8_t_getitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint8_t_setitem")]
  public static extern void vector_uint8_t_setitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, byte jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint8_t_AddRange")]
  public static extern void vector_uint8_t_AddRange(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint8_t_GetRange")]
  public static extern global::System.IntPtr vector_uint8_t_GetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint8_t_Insert")]
  public static extern void vector_uint8_t_Insert(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, byte jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint8_t_InsertRange")]
  public static extern void vector_uint8_t_InsertRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint8_t_RemoveAt")]
  public static extern void vector_uint8_t_RemoveAt(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint8_t_RemoveRange")]
  public static extern void vector_uint8_t_RemoveRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint8_t_Repeat")]
  public static extern global::System.IntPtr vector_uint8_t_Repeat(byte jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint8_t_Reverse__SWIG_0")]
  public static extern void vector_uint8_t_Reverse__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint8_t_Reverse__SWIG_1")]
  public static extern void vector_uint8_t_Reverse__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint8_t_SetRange")]
  public static extern void vector_uint8_t_SetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint8_t_Contains")]
  public static extern bool vector_uint8_t_Contains(global::System.Runtime.InteropServices.HandleRef jarg1, byte jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint8_t_IndexOf")]
  public static extern int vector_uint8_t_IndexOf(global::System.Runtime.InteropServices.HandleRef jarg1, byte jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint8_t_LastIndexOf")]
  public static extern int vector_uint8_t_LastIndexOf(global::System.Runtime.InteropServices.HandleRef jarg1, byte jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint8_t_Remove")]
  public static extern bool vector_uint8_t_Remove(global::System.Runtime.InteropServices.HandleRef jarg1, byte jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_vector_uint8_t")]
  public static extern void delete_vector_uint8_t(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint64_t_Clear")]
  public static extern void vector_uint64_t_Clear(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint64_t_Add")]
  public static extern void vector_uint64_t_Add(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint64_t_size")]
  public static extern uint vector_uint64_t_size(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint64_t_capacity")]
  public static extern uint vector_uint64_t_capacity(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint64_t_reserve")]
  public static extern void vector_uint64_t_reserve(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vector_uint64_t__SWIG_0")]
  public static extern global::System.IntPtr new_vector_uint64_t__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vector_uint64_t__SWIG_1")]
  public static extern global::System.IntPtr new_vector_uint64_t__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vector_uint64_t__SWIG_2")]
  public static extern global::System.IntPtr new_vector_uint64_t__SWIG_2(int jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint64_t_getitemcopy")]
  public static extern uint vector_uint64_t_getitemcopy(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint64_t_getitem")]
  public static extern uint vector_uint64_t_getitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint64_t_setitem")]
  public static extern void vector_uint64_t_setitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, uint jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint64_t_AddRange")]
  public static extern void vector_uint64_t_AddRange(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint64_t_GetRange")]
  public static extern global::System.IntPtr vector_uint64_t_GetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint64_t_Insert")]
  public static extern void vector_uint64_t_Insert(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, uint jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint64_t_InsertRange")]
  public static extern void vector_uint64_t_InsertRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint64_t_RemoveAt")]
  public static extern void vector_uint64_t_RemoveAt(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint64_t_RemoveRange")]
  public static extern void vector_uint64_t_RemoveRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint64_t_Repeat")]
  public static extern global::System.IntPtr vector_uint64_t_Repeat(uint jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint64_t_Reverse__SWIG_0")]
  public static extern void vector_uint64_t_Reverse__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint64_t_Reverse__SWIG_1")]
  public static extern void vector_uint64_t_Reverse__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint64_t_SetRange")]
  public static extern void vector_uint64_t_SetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint64_t_Contains")]
  public static extern bool vector_uint64_t_Contains(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint64_t_IndexOf")]
  public static extern int vector_uint64_t_IndexOf(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint64_t_LastIndexOf")]
  public static extern int vector_uint64_t_LastIndexOf(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_uint64_t_Remove")]
  public static extern bool vector_uint64_t_Remove(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_vector_uint64_t")]
  public static extern void delete_vector_uint64_t(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_map_strstr__SWIG_0")]
  public static extern global::System.IntPtr new_map_strstr__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_map_strstr__SWIG_1")]
  public static extern global::System.IntPtr new_map_strstr__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_strstr_size")]
  public static extern uint map_strstr_size(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_strstr_empty")]
  public static extern bool map_strstr_empty(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_strstr_Clear")]
  public static extern void map_strstr_Clear(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_strstr_getitem")]
  public static extern string map_strstr_getitem(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_strstr_setitem")]
  public static extern void map_strstr_setitem(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_strstr_ContainsKey")]
  public static extern bool map_strstr_ContainsKey(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_strstr_Add")]
  public static extern void map_strstr_Add(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_strstr_Remove")]
  public static extern bool map_strstr_Remove(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_strstr_create_iterator_begin")]
  public static extern global::System.IntPtr map_strstr_create_iterator_begin(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_strstr_get_next_key")]
  public static extern string map_strstr_get_next_key(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.IntPtr jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_strstr_destroy_iterator")]
  public static extern void map_strstr_destroy_iterator(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.IntPtr jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_map_strstr")]
  public static extern void delete_map_strstr(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_GetRRDataTypeString")]
  public static extern string GetRRDataTypeString(int jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_IsTypeRRArray")]
  public static extern bool IsTypeRRArray(int jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_IsTypeNumeric")]
  public static extern bool IsTypeNumeric(int jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_RRObject")]
  public static extern void delete_RRObject(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_RRValue")]
  public static extern void delete_RRValue(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementData_GetTypeString")]
  public static extern string MessageElementData_GetTypeString(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementData_GetTypeID")]
  public static extern int MessageElementData_GetTypeID(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_MessageElementData")]
  public static extern void delete_MessageElementData(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRBaseArray_GetTypeString")]
  public static extern string RRBaseArray_GetTypeString(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRBaseArray_size")]
  public static extern uint RRBaseArray_size(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRBaseArray_void_ptr")]
  public static extern global::System.IntPtr RRBaseArray_void_ptr(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRBaseArray_ElementSize")]
  public static extern uint RRBaseArray_ElementSize(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRBaseArray_GetTypeID")]
  public static extern int RRBaseArray_GetTypeID(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_RRBaseArray")]
  public static extern void delete_RRBaseArray(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AllocateRRArrayByType")]
  public static extern global::System.IntPtr AllocateRRArrayByType(int jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRMultiDimArrayUntyped_Dims_set")]
  public static extern void RRMultiDimArrayUntyped_Dims_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRMultiDimArrayUntyped_Dims_get")]
  public static extern global::System.IntPtr RRMultiDimArrayUntyped_Dims_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRMultiDimArrayUntyped_Array_set")]
  public static extern void RRMultiDimArrayUntyped_Array_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRMultiDimArrayUntyped_Array_get")]
  public static extern global::System.IntPtr RRMultiDimArrayUntyped_Array_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_RRMultiDimArrayUntyped")]
  public static extern global::System.IntPtr new_RRMultiDimArrayUntyped();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_RRMultiDimArrayUntyped")]
  public static extern void delete_RRMultiDimArrayUntyped(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_ServicePathSegment__SWIG_0")]
  public static extern global::System.IntPtr new_ServicePathSegment__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_ServicePathSegment__SWIG_1")]
  public static extern global::System.IntPtr new_ServicePathSegment__SWIG_1(string jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_ServicePathSegment__SWIG_2")]
  public static extern global::System.IntPtr new_ServicePathSegment__SWIG_2(string jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServicePathSegment_name_set")]
  public static extern void ServicePathSegment_name_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServicePathSegment_name_get")]
  public static extern string ServicePathSegment_name_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServicePathSegment_index_set")]
  public static extern void ServicePathSegment_index_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServicePathSegment_index_get")]
  public static extern global::System.IntPtr ServicePathSegment_index_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_ServicePathSegment")]
  public static extern void delete_ServicePathSegment(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServicePathSegments_Clear")]
  public static extern void ServicePathSegments_Clear(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServicePathSegments_Add")]
  public static extern void ServicePathSegments_Add(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServicePathSegments_size")]
  public static extern uint ServicePathSegments_size(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServicePathSegments_capacity")]
  public static extern uint ServicePathSegments_capacity(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServicePathSegments_reserve")]
  public static extern void ServicePathSegments_reserve(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_ServicePathSegments__SWIG_0")]
  public static extern global::System.IntPtr new_ServicePathSegments__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_ServicePathSegments__SWIG_1")]
  public static extern global::System.IntPtr new_ServicePathSegments__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_ServicePathSegments__SWIG_2")]
  public static extern global::System.IntPtr new_ServicePathSegments__SWIG_2(int jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServicePathSegments_getitemcopy")]
  public static extern global::System.IntPtr ServicePathSegments_getitemcopy(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServicePathSegments_getitem")]
  public static extern global::System.IntPtr ServicePathSegments_getitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServicePathSegments_setitem")]
  public static extern void ServicePathSegments_setitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServicePathSegments_AddRange")]
  public static extern void ServicePathSegments_AddRange(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServicePathSegments_GetRange")]
  public static extern global::System.IntPtr ServicePathSegments_GetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServicePathSegments_Insert")]
  public static extern void ServicePathSegments_Insert(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServicePathSegments_InsertRange")]
  public static extern void ServicePathSegments_InsertRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServicePathSegments_RemoveAt")]
  public static extern void ServicePathSegments_RemoveAt(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServicePathSegments_RemoveRange")]
  public static extern void ServicePathSegments_RemoveRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServicePathSegments_Repeat")]
  public static extern global::System.IntPtr ServicePathSegments_Repeat(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServicePathSegments_Reverse__SWIG_0")]
  public static extern void ServicePathSegments_Reverse__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServicePathSegments_Reverse__SWIG_1")]
  public static extern void ServicePathSegments_Reverse__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServicePathSegments_SetRange")]
  public static extern void ServicePathSegments_SetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_ServicePathSegments")]
  public static extern void delete_ServicePathSegments(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_EncodeServicePathIndex")]
  public static extern string EncodeServicePathIndex(string jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_DecodeServicePathIndex")]
  public static extern string DecodeServicePathIndex(string jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ParseServicePath")]
  public static extern global::System.IntPtr ParseServicePath(string jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_BuildServicePath")]
  public static extern string BuildServicePath(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_IsStringName")]
  public static extern bool IsStringName(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_IsStringScopedName")]
  public static extern bool IsStringScopedName(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_IsStringUUID")]
  public static extern bool IsStringUUID(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_IsStringIdentifier")]
  public static extern bool IsStringIdentifier(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MultiDimArray_CalculateCopyIndicesIter_Next")]
  public static extern bool MultiDimArray_CalculateCopyIndicesIter_Next(global::System.Runtime.InteropServices.HandleRef jarg1, out uint jarg2, out uint jarg3, out uint jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_MultiDimArray_CalculateCopyIndicesIter")]
  public static extern void delete_MultiDimArray_CalculateCopyIndicesIter(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MultiDimArray_CalculateCopyIndicesBeginIter")]
  public static extern global::System.IntPtr MultiDimArray_CalculateCopyIndicesBeginIter(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, global::System.Runtime.InteropServices.HandleRef jarg4, global::System.Runtime.InteropServices.HandleRef jarg5);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_typedefinition_Clear")]
  public static extern void vectorptr_typedefinition_Clear(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_typedefinition_Add")]
  public static extern void vectorptr_typedefinition_Add(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_typedefinition_size")]
  public static extern uint vectorptr_typedefinition_size(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_typedefinition_capacity")]
  public static extern uint vectorptr_typedefinition_capacity(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_typedefinition_reserve")]
  public static extern void vectorptr_typedefinition_reserve(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorptr_typedefinition__SWIG_0")]
  public static extern global::System.IntPtr new_vectorptr_typedefinition__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorptr_typedefinition__SWIG_1")]
  public static extern global::System.IntPtr new_vectorptr_typedefinition__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorptr_typedefinition__SWIG_2")]
  public static extern global::System.IntPtr new_vectorptr_typedefinition__SWIG_2(int jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_typedefinition_getitemcopy")]
  public static extern global::System.IntPtr vectorptr_typedefinition_getitemcopy(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_typedefinition_getitem")]
  public static extern global::System.IntPtr vectorptr_typedefinition_getitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_typedefinition_setitem")]
  public static extern void vectorptr_typedefinition_setitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_typedefinition_AddRange")]
  public static extern void vectorptr_typedefinition_AddRange(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_typedefinition_GetRange")]
  public static extern global::System.IntPtr vectorptr_typedefinition_GetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_typedefinition_Insert")]
  public static extern void vectorptr_typedefinition_Insert(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_typedefinition_InsertRange")]
  public static extern void vectorptr_typedefinition_InsertRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_typedefinition_RemoveAt")]
  public static extern void vectorptr_typedefinition_RemoveAt(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_typedefinition_RemoveRange")]
  public static extern void vectorptr_typedefinition_RemoveRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_typedefinition_Repeat")]
  public static extern global::System.IntPtr vectorptr_typedefinition_Repeat(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_typedefinition_Reverse__SWIG_0")]
  public static extern void vectorptr_typedefinition_Reverse__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_typedefinition_Reverse__SWIG_1")]
  public static extern void vectorptr_typedefinition_Reverse__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_typedefinition_SetRange")]
  public static extern void vectorptr_typedefinition_SetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_vectorptr_typedefinition")]
  public static extern void delete_vectorptr_typedefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_memberdefinition_Clear")]
  public static extern void vectorptr_memberdefinition_Clear(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_memberdefinition_Add")]
  public static extern void vectorptr_memberdefinition_Add(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_memberdefinition_size")]
  public static extern uint vectorptr_memberdefinition_size(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_memberdefinition_capacity")]
  public static extern uint vectorptr_memberdefinition_capacity(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_memberdefinition_reserve")]
  public static extern void vectorptr_memberdefinition_reserve(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorptr_memberdefinition__SWIG_0")]
  public static extern global::System.IntPtr new_vectorptr_memberdefinition__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorptr_memberdefinition__SWIG_1")]
  public static extern global::System.IntPtr new_vectorptr_memberdefinition__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorptr_memberdefinition__SWIG_2")]
  public static extern global::System.IntPtr new_vectorptr_memberdefinition__SWIG_2(int jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_memberdefinition__getitemcopy")]
  public static extern global::System.IntPtr vectorptr_memberdefinition__getitemcopy(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_memberdefinition__getitem")]
  public static extern global::System.IntPtr vectorptr_memberdefinition__getitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_memberdefinition_setitem")]
  public static extern void vectorptr_memberdefinition_setitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_memberdefinition_AddRange")]
  public static extern void vectorptr_memberdefinition_AddRange(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_memberdefinition_GetRange")]
  public static extern global::System.IntPtr vectorptr_memberdefinition_GetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_memberdefinition_Insert")]
  public static extern void vectorptr_memberdefinition_Insert(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_memberdefinition_InsertRange")]
  public static extern void vectorptr_memberdefinition_InsertRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_memberdefinition_RemoveAt")]
  public static extern void vectorptr_memberdefinition_RemoveAt(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_memberdefinition_RemoveRange")]
  public static extern void vectorptr_memberdefinition_RemoveRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_memberdefinition_Repeat")]
  public static extern global::System.IntPtr vectorptr_memberdefinition_Repeat(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_memberdefinition_Reverse__SWIG_0")]
  public static extern void vectorptr_memberdefinition_Reverse__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_memberdefinition_Reverse__SWIG_1")]
  public static extern void vectorptr_memberdefinition_Reverse__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_memberdefinition_SetRange")]
  public static extern void vectorptr_memberdefinition_SetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_vectorptr_memberdefinition")]
  public static extern void delete_vectorptr_memberdefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_serviceentrydefinition_Clear")]
  public static extern void vectorptr_serviceentrydefinition_Clear(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_serviceentrydefinition_Add")]
  public static extern void vectorptr_serviceentrydefinition_Add(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_serviceentrydefinition_size")]
  public static extern uint vectorptr_serviceentrydefinition_size(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_serviceentrydefinition_capacity")]
  public static extern uint vectorptr_serviceentrydefinition_capacity(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_serviceentrydefinition_reserve")]
  public static extern void vectorptr_serviceentrydefinition_reserve(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorptr_serviceentrydefinition__SWIG_0")]
  public static extern global::System.IntPtr new_vectorptr_serviceentrydefinition__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorptr_serviceentrydefinition__SWIG_1")]
  public static extern global::System.IntPtr new_vectorptr_serviceentrydefinition__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorptr_serviceentrydefinition__SWIG_2")]
  public static extern global::System.IntPtr new_vectorptr_serviceentrydefinition__SWIG_2(int jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_serviceentrydefinition_getitemcopy")]
  public static extern global::System.IntPtr vectorptr_serviceentrydefinition_getitemcopy(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_serviceentrydefinition_getitem")]
  public static extern global::System.IntPtr vectorptr_serviceentrydefinition_getitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_serviceentrydefinition_setitem")]
  public static extern void vectorptr_serviceentrydefinition_setitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_serviceentrydefinition_AddRange")]
  public static extern void vectorptr_serviceentrydefinition_AddRange(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_serviceentrydefinition_GetRange")]
  public static extern global::System.IntPtr vectorptr_serviceentrydefinition_GetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_serviceentrydefinition_Insert")]
  public static extern void vectorptr_serviceentrydefinition_Insert(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_serviceentrydefinition_InsertRange")]
  public static extern void vectorptr_serviceentrydefinition_InsertRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_serviceentrydefinition_RemoveAt")]
  public static extern void vectorptr_serviceentrydefinition_RemoveAt(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_serviceentrydefinition_RemoveRange")]
  public static extern void vectorptr_serviceentrydefinition_RemoveRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_serviceentrydefinition_Repeat")]
  public static extern global::System.IntPtr vectorptr_serviceentrydefinition_Repeat(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_serviceentrydefinition_Reverse__SWIG_0")]
  public static extern void vectorptr_serviceentrydefinition_Reverse__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_serviceentrydefinition_Reverse__SWIG_1")]
  public static extern void vectorptr_serviceentrydefinition_Reverse__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_serviceentrydefinition_SetRange")]
  public static extern void vectorptr_serviceentrydefinition_SetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_vectorptr_serviceentrydefinition")]
  public static extern void delete_vectorptr_serviceentrydefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_constantdefinition_Clear")]
  public static extern void vectorptr_constantdefinition_Clear(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_constantdefinition_Add")]
  public static extern void vectorptr_constantdefinition_Add(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_constantdefinition_size")]
  public static extern uint vectorptr_constantdefinition_size(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_constantdefinition_capacity")]
  public static extern uint vectorptr_constantdefinition_capacity(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_constantdefinition_reserve")]
  public static extern void vectorptr_constantdefinition_reserve(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorptr_constantdefinition__SWIG_0")]
  public static extern global::System.IntPtr new_vectorptr_constantdefinition__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorptr_constantdefinition__SWIG_1")]
  public static extern global::System.IntPtr new_vectorptr_constantdefinition__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorptr_constantdefinition__SWIG_2")]
  public static extern global::System.IntPtr new_vectorptr_constantdefinition__SWIG_2(int jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_constantdefinition_getitemcopy")]
  public static extern global::System.IntPtr vectorptr_constantdefinition_getitemcopy(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_constantdefinition_getitem")]
  public static extern global::System.IntPtr vectorptr_constantdefinition_getitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_constantdefinition_setitem")]
  public static extern void vectorptr_constantdefinition_setitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_constantdefinition_AddRange")]
  public static extern void vectorptr_constantdefinition_AddRange(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_constantdefinition_GetRange")]
  public static extern global::System.IntPtr vectorptr_constantdefinition_GetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_constantdefinition_Insert")]
  public static extern void vectorptr_constantdefinition_Insert(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_constantdefinition_InsertRange")]
  public static extern void vectorptr_constantdefinition_InsertRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_constantdefinition_RemoveAt")]
  public static extern void vectorptr_constantdefinition_RemoveAt(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_constantdefinition_RemoveRange")]
  public static extern void vectorptr_constantdefinition_RemoveRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_constantdefinition_Repeat")]
  public static extern global::System.IntPtr vectorptr_constantdefinition_Repeat(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_constantdefinition_Reverse__SWIG_0")]
  public static extern void vectorptr_constantdefinition_Reverse__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_constantdefinition_Reverse__SWIG_1")]
  public static extern void vectorptr_constantdefinition_Reverse__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_constantdefinition_SetRange")]
  public static extern void vectorptr_constantdefinition_SetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_vectorptr_constantdefinition")]
  public static extern void delete_vectorptr_constantdefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_enumdefinition_Clear")]
  public static extern void vectorptr_enumdefinition_Clear(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_enumdefinition_Add")]
  public static extern void vectorptr_enumdefinition_Add(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_enumdefinition_size")]
  public static extern uint vectorptr_enumdefinition_size(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_enumdefinition_capacity")]
  public static extern uint vectorptr_enumdefinition_capacity(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_enumdefinition_reserve")]
  public static extern void vectorptr_enumdefinition_reserve(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorptr_enumdefinition__SWIG_0")]
  public static extern global::System.IntPtr new_vectorptr_enumdefinition__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorptr_enumdefinition__SWIG_1")]
  public static extern global::System.IntPtr new_vectorptr_enumdefinition__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorptr_enumdefinition__SWIG_2")]
  public static extern global::System.IntPtr new_vectorptr_enumdefinition__SWIG_2(int jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_enumdefinition_getitemcopy")]
  public static extern global::System.IntPtr vectorptr_enumdefinition_getitemcopy(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_enumdefinition_getitem")]
  public static extern global::System.IntPtr vectorptr_enumdefinition_getitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_enumdefinition_setitem")]
  public static extern void vectorptr_enumdefinition_setitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_enumdefinition_AddRange")]
  public static extern void vectorptr_enumdefinition_AddRange(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_enumdefinition_GetRange")]
  public static extern global::System.IntPtr vectorptr_enumdefinition_GetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_enumdefinition_Insert")]
  public static extern void vectorptr_enumdefinition_Insert(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_enumdefinition_InsertRange")]
  public static extern void vectorptr_enumdefinition_InsertRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_enumdefinition_RemoveAt")]
  public static extern void vectorptr_enumdefinition_RemoveAt(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_enumdefinition_RemoveRange")]
  public static extern void vectorptr_enumdefinition_RemoveRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_enumdefinition_Repeat")]
  public static extern global::System.IntPtr vectorptr_enumdefinition_Repeat(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_enumdefinition_Reverse__SWIG_0")]
  public static extern void vectorptr_enumdefinition_Reverse__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_enumdefinition_Reverse__SWIG_1")]
  public static extern void vectorptr_enumdefinition_Reverse__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_enumdefinition_SetRange")]
  public static extern void vectorptr_enumdefinition_SetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_vectorptr_enumdefinition")]
  public static extern void delete_vectorptr_enumdefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_constantdefinition_structfield_Clear")]
  public static extern void vector_constantdefinition_structfield_Clear(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_constantdefinition_structfield_Add")]
  public static extern void vector_constantdefinition_structfield_Add(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_constantdefinition_structfield_size")]
  public static extern uint vector_constantdefinition_structfield_size(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_constantdefinition_structfield_capacity")]
  public static extern uint vector_constantdefinition_structfield_capacity(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_constantdefinition_structfield_reserve")]
  public static extern void vector_constantdefinition_structfield_reserve(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vector_constantdefinition_structfield__SWIG_0")]
  public static extern global::System.IntPtr new_vector_constantdefinition_structfield__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vector_constantdefinition_structfield__SWIG_1")]
  public static extern global::System.IntPtr new_vector_constantdefinition_structfield__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vector_constantdefinition_structfield__SWIG_2")]
  public static extern global::System.IntPtr new_vector_constantdefinition_structfield__SWIG_2(int jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_constantdefinition_structfield_getitemcopy")]
  public static extern global::System.IntPtr vector_constantdefinition_structfield_getitemcopy(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_constantdefinition_structfield_getitem")]
  public static extern global::System.IntPtr vector_constantdefinition_structfield_getitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_constantdefinition_structfield_setitem")]
  public static extern void vector_constantdefinition_structfield_setitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_constantdefinition_structfield_AddRange")]
  public static extern void vector_constantdefinition_structfield_AddRange(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_constantdefinition_structfield_GetRange")]
  public static extern global::System.IntPtr vector_constantdefinition_structfield_GetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_constantdefinition_structfield_Insert")]
  public static extern void vector_constantdefinition_structfield_Insert(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_constantdefinition_structfield_InsertRange")]
  public static extern void vector_constantdefinition_structfield_InsertRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_constantdefinition_structfield_RemoveAt")]
  public static extern void vector_constantdefinition_structfield_RemoveAt(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_constantdefinition_structfield_RemoveRange")]
  public static extern void vector_constantdefinition_structfield_RemoveRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_constantdefinition_structfield_Repeat")]
  public static extern global::System.IntPtr vector_constantdefinition_structfield_Repeat(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_constantdefinition_structfield_Reverse__SWIG_0")]
  public static extern void vector_constantdefinition_structfield_Reverse__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_constantdefinition_structfield_Reverse__SWIG_1")]
  public static extern void vector_constantdefinition_structfield_Reverse__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_constantdefinition_structfield_SetRange")]
  public static extern void vector_constantdefinition_structfield_SetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_vector_constantdefinition_structfield")]
  public static extern void delete_vector_constantdefinition_structfield(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_enumdefinitionvalues_Clear")]
  public static extern void vector_enumdefinitionvalues_Clear(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_enumdefinitionvalues_Add")]
  public static extern void vector_enumdefinitionvalues_Add(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_enumdefinitionvalues_size")]
  public static extern uint vector_enumdefinitionvalues_size(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_enumdefinitionvalues_capacity")]
  public static extern uint vector_enumdefinitionvalues_capacity(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_enumdefinitionvalues_reserve")]
  public static extern void vector_enumdefinitionvalues_reserve(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vector_enumdefinitionvalues__SWIG_0")]
  public static extern global::System.IntPtr new_vector_enumdefinitionvalues__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vector_enumdefinitionvalues__SWIG_1")]
  public static extern global::System.IntPtr new_vector_enumdefinitionvalues__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vector_enumdefinitionvalues__SWIG_2")]
  public static extern global::System.IntPtr new_vector_enumdefinitionvalues__SWIG_2(int jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_enumdefinitionvalues_getitemcopy")]
  public static extern global::System.IntPtr vector_enumdefinitionvalues_getitemcopy(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_enumdefinitionvalues_getitem")]
  public static extern global::System.IntPtr vector_enumdefinitionvalues_getitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_enumdefinitionvalues_setitem")]
  public static extern void vector_enumdefinitionvalues_setitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_enumdefinitionvalues_AddRange")]
  public static extern void vector_enumdefinitionvalues_AddRange(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_enumdefinitionvalues_GetRange")]
  public static extern global::System.IntPtr vector_enumdefinitionvalues_GetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_enumdefinitionvalues_Insert")]
  public static extern void vector_enumdefinitionvalues_Insert(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_enumdefinitionvalues_InsertRange")]
  public static extern void vector_enumdefinitionvalues_InsertRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_enumdefinitionvalues_RemoveAt")]
  public static extern void vector_enumdefinitionvalues_RemoveAt(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_enumdefinitionvalues_RemoveRange")]
  public static extern void vector_enumdefinitionvalues_RemoveRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_enumdefinitionvalues_Repeat")]
  public static extern global::System.IntPtr vector_enumdefinitionvalues_Repeat(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_enumdefinitionvalues_Reverse__SWIG_0")]
  public static extern void vector_enumdefinitionvalues_Reverse__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_enumdefinitionvalues_Reverse__SWIG_1")]
  public static extern void vector_enumdefinitionvalues_Reverse__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_enumdefinitionvalues_SetRange")]
  public static extern void vector_enumdefinitionvalues_SetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_vector_enumdefinitionvalues")]
  public static extern void delete_vector_enumdefinitionvalues(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_usingdefinition_Clear")]
  public static extern void vector_usingdefinition_Clear(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_usingdefinition_Add")]
  public static extern void vector_usingdefinition_Add(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_usingdefinition_size")]
  public static extern uint vector_usingdefinition_size(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_usingdefinition_capacity")]
  public static extern uint vector_usingdefinition_capacity(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_usingdefinition_reserve")]
  public static extern void vector_usingdefinition_reserve(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vector_usingdefinition__SWIG_0")]
  public static extern global::System.IntPtr new_vector_usingdefinition__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vector_usingdefinition__SWIG_1")]
  public static extern global::System.IntPtr new_vector_usingdefinition__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vector_usingdefinition__SWIG_2")]
  public static extern global::System.IntPtr new_vector_usingdefinition__SWIG_2(int jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_usingdefinition_getitemcopy")]
  public static extern global::System.IntPtr vector_usingdefinition_getitemcopy(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_usingdefinition_getitem")]
  public static extern global::System.IntPtr vector_usingdefinition_getitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_usingdefinition_setitem")]
  public static extern void vector_usingdefinition_setitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_usingdefinition_AddRange")]
  public static extern void vector_usingdefinition_AddRange(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_usingdefinition_GetRange")]
  public static extern global::System.IntPtr vector_usingdefinition_GetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_usingdefinition_Insert")]
  public static extern void vector_usingdefinition_Insert(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_usingdefinition_InsertRange")]
  public static extern void vector_usingdefinition_InsertRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_usingdefinition_RemoveAt")]
  public static extern void vector_usingdefinition_RemoveAt(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_usingdefinition_RemoveRange")]
  public static extern void vector_usingdefinition_RemoveRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_usingdefinition_Repeat")]
  public static extern global::System.IntPtr vector_usingdefinition_Repeat(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_usingdefinition_Reverse__SWIG_0")]
  public static extern void vector_usingdefinition_Reverse__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_usingdefinition_Reverse__SWIG_1")]
  public static extern void vector_usingdefinition_Reverse__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_usingdefinition_SetRange")]
  public static extern void vector_usingdefinition_SetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_vector_usingdefinition")]
  public static extern void delete_vector_usingdefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_exceptiondefinition_Clear")]
  public static extern void vectorptr_exceptiondefinition_Clear(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_exceptiondefinition_Add")]
  public static extern void vectorptr_exceptiondefinition_Add(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_exceptiondefinition_size")]
  public static extern uint vectorptr_exceptiondefinition_size(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_exceptiondefinition_capacity")]
  public static extern uint vectorptr_exceptiondefinition_capacity(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_exceptiondefinition_reserve")]
  public static extern void vectorptr_exceptiondefinition_reserve(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorptr_exceptiondefinition__SWIG_0")]
  public static extern global::System.IntPtr new_vectorptr_exceptiondefinition__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorptr_exceptiondefinition__SWIG_1")]
  public static extern global::System.IntPtr new_vectorptr_exceptiondefinition__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorptr_exceptiondefinition__SWIG_2")]
  public static extern global::System.IntPtr new_vectorptr_exceptiondefinition__SWIG_2(int jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_exceptiondefinition_getitemcopy")]
  public static extern global::System.IntPtr vectorptr_exceptiondefinition_getitemcopy(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_exceptiondefinition_getitem")]
  public static extern global::System.IntPtr vectorptr_exceptiondefinition_getitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_exceptiondefinition_setitem")]
  public static extern void vectorptr_exceptiondefinition_setitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_exceptiondefinition_AddRange")]
  public static extern void vectorptr_exceptiondefinition_AddRange(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_exceptiondefinition_GetRange")]
  public static extern global::System.IntPtr vectorptr_exceptiondefinition_GetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_exceptiondefinition_Insert")]
  public static extern void vectorptr_exceptiondefinition_Insert(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_exceptiondefinition_InsertRange")]
  public static extern void vectorptr_exceptiondefinition_InsertRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_exceptiondefinition_RemoveAt")]
  public static extern void vectorptr_exceptiondefinition_RemoveAt(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_exceptiondefinition_RemoveRange")]
  public static extern void vectorptr_exceptiondefinition_RemoveRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_exceptiondefinition_Repeat")]
  public static extern global::System.IntPtr vectorptr_exceptiondefinition_Repeat(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_exceptiondefinition_Reverse__SWIG_0")]
  public static extern void vectorptr_exceptiondefinition_Reverse__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_exceptiondefinition_Reverse__SWIG_1")]
  public static extern void vectorptr_exceptiondefinition_Reverse__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_exceptiondefinition_SetRange")]
  public static extern void vectorptr_exceptiondefinition_SetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_vectorptr_exceptiondefinition")]
  public static extern void delete_vectorptr_exceptiondefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_servicedefinition_Clear")]
  public static extern void vectorptr_servicedefinition_Clear(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_servicedefinition_Add")]
  public static extern void vectorptr_servicedefinition_Add(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_servicedefinition_size")]
  public static extern uint vectorptr_servicedefinition_size(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_servicedefinition_capacity")]
  public static extern uint vectorptr_servicedefinition_capacity(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_servicedefinition_reserve")]
  public static extern void vectorptr_servicedefinition_reserve(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorptr_servicedefinition__SWIG_0")]
  public static extern global::System.IntPtr new_vectorptr_servicedefinition__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorptr_servicedefinition__SWIG_1")]
  public static extern global::System.IntPtr new_vectorptr_servicedefinition__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorptr_servicedefinition__SWIG_2")]
  public static extern global::System.IntPtr new_vectorptr_servicedefinition__SWIG_2(int jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_servicedefinition_getitemcopy")]
  public static extern global::System.IntPtr vectorptr_servicedefinition_getitemcopy(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_servicedefinition_getitem")]
  public static extern global::System.IntPtr vectorptr_servicedefinition_getitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_servicedefinition_setitem")]
  public static extern void vectorptr_servicedefinition_setitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_servicedefinition_AddRange")]
  public static extern void vectorptr_servicedefinition_AddRange(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_servicedefinition_GetRange")]
  public static extern global::System.IntPtr vectorptr_servicedefinition_GetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_servicedefinition_Insert")]
  public static extern void vectorptr_servicedefinition_Insert(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_servicedefinition_InsertRange")]
  public static extern void vectorptr_servicedefinition_InsertRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_servicedefinition_RemoveAt")]
  public static extern void vectorptr_servicedefinition_RemoveAt(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_servicedefinition_RemoveRange")]
  public static extern void vectorptr_servicedefinition_RemoveRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_servicedefinition_Repeat")]
  public static extern global::System.IntPtr vectorptr_servicedefinition_Repeat(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_servicedefinition_Reverse__SWIG_0")]
  public static extern void vectorptr_servicedefinition_Reverse__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_servicedefinition_Reverse__SWIG_1")]
  public static extern void vectorptr_servicedefinition_Reverse__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_servicedefinition_SetRange")]
  public static extern void vectorptr_servicedefinition_SetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_vectorptr_servicedefinition")]
  public static extern void delete_vectorptr_servicedefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinitionParseInfo_ServiceName_set")]
  public static extern void ServiceDefinitionParseInfo_ServiceName_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinitionParseInfo_ServiceName_get")]
  public static extern string ServiceDefinitionParseInfo_ServiceName_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinitionParseInfo_RobDefFilePath_set")]
  public static extern void ServiceDefinitionParseInfo_RobDefFilePath_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinitionParseInfo_RobDefFilePath_get")]
  public static extern string ServiceDefinitionParseInfo_RobDefFilePath_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinitionParseInfo_Line_set")]
  public static extern void ServiceDefinitionParseInfo_Line_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinitionParseInfo_Line_get")]
  public static extern string ServiceDefinitionParseInfo_Line_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinitionParseInfo_LineNumber_set")]
  public static extern void ServiceDefinitionParseInfo_LineNumber_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinitionParseInfo_LineNumber_get")]
  public static extern int ServiceDefinitionParseInfo_LineNumber_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_ServiceDefinitionParseInfo")]
  public static extern global::System.IntPtr new_ServiceDefinitionParseInfo();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinitionParseInfo_Reset")]
  public static extern void ServiceDefinitionParseInfo_Reset(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_ServiceDefinitionParseInfo")]
  public static extern void delete_ServiceDefinitionParseInfo(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_RobotRaconteurVersion__SWIG_0")]
  public static extern global::System.IntPtr new_RobotRaconteurVersion__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_RobotRaconteurVersion__SWIG_1")]
  public static extern global::System.IntPtr new_RobotRaconteurVersion__SWIG_1(uint jarg1, uint jarg2, uint jarg3, uint jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_RobotRaconteurVersion__SWIG_2")]
  public static extern global::System.IntPtr new_RobotRaconteurVersion__SWIG_2(uint jarg1, uint jarg2, uint jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_RobotRaconteurVersion__SWIG_3")]
  public static extern global::System.IntPtr new_RobotRaconteurVersion__SWIG_3(uint jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_RobotRaconteurVersion__SWIG_4")]
  public static extern global::System.IntPtr new_RobotRaconteurVersion__SWIG_4(string jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurVersion_ToString")]
  public static extern string RobotRaconteurVersion_ToString(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurVersion_FromString__SWIG_0")]
  public static extern void RobotRaconteurVersion_FromString__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurVersion_FromString__SWIG_1")]
  public static extern void RobotRaconteurVersion_FromString__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurVersion_major_set")]
  public static extern void RobotRaconteurVersion_major_set(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurVersion_major_get")]
  public static extern uint RobotRaconteurVersion_major_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurVersion_minor_set")]
  public static extern void RobotRaconteurVersion_minor_set(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurVersion_minor_get")]
  public static extern uint RobotRaconteurVersion_minor_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurVersion_patch_set")]
  public static extern void RobotRaconteurVersion_patch_set(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurVersion_patch_get")]
  public static extern uint RobotRaconteurVersion_patch_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurVersion_tweak_set")]
  public static extern void RobotRaconteurVersion_tweak_set(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurVersion_tweak_get")]
  public static extern uint RobotRaconteurVersion_tweak_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurVersion_ParseInfo_set")]
  public static extern void RobotRaconteurVersion_ParseInfo_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurVersion_ParseInfo_get")]
  public static extern global::System.IntPtr RobotRaconteurVersion_ParseInfo_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_RobotRaconteurVersion")]
  public static extern void delete_RobotRaconteurVersion(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurVersion_eq")]
  public static extern bool RobotRaconteurVersion_eq(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurVersion_ne")]
  public static extern bool RobotRaconteurVersion_ne(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurVersion_gt")]
  public static extern bool RobotRaconteurVersion_gt(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurVersion_ge")]
  public static extern bool RobotRaconteurVersion_ge(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurVersion_lt")]
  public static extern bool RobotRaconteurVersion_lt(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurVersion_le")]
  public static extern bool RobotRaconteurVersion_le(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinition_Name_set")]
  public static extern void ServiceDefinition_Name_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinition_Name_get")]
  public static extern string ServiceDefinition_Name_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinition_NamedArrays_set")]
  public static extern void ServiceDefinition_NamedArrays_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinition_NamedArrays_get")]
  public static extern global::System.IntPtr ServiceDefinition_NamedArrays_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinition_Pods_set")]
  public static extern void ServiceDefinition_Pods_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinition_Pods_get")]
  public static extern global::System.IntPtr ServiceDefinition_Pods_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinition_Structures_set")]
  public static extern void ServiceDefinition_Structures_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinition_Structures_get")]
  public static extern global::System.IntPtr ServiceDefinition_Structures_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinition_Objects_set")]
  public static extern void ServiceDefinition_Objects_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinition_Objects_get")]
  public static extern global::System.IntPtr ServiceDefinition_Objects_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinition_Options_set")]
  public static extern void ServiceDefinition_Options_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinition_Options_get")]
  public static extern global::System.IntPtr ServiceDefinition_Options_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinition_Imports_set")]
  public static extern void ServiceDefinition_Imports_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinition_Imports_get")]
  public static extern global::System.IntPtr ServiceDefinition_Imports_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinition_Exceptions_set")]
  public static extern void ServiceDefinition_Exceptions_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinition_Exceptions_get")]
  public static extern global::System.IntPtr ServiceDefinition_Exceptions_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinition_Using_set")]
  public static extern void ServiceDefinition_Using_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinition_Using_get")]
  public static extern global::System.IntPtr ServiceDefinition_Using_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinition_Constants_set")]
  public static extern void ServiceDefinition_Constants_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinition_Constants_get")]
  public static extern global::System.IntPtr ServiceDefinition_Constants_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinition_Enums_set")]
  public static extern void ServiceDefinition_Enums_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinition_Enums_get")]
  public static extern global::System.IntPtr ServiceDefinition_Enums_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinition_StdVer_set")]
  public static extern void ServiceDefinition_StdVer_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinition_StdVer_get")]
  public static extern global::System.IntPtr ServiceDefinition_StdVer_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinition_ParseInfo_set")]
  public static extern void ServiceDefinition_ParseInfo_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinition_ParseInfo_get")]
  public static extern global::System.IntPtr ServiceDefinition_ParseInfo_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinition_DocString_set")]
  public static extern void ServiceDefinition_DocString_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinition_DocString_get")]
  public static extern string ServiceDefinition_DocString_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinition_ToString")]
  public static extern string ServiceDefinition_ToString(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinition_FromString__SWIG_0")]
  public static extern void ServiceDefinition_FromString__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinition_FromString__SWIG_1")]
  public static extern void ServiceDefinition_FromString__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_ServiceDefinition")]
  public static extern global::System.IntPtr new_ServiceDefinition();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceDefinition_Reset")]
  public static extern void ServiceDefinition_Reset(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_ServiceDefinition")]
  public static extern void delete_ServiceDefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceEntryDefinition_Name_set")]
  public static extern void ServiceEntryDefinition_Name_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceEntryDefinition_Name_get")]
  public static extern string ServiceEntryDefinition_Name_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceEntryDefinition_Members_set")]
  public static extern void ServiceEntryDefinition_Members_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceEntryDefinition_Members_get")]
  public static extern global::System.IntPtr ServiceEntryDefinition_Members_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceEntryDefinition_EntryType_set")]
  public static extern void ServiceEntryDefinition_EntryType_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceEntryDefinition_EntryType_get")]
  public static extern int ServiceEntryDefinition_EntryType_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceEntryDefinition_Implements_set")]
  public static extern void ServiceEntryDefinition_Implements_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceEntryDefinition_Implements_get")]
  public static extern global::System.IntPtr ServiceEntryDefinition_Implements_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceEntryDefinition_Options_set")]
  public static extern void ServiceEntryDefinition_Options_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceEntryDefinition_Options_get")]
  public static extern global::System.IntPtr ServiceEntryDefinition_Options_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceEntryDefinition_Constants_set")]
  public static extern void ServiceEntryDefinition_Constants_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceEntryDefinition_Constants_get")]
  public static extern global::System.IntPtr ServiceEntryDefinition_Constants_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceEntryDefinition_ParseInfo_set")]
  public static extern void ServiceEntryDefinition_ParseInfo_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceEntryDefinition_ParseInfo_get")]
  public static extern global::System.IntPtr ServiceEntryDefinition_ParseInfo_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceEntryDefinition_DocString_set")]
  public static extern void ServiceEntryDefinition_DocString_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceEntryDefinition_DocString_get")]
  public static extern string ServiceEntryDefinition_DocString_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_ServiceEntryDefinition")]
  public static extern global::System.IntPtr new_ServiceEntryDefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceEntryDefinition_ToString")]
  public static extern string ServiceEntryDefinition_ToString(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceEntryDefinition_FromString__SWIG_0")]
  public static extern void ServiceEntryDefinition_FromString__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceEntryDefinition_FromString__SWIG_1")]
  public static extern void ServiceEntryDefinition_FromString__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceEntryDefinition_GetServiceDefinition")]
  public static extern global::System.IntPtr ServiceEntryDefinition_GetServiceDefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceEntryDefinition_SetServiceDefinition")]
  public static extern void ServiceEntryDefinition_SetServiceDefinition(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceEntryDefinition_Reset")]
  public static extern void ServiceEntryDefinition_Reset(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_ServiceEntryDefinition")]
  public static extern void delete_ServiceEntryDefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MemberDefinition_Name_set")]
  public static extern void MemberDefinition_Name_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MemberDefinition_Name_get")]
  public static extern string MemberDefinition_Name_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MemberDefinition_DocString_set")]
  public static extern void MemberDefinition_DocString_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MemberDefinition_DocString_get")]
  public static extern string MemberDefinition_DocString_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_MemberDefinition")]
  public static extern global::System.IntPtr new_MemberDefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MemberDefinition_NoLock")]
  public static extern int MemberDefinition_NoLock(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MemberDefinition_ToString")]
  public static extern string MemberDefinition_ToString(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MemberDefinition_GetServiceEntry")]
  public static extern global::System.IntPtr MemberDefinition_GetServiceEntry(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MemberDefinition_SetServiceEntry")]
  public static extern void MemberDefinition_SetServiceEntry(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MemberDefinition_Modifiers_set")]
  public static extern void MemberDefinition_Modifiers_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MemberDefinition_Modifiers_get")]
  public static extern global::System.IntPtr MemberDefinition_Modifiers_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MemberDefinition_ParseInfo_set")]
  public static extern void MemberDefinition_ParseInfo_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MemberDefinition_ParseInfo_get")]
  public static extern global::System.IntPtr MemberDefinition_ParseInfo_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MemberDefinition_Reset")]
  public static extern void MemberDefinition_Reset(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_MemberDefinition")]
  public static extern void delete_MemberDefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_PropertyDefinition_Type_set")]
  public static extern void PropertyDefinition_Type_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_PropertyDefinition_Type_get")]
  public static extern global::System.IntPtr PropertyDefinition_Type_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_PropertyDefinition")]
  public static extern global::System.IntPtr new_PropertyDefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_PropertyDefinition_ToString__SWIG_0")]
  public static extern string PropertyDefinition_ToString__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_PropertyDefinition_ToString__SWIG_1")]
  public static extern string PropertyDefinition_ToString__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_PropertyDefinition_FromString__SWIG_0")]
  public static extern void PropertyDefinition_FromString__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_PropertyDefinition_FromString__SWIG_1")]
  public static extern void PropertyDefinition_FromString__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_PropertyDefinition")]
  public static extern void delete_PropertyDefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_FunctionDefinition_ReturnType_set")]
  public static extern void FunctionDefinition_ReturnType_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_FunctionDefinition_ReturnType_get")]
  public static extern global::System.IntPtr FunctionDefinition_ReturnType_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_FunctionDefinition_Parameters_set")]
  public static extern void FunctionDefinition_Parameters_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_FunctionDefinition_Parameters_get")]
  public static extern global::System.IntPtr FunctionDefinition_Parameters_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_FunctionDefinition")]
  public static extern global::System.IntPtr new_FunctionDefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_FunctionDefinition_ToString")]
  public static extern string FunctionDefinition_ToString(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_FunctionDefinition_FromString__SWIG_0")]
  public static extern void FunctionDefinition_FromString__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_FunctionDefinition_FromString__SWIG_1")]
  public static extern void FunctionDefinition_FromString__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_FunctionDefinition_IsGenerator")]
  public static extern bool FunctionDefinition_IsGenerator(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_FunctionDefinition")]
  public static extern void delete_FunctionDefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_EventDefinition_Parameters_set")]
  public static extern void EventDefinition_Parameters_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_EventDefinition_Parameters_get")]
  public static extern global::System.IntPtr EventDefinition_Parameters_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_EventDefinition")]
  public static extern global::System.IntPtr new_EventDefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_EventDefinition_ToString")]
  public static extern string EventDefinition_ToString(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_EventDefinition_FromString__SWIG_0")]
  public static extern void EventDefinition_FromString__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_EventDefinition_FromString__SWIG_1")]
  public static extern void EventDefinition_FromString__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_EventDefinition")]
  public static extern void delete_EventDefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ObjRefDefinition_ObjectType_set")]
  public static extern void ObjRefDefinition_ObjectType_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ObjRefDefinition_ObjectType_get")]
  public static extern string ObjRefDefinition_ObjectType_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ObjRefDefinition_ArrayType_set")]
  public static extern void ObjRefDefinition_ArrayType_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ObjRefDefinition_ArrayType_get")]
  public static extern int ObjRefDefinition_ArrayType_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ObjRefDefinition_ContainerType_set")]
  public static extern void ObjRefDefinition_ContainerType_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ObjRefDefinition_ContainerType_get")]
  public static extern int ObjRefDefinition_ContainerType_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_ObjRefDefinition")]
  public static extern global::System.IntPtr new_ObjRefDefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ObjRefDefinition_ToString")]
  public static extern string ObjRefDefinition_ToString(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ObjRefDefinition_FromString__SWIG_0")]
  public static extern void ObjRefDefinition_FromString__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ObjRefDefinition_FromString__SWIG_1")]
  public static extern void ObjRefDefinition_FromString__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_ObjRefDefinition")]
  public static extern void delete_ObjRefDefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_PipeDefinition_Type_set")]
  public static extern void PipeDefinition_Type_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_PipeDefinition_Type_get")]
  public static extern global::System.IntPtr PipeDefinition_Type_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_PipeDefinition")]
  public static extern global::System.IntPtr new_PipeDefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_PipeDefinition_ToString")]
  public static extern string PipeDefinition_ToString(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_PipeDefinition_FromString__SWIG_0")]
  public static extern void PipeDefinition_FromString__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_PipeDefinition_FromString__SWIG_1")]
  public static extern void PipeDefinition_FromString__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_PipeDefinition")]
  public static extern void delete_PipeDefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_CallbackDefinition_ReturnType_set")]
  public static extern void CallbackDefinition_ReturnType_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_CallbackDefinition_ReturnType_get")]
  public static extern global::System.IntPtr CallbackDefinition_ReturnType_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_CallbackDefinition_Parameters_set")]
  public static extern void CallbackDefinition_Parameters_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_CallbackDefinition_Parameters_get")]
  public static extern global::System.IntPtr CallbackDefinition_Parameters_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_CallbackDefinition")]
  public static extern global::System.IntPtr new_CallbackDefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_CallbackDefinition_ToString")]
  public static extern string CallbackDefinition_ToString(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_CallbackDefinition_FromString__SWIG_0")]
  public static extern void CallbackDefinition_FromString__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_CallbackDefinition_FromString__SWIG_1")]
  public static extern void CallbackDefinition_FromString__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_CallbackDefinition")]
  public static extern void delete_CallbackDefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WireDefinition_Type_set")]
  public static extern void WireDefinition_Type_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WireDefinition_Type_get")]
  public static extern global::System.IntPtr WireDefinition_Type_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WireDefinition")]
  public static extern global::System.IntPtr new_WireDefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WireDefinition_ToString")]
  public static extern string WireDefinition_ToString(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WireDefinition_FromString__SWIG_0")]
  public static extern void WireDefinition_FromString__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WireDefinition_FromString__SWIG_1")]
  public static extern void WireDefinition_FromString__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WireDefinition")]
  public static extern void delete_WireDefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MemoryDefinition_Type_set")]
  public static extern void MemoryDefinition_Type_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MemoryDefinition_Type_get")]
  public static extern global::System.IntPtr MemoryDefinition_Type_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_MemoryDefinition")]
  public static extern global::System.IntPtr new_MemoryDefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MemoryDefinition_ToString")]
  public static extern string MemoryDefinition_ToString(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MemoryDefinition_FromString__SWIG_0")]
  public static extern void MemoryDefinition_FromString__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MemoryDefinition_FromString__SWIG_1")]
  public static extern void MemoryDefinition_FromString__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_MemoryDefinition")]
  public static extern void delete_MemoryDefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TypeDefinition_Name_set")]
  public static extern void TypeDefinition_Name_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TypeDefinition_Name_get")]
  public static extern string TypeDefinition_Name_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TypeDefinition_Type_set")]
  public static extern void TypeDefinition_Type_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TypeDefinition_Type_get")]
  public static extern int TypeDefinition_Type_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TypeDefinition_TypeString_set")]
  public static extern void TypeDefinition_TypeString_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TypeDefinition_TypeString_get")]
  public static extern string TypeDefinition_TypeString_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TypeDefinition_ArrayType_set")]
  public static extern void TypeDefinition_ArrayType_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TypeDefinition_ArrayType_get")]
  public static extern int TypeDefinition_ArrayType_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TypeDefinition_ArrayVarLength_set")]
  public static extern void TypeDefinition_ArrayVarLength_set(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TypeDefinition_ArrayVarLength_get")]
  public static extern bool TypeDefinition_ArrayVarLength_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TypeDefinition_ArrayLength_set")]
  public static extern void TypeDefinition_ArrayLength_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TypeDefinition_ArrayLength_get")]
  public static extern global::System.IntPtr TypeDefinition_ArrayLength_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TypeDefinition_ContainerType_set")]
  public static extern void TypeDefinition_ContainerType_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TypeDefinition_ContainerType_get")]
  public static extern int TypeDefinition_ContainerType_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_TypeDefinition__SWIG_0")]
  public static extern global::System.IntPtr new_TypeDefinition__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TypeDefinition_ToString")]
  public static extern string TypeDefinition_ToString(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TypeDefinition_FromString__SWIG_0")]
  public static extern void TypeDefinition_FromString__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TypeDefinition_FromString__SWIG_1")]
  public static extern void TypeDefinition_FromString__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TypeDefinition_DataTypeFromString")]
  public static extern int TypeDefinition_DataTypeFromString(string jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TypeDefinition_StringFromDataType")]
  public static extern string TypeDefinition_StringFromDataType(int jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TypeDefinition__GetMember")]
  public static extern global::System.IntPtr TypeDefinition__GetMember(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TypeDefinition__SetMember")]
  public static extern void TypeDefinition__SetMember(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TypeDefinition_CopyTo")]
  public static extern void TypeDefinition_CopyTo(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TypeDefinition_Clone")]
  public static extern global::System.IntPtr TypeDefinition_Clone(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TypeDefinition_Rename")]
  public static extern void TypeDefinition_Rename(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TypeDefinition_RemoveContainers")]
  public static extern void TypeDefinition_RemoveContainers(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TypeDefinition_RemoveArray")]
  public static extern void TypeDefinition_RemoveArray(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TypeDefinition_QualifyTypeStringWithUsing")]
  public static extern void TypeDefinition_QualifyTypeStringWithUsing(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TypeDefinition_UnqualifyTypeStringWithUsing")]
  public static extern void TypeDefinition_UnqualifyTypeStringWithUsing(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TypeDefinition_Reset")]
  public static extern void TypeDefinition_Reset(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_TypeDefinition__SWIG_1")]
  public static extern global::System.IntPtr new_TypeDefinition__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_TypeDefinition")]
  public static extern void delete_TypeDefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_UsingDefinition")]
  public static extern void delete_UsingDefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_UsingDefinition_QualifiedName_set")]
  public static extern void UsingDefinition_QualifiedName_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_UsingDefinition_QualifiedName_get")]
  public static extern string UsingDefinition_QualifiedName_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_UsingDefinition_UnqualifiedName_set")]
  public static extern void UsingDefinition_UnqualifiedName_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_UsingDefinition_UnqualifiedName_get")]
  public static extern string UsingDefinition_UnqualifiedName_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_UsingDefinition_ParseInfo_set")]
  public static extern void UsingDefinition_ParseInfo_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_UsingDefinition_ParseInfo_get")]
  public static extern global::System.IntPtr UsingDefinition_ParseInfo_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_UsingDefinition__GetService")]
  public static extern global::System.IntPtr UsingDefinition__GetService(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_UsingDefinition__SetService")]
  public static extern void UsingDefinition__SetService(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_UsingDefinition")]
  public static extern global::System.IntPtr new_UsingDefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_UsingDefinition_ToString")]
  public static extern string UsingDefinition_ToString(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_UsingDefinition_FromString__SWIG_0")]
  public static extern void UsingDefinition_FromString__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_UsingDefinition_FromString__SWIG_1")]
  public static extern void UsingDefinition_FromString__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ConstantDefinition_StructField_Name_set")]
  public static extern void ConstantDefinition_StructField_Name_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ConstantDefinition_StructField_Name_get")]
  public static extern string ConstantDefinition_StructField_Name_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ConstantDefinition_StructField_ConstantRefName_set")]
  public static extern void ConstantDefinition_StructField_ConstantRefName_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ConstantDefinition_StructField_ConstantRefName_get")]
  public static extern string ConstantDefinition_StructField_ConstantRefName_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_ConstantDefinition_StructField")]
  public static extern global::System.IntPtr new_ConstantDefinition_StructField();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_ConstantDefinition_StructField")]
  public static extern void delete_ConstantDefinition_StructField(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_ConstantDefinition")]
  public static extern void delete_ConstantDefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ConstantDefinition_Name_set")]
  public static extern void ConstantDefinition_Name_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ConstantDefinition_Name_get")]
  public static extern string ConstantDefinition_Name_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ConstantDefinition_DocString_set")]
  public static extern void ConstantDefinition_DocString_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ConstantDefinition_DocString_get")]
  public static extern string ConstantDefinition_DocString_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ConstantDefinition_Type_set")]
  public static extern void ConstantDefinition_Type_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ConstantDefinition_Type_get")]
  public static extern global::System.IntPtr ConstantDefinition_Type_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ConstantDefinition_Value_set")]
  public static extern void ConstantDefinition_Value_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ConstantDefinition_Value_get")]
  public static extern string ConstantDefinition_Value_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ConstantDefinition_ParseInfo_set")]
  public static extern void ConstantDefinition_ParseInfo_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ConstantDefinition_ParseInfo_get")]
  public static extern global::System.IntPtr ConstantDefinition_ParseInfo_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ConstantDefinition__GetService")]
  public static extern global::System.IntPtr ConstantDefinition__GetService(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ConstantDefinition__SetService")]
  public static extern void ConstantDefinition__SetService(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ConstantDefinition__GetServiceEntry")]
  public static extern global::System.IntPtr ConstantDefinition__GetServiceEntry(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ConstantDefinition__SetServiceEntry")]
  public static extern void ConstantDefinition__SetServiceEntry(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_ConstantDefinition__SWIG_0")]
  public static extern global::System.IntPtr new_ConstantDefinition__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_ConstantDefinition__SWIG_1")]
  public static extern global::System.IntPtr new_ConstantDefinition__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ConstantDefinition_ToString")]
  public static extern string ConstantDefinition_ToString(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ConstantDefinition_FromString__SWIG_0")]
  public static extern void ConstantDefinition_FromString__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ConstantDefinition_FromString__SWIG_1")]
  public static extern void ConstantDefinition_FromString__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ConstantDefinition_Reset")]
  public static extern void ConstantDefinition_Reset(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ConstantDefinition_VerifyValue")]
  public static extern bool ConstantDefinition_VerifyValue(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ConstantDefinition_ValueToString")]
  public static extern string ConstantDefinition_ValueToString(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ConstantDefinition_ValueToStructFields")]
  public static extern global::System.IntPtr ConstantDefinition_ValueToStructFields(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ConstantDefinition_UnescapeString")]
  public static extern string ConstantDefinition_UnescapeString(string jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ConstantDefinition_EscapeString")]
  public static extern string ConstantDefinition_EscapeString(string jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_EnumDefinition")]
  public static extern void delete_EnumDefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_EnumDefinition_Name_set")]
  public static extern void EnumDefinition_Name_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_EnumDefinition_Name_get")]
  public static extern string EnumDefinition_Name_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_EnumDefinition_DocString_set")]
  public static extern void EnumDefinition_DocString_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_EnumDefinition_DocString_get")]
  public static extern string EnumDefinition_DocString_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_EnumDefinition_Values_set")]
  public static extern void EnumDefinition_Values_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_EnumDefinition_Values_get")]
  public static extern global::System.IntPtr EnumDefinition_Values_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_EnumDefinition_ParseInfo_set")]
  public static extern void EnumDefinition_ParseInfo_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_EnumDefinition_ParseInfo_get")]
  public static extern global::System.IntPtr EnumDefinition_ParseInfo_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_EnumDefinition__GetService")]
  public static extern global::System.IntPtr EnumDefinition__GetService(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_EnumDefinition__SetService")]
  public static extern void EnumDefinition__SetService(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_EnumDefinition")]
  public static extern global::System.IntPtr new_EnumDefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_EnumDefinition_ToString")]
  public static extern string EnumDefinition_ToString(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_EnumDefinition_FromString__SWIG_0")]
  public static extern void EnumDefinition_FromString__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_EnumDefinition_FromString__SWIG_1")]
  public static extern void EnumDefinition_FromString__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_EnumDefinition_VerifyValues")]
  public static extern bool EnumDefinition_VerifyValues(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_EnumDefinition_Reset")]
  public static extern void EnumDefinition_Reset(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_EnumDefinitionValue")]
  public static extern global::System.IntPtr new_EnumDefinitionValue();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_EnumDefinitionValue_Name_set")]
  public static extern void EnumDefinitionValue_Name_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_EnumDefinitionValue_Name_get")]
  public static extern string EnumDefinitionValue_Name_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_EnumDefinitionValue_DocString_set")]
  public static extern void EnumDefinitionValue_DocString_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_EnumDefinitionValue_DocString_get")]
  public static extern string EnumDefinitionValue_DocString_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_EnumDefinitionValue_Value_set")]
  public static extern void EnumDefinitionValue_Value_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_EnumDefinitionValue_Value_get")]
  public static extern int EnumDefinitionValue_Value_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_EnumDefinitionValue_ImplicitValue_set")]
  public static extern void EnumDefinitionValue_ImplicitValue_set(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_EnumDefinitionValue_ImplicitValue_get")]
  public static extern bool EnumDefinitionValue_ImplicitValue_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_EnumDefinitionValue_HexValue_set")]
  public static extern void EnumDefinitionValue_HexValue_set(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_EnumDefinitionValue_HexValue_get")]
  public static extern bool EnumDefinitionValue_HexValue_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_EnumDefinitionValue")]
  public static extern void delete_EnumDefinitionValue(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_ExceptionDefinition")]
  public static extern void delete_ExceptionDefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ExceptionDefinition_Name_set")]
  public static extern void ExceptionDefinition_Name_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ExceptionDefinition_Name_get")]
  public static extern string ExceptionDefinition_Name_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ExceptionDefinition_DocString_set")]
  public static extern void ExceptionDefinition_DocString_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ExceptionDefinition_DocString_get")]
  public static extern string ExceptionDefinition_DocString_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ExceptionDefinition_ParseInfo_set")]
  public static extern void ExceptionDefinition_ParseInfo_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ExceptionDefinition_ParseInfo_get")]
  public static extern global::System.IntPtr ExceptionDefinition_ParseInfo_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ExceptionDefinition__GetService")]
  public static extern global::System.IntPtr ExceptionDefinition__GetService(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ExceptionDefinition__SetService")]
  public static extern void ExceptionDefinition__SetService(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_ExceptionDefinition")]
  public static extern global::System.IntPtr new_ExceptionDefinition(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ExceptionDefinition_ToString")]
  public static extern string ExceptionDefinition_ToString(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ExceptionDefinition_FromString__SWIG_0")]
  public static extern void ExceptionDefinition_FromString__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ExceptionDefinition_FromString__SWIG_1")]
  public static extern void ExceptionDefinition_FromString__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ExceptionDefinition_Reset")]
  public static extern void ExceptionDefinition_Reset(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MemberDefinitionUtil_ToProperty")]
  public static extern global::System.IntPtr MemberDefinitionUtil_ToProperty(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MemberDefinitionUtil_ToFunction")]
  public static extern global::System.IntPtr MemberDefinitionUtil_ToFunction(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MemberDefinitionUtil_ToObjRef")]
  public static extern global::System.IntPtr MemberDefinitionUtil_ToObjRef(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MemberDefinitionUtil_ToEvent")]
  public static extern global::System.IntPtr MemberDefinitionUtil_ToEvent(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MemberDefinitionUtil_ToPipe")]
  public static extern global::System.IntPtr MemberDefinitionUtil_ToPipe(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MemberDefinitionUtil_ToCallback")]
  public static extern global::System.IntPtr MemberDefinitionUtil_ToCallback(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MemberDefinitionUtil_ToWire")]
  public static extern global::System.IntPtr MemberDefinitionUtil_ToWire(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MemberDefinitionUtil_ToMemory")]
  public static extern global::System.IntPtr MemberDefinitionUtil_ToMemory(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_MemberDefinitionUtil")]
  public static extern global::System.IntPtr new_MemberDefinitionUtil();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_MemberDefinitionUtil")]
  public static extern void delete_MemberDefinitionUtil(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_NodeID__SWIG_0")]
  public static extern global::System.IntPtr new_NodeID__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeID_ToString__SWIG_0")]
  public static extern string NodeID_ToString__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeID_ToString__SWIG_1")]
  public static extern string NodeID_ToString__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeID_NewUniqueID")]
  public static extern global::System.IntPtr NodeID_NewUniqueID();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeID_eq")]
  public static extern bool NodeID_eq(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeID_ne")]
  public static extern bool NodeID_ne(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeID_lt")]
  public static extern bool NodeID_lt(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeID_IsAnyNode")]
  public static extern bool NodeID_IsAnyNode(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeID_GetAny")]
  public static extern global::System.IntPtr NodeID_GetAny();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_NodeID__SWIG_1")]
  public static extern global::System.IntPtr new_NodeID__SWIG_1(string jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_NodeID__SWIG_2")]
  public static extern global::System.IntPtr new_NodeID__SWIG_2(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_NodeID__SWIG_3")]
  public static extern global::System.IntPtr new_NodeID__SWIG_3([global::System.Runtime.InteropServices.In, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]byte[] jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeID_ToByteArrayC")]
  public static extern void NodeID_ToByteArrayC(global::System.Runtime.InteropServices.HandleRef jarg1, [global::System.Runtime.InteropServices.Out, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]byte[] jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_NodeID")]
  public static extern void delete_NodeID(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_messageentry_Clear")]
  public static extern void vectorptr_messageentry_Clear(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_messageentry_Add")]
  public static extern void vectorptr_messageentry_Add(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_messageentry_size")]
  public static extern uint vectorptr_messageentry_size(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_messageentry_capacity")]
  public static extern uint vectorptr_messageentry_capacity(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_messageentry_reserve")]
  public static extern void vectorptr_messageentry_reserve(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorptr_messageentry__SWIG_0")]
  public static extern global::System.IntPtr new_vectorptr_messageentry__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorptr_messageentry__SWIG_1")]
  public static extern global::System.IntPtr new_vectorptr_messageentry__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorptr_messageentry__SWIG_2")]
  public static extern global::System.IntPtr new_vectorptr_messageentry__SWIG_2(int jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_messageentry_getitemcopy")]
  public static extern global::System.IntPtr vectorptr_messageentry_getitemcopy(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_messageentry_getitem")]
  public static extern global::System.IntPtr vectorptr_messageentry_getitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_messageentry_setitem")]
  public static extern void vectorptr_messageentry_setitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_messageentry_AddRange")]
  public static extern void vectorptr_messageentry_AddRange(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_messageentry_GetRange")]
  public static extern global::System.IntPtr vectorptr_messageentry_GetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_messageentry_Insert")]
  public static extern void vectorptr_messageentry_Insert(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_messageentry_InsertRange")]
  public static extern void vectorptr_messageentry_InsertRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_messageentry_RemoveAt")]
  public static extern void vectorptr_messageentry_RemoveAt(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_messageentry_RemoveRange")]
  public static extern void vectorptr_messageentry_RemoveRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_messageentry_Repeat")]
  public static extern global::System.IntPtr vectorptr_messageentry_Repeat(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_messageentry_Reverse__SWIG_0")]
  public static extern void vectorptr_messageentry_Reverse__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_messageentry_Reverse__SWIG_1")]
  public static extern void vectorptr_messageentry_Reverse__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_messageentry_SetRange")]
  public static extern void vectorptr_messageentry_SetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_vectorptr_messageentry")]
  public static extern void delete_vectorptr_messageentry(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_messageelement_Clear")]
  public static extern void vectorptr_messageelement_Clear(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_messageelement_Add")]
  public static extern void vectorptr_messageelement_Add(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_messageelement_size")]
  public static extern uint vectorptr_messageelement_size(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_messageelement_capacity")]
  public static extern uint vectorptr_messageelement_capacity(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_messageelement_reserve")]
  public static extern void vectorptr_messageelement_reserve(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorptr_messageelement__SWIG_0")]
  public static extern global::System.IntPtr new_vectorptr_messageelement__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorptr_messageelement__SWIG_1")]
  public static extern global::System.IntPtr new_vectorptr_messageelement__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorptr_messageelement__SWIG_2")]
  public static extern global::System.IntPtr new_vectorptr_messageelement__SWIG_2(int jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_messageelement_getitemcopy")]
  public static extern global::System.IntPtr vectorptr_messageelement_getitemcopy(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_messageelement_getitem")]
  public static extern global::System.IntPtr vectorptr_messageelement_getitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_messageelement_setitem")]
  public static extern void vectorptr_messageelement_setitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_messageelement_AddRange")]
  public static extern void vectorptr_messageelement_AddRange(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_messageelement_GetRange")]
  public static extern global::System.IntPtr vectorptr_messageelement_GetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_messageelement_Insert")]
  public static extern void vectorptr_messageelement_Insert(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_messageelement_InsertRange")]
  public static extern void vectorptr_messageelement_InsertRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_messageelement_RemoveAt")]
  public static extern void vectorptr_messageelement_RemoveAt(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_messageelement_RemoveRange")]
  public static extern void vectorptr_messageelement_RemoveRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_messageelement_Repeat")]
  public static extern global::System.IntPtr vectorptr_messageelement_Repeat(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_messageelement_Reverse__SWIG_0")]
  public static extern void vectorptr_messageelement_Reverse__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_messageelement_Reverse__SWIG_1")]
  public static extern void vectorptr_messageelement_Reverse__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_messageelement_SetRange")]
  public static extern void vectorptr_messageelement_SetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_vectorptr_messageelement")]
  public static extern void delete_vectorptr_messageelement(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_Message_header_set")]
  public static extern void Message_header_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_Message_header_get")]
  public static extern global::System.IntPtr Message_header_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_Message_entries_set")]
  public static extern void Message_entries_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_Message_entries_get")]
  public static extern global::System.IntPtr Message_entries_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_Message")]
  public static extern global::System.IntPtr new_Message();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_Message_ComputeSize")]
  public static extern uint Message_ComputeSize(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_Message_FindEntry")]
  public static extern global::System.IntPtr Message_FindEntry(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_Message_AddEntry")]
  public static extern global::System.IntPtr Message_AddEntry(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, string jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_Message")]
  public static extern void delete_Message(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageHeader_HeaderSize_set")]
  public static extern void MessageHeader_HeaderSize_set(global::System.Runtime.InteropServices.HandleRef jarg1, ushort jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageHeader_HeaderSize_get")]
  public static extern ushort MessageHeader_HeaderSize_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageHeader_MessageFlags_set")]
  public static extern void MessageHeader_MessageFlags_set(global::System.Runtime.InteropServices.HandleRef jarg1, byte jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageHeader_MessageFlags_get")]
  public static extern byte MessageHeader_MessageFlags_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageHeader_SenderEndpoint_set")]
  public static extern void MessageHeader_SenderEndpoint_set(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageHeader_SenderEndpoint_get")]
  public static extern uint MessageHeader_SenderEndpoint_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageHeader_ReceiverEndpoint_set")]
  public static extern void MessageHeader_ReceiverEndpoint_set(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageHeader_ReceiverEndpoint_get")]
  public static extern uint MessageHeader_ReceiverEndpoint_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageHeader_SenderNodeName_set")]
  public static extern void MessageHeader_SenderNodeName_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageHeader_SenderNodeName_get")]
  public static extern string MessageHeader_SenderNodeName_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageHeader_ReceiverNodeName_set")]
  public static extern void MessageHeader_ReceiverNodeName_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageHeader_ReceiverNodeName_get")]
  public static extern string MessageHeader_ReceiverNodeName_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageHeader_SenderNodeID_set")]
  public static extern void MessageHeader_SenderNodeID_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageHeader_SenderNodeID_get")]
  public static extern global::System.IntPtr MessageHeader_SenderNodeID_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageHeader_ReceiverNodeID_set")]
  public static extern void MessageHeader_ReceiverNodeID_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageHeader_ReceiverNodeID_get")]
  public static extern global::System.IntPtr MessageHeader_ReceiverNodeID_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageHeader_MetaData_set")]
  public static extern void MessageHeader_MetaData_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageHeader_MetaData_get")]
  public static extern string MessageHeader_MetaData_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageHeader_EntryCount_set")]
  public static extern void MessageHeader_EntryCount_set(global::System.Runtime.InteropServices.HandleRef jarg1, ushort jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageHeader_EntryCount_get")]
  public static extern ushort MessageHeader_EntryCount_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageHeader_MessageID_set")]
  public static extern void MessageHeader_MessageID_set(global::System.Runtime.InteropServices.HandleRef jarg1, ushort jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageHeader_MessageID_get")]
  public static extern ushort MessageHeader_MessageID_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageHeader_MessageResID_set")]
  public static extern void MessageHeader_MessageResID_set(global::System.Runtime.InteropServices.HandleRef jarg1, ushort jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageHeader_MessageResID_get")]
  public static extern ushort MessageHeader_MessageResID_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageHeader_MessageSize_set")]
  public static extern void MessageHeader_MessageSize_set(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageHeader_MessageSize_get")]
  public static extern uint MessageHeader_MessageSize_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageHeader_Priority_set")]
  public static extern void MessageHeader_Priority_set(global::System.Runtime.InteropServices.HandleRef jarg1, ushort jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageHeader_Priority_get")]
  public static extern ushort MessageHeader_Priority_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageHeader_Extended_set")]
  public static extern void MessageHeader_Extended_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageHeader_Extended_get")]
  public static extern global::System.IntPtr MessageHeader_Extended_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageHeader_ComputeSize")]
  public static extern ushort MessageHeader_ComputeSize(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageHeader_UpdateHeader")]
  public static extern void MessageHeader_UpdateHeader(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2, ushort jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_MessageHeader")]
  public static extern global::System.IntPtr new_MessageHeader();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_MessageHeader")]
  public static extern void delete_MessageHeader(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageEntry_EntrySize_set")]
  public static extern void MessageEntry_EntrySize_set(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageEntry_EntrySize_get")]
  public static extern uint MessageEntry_EntrySize_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageEntry_EntryFlags_set")]
  public static extern void MessageEntry_EntryFlags_set(global::System.Runtime.InteropServices.HandleRef jarg1, byte jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageEntry_EntryFlags_get")]
  public static extern byte MessageEntry_EntryFlags_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageEntry_EntryType_set")]
  public static extern void MessageEntry_EntryType_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageEntry_EntryType_get")]
  public static extern int MessageEntry_EntryType_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageEntry_ServicePath_set")]
  public static extern void MessageEntry_ServicePath_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageEntry_ServicePath_get")]
  public static extern string MessageEntry_ServicePath_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageEntry_MemberName_set")]
  public static extern void MessageEntry_MemberName_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageEntry_MemberName_get")]
  public static extern string MessageEntry_MemberName_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageEntry_MemberNameCode_set")]
  public static extern void MessageEntry_MemberNameCode_set(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageEntry_MemberNameCode_get")]
  public static extern uint MessageEntry_MemberNameCode_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageEntry_RequestID_set")]
  public static extern void MessageEntry_RequestID_set(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageEntry_RequestID_get")]
  public static extern uint MessageEntry_RequestID_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageEntry_Error_set")]
  public static extern void MessageEntry_Error_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageEntry_Error_get")]
  public static extern int MessageEntry_Error_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageEntry_MetaData_set")]
  public static extern void MessageEntry_MetaData_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageEntry_MetaData_get")]
  public static extern string MessageEntry_MetaData_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageEntry_Extended_set")]
  public static extern void MessageEntry_Extended_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageEntry_Extended_get")]
  public static extern global::System.IntPtr MessageEntry_Extended_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageEntry_elements_set")]
  public static extern void MessageEntry_elements_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageEntry_elements_get")]
  public static extern global::System.IntPtr MessageEntry_elements_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_MessageEntry__SWIG_0")]
  public static extern global::System.IntPtr new_MessageEntry__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_MessageEntry__SWIG_1")]
  public static extern global::System.IntPtr new_MessageEntry__SWIG_1(int jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageEntry_ComputeSize")]
  public static extern uint MessageEntry_ComputeSize(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageEntry_FindElement")]
  public static extern global::System.IntPtr MessageEntry_FindElement(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageEntry_AddElement")]
  public static extern global::System.IntPtr MessageEntry_AddElement(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_MessageEntry")]
  public static extern void delete_MessageEntry(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElement_ElementSize_set")]
  public static extern void MessageElement_ElementSize_set(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElement_ElementSize_get")]
  public static extern uint MessageElement_ElementSize_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElement_ElementFlags_set")]
  public static extern void MessageElement_ElementFlags_set(global::System.Runtime.InteropServices.HandleRef jarg1, byte jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElement_ElementFlags_get")]
  public static extern byte MessageElement_ElementFlags_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElement_ElementName_set")]
  public static extern void MessageElement_ElementName_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElement_ElementName_get")]
  public static extern string MessageElement_ElementName_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElement_ElementNameCode_set")]
  public static extern void MessageElement_ElementNameCode_set(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElement_ElementNameCode_get")]
  public static extern uint MessageElement_ElementNameCode_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElement_ElementNumber_set")]
  public static extern void MessageElement_ElementNumber_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElement_ElementNumber_get")]
  public static extern int MessageElement_ElementNumber_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElement_ElementType_set")]
  public static extern void MessageElement_ElementType_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElement_ElementType_get")]
  public static extern int MessageElement_ElementType_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElement_ElementTypeName_set")]
  public static extern void MessageElement_ElementTypeName_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElement_ElementTypeName_get")]
  public static extern string MessageElement_ElementTypeName_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElement_ElementTypeNameCode_set")]
  public static extern void MessageElement_ElementTypeNameCode_set(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElement_ElementTypeNameCode_get")]
  public static extern uint MessageElement_ElementTypeNameCode_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElement_MetaData_set")]
  public static extern void MessageElement_MetaData_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElement_MetaData_get")]
  public static extern string MessageElement_MetaData_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElement_Extended_set")]
  public static extern void MessageElement_Extended_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElement_Extended_get")]
  public static extern global::System.IntPtr MessageElement_Extended_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElement_DataCount_set")]
  public static extern void MessageElement_DataCount_set(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElement_DataCount_get")]
  public static extern uint MessageElement_DataCount_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_MessageElement")]
  public static extern global::System.IntPtr new_MessageElement();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElement__GetData")]
  public static extern global::System.IntPtr MessageElement__GetData(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElement__SetData")]
  public static extern void MessageElement__SetData(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElement_ComputeSize")]
  public static extern uint MessageElement_ComputeSize(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElement_UpdateData")]
  public static extern void MessageElement_UpdateData(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElement_FindElement")]
  public static extern global::System.IntPtr MessageElement_FindElement(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElement_ContainsElement")]
  public static extern bool MessageElement_ContainsElement(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_MessageElement")]
  public static extern void delete_MessageElement(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementNestedElementList_Type_set")]
  public static extern void MessageElementNestedElementList_Type_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementNestedElementList_Type_get")]
  public static extern int MessageElementNestedElementList_Type_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementNestedElementList_TypeName_set")]
  public static extern void MessageElementNestedElementList_TypeName_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementNestedElementList_TypeName_get")]
  public static extern string MessageElementNestedElementList_TypeName_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementNestedElementList_Elements_set")]
  public static extern void MessageElementNestedElementList_Elements_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementNestedElementList_Elements_get")]
  public static extern global::System.IntPtr MessageElementNestedElementList_Elements_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_MessageElementNestedElementList")]
  public static extern global::System.IntPtr new_MessageElementNestedElementList(int jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementNestedElementList_GetTypeString")]
  public static extern string MessageElementNestedElementList_GetTypeString(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementNestedElementList_GetTypeID")]
  public static extern int MessageElementNestedElementList_GetTypeID(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_MessageElementNestedElementList")]
  public static extern void delete_MessageElementNestedElementList(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_ToRRBaseArray")]
  public static extern global::System.IntPtr MessageElementDataUtil_ToRRBaseArray(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_ToMessageElementNestedElementList")]
  public static extern global::System.IntPtr MessageElementDataUtil_ToMessageElementNestedElementList(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_RRBaseArrayToString")]
  public static extern string MessageElementDataUtil_RRBaseArrayToString(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_RRBaseArrayToDoubles")]
  public static extern void MessageElementDataUtil_RRBaseArrayToDoubles(global::System.Runtime.InteropServices.HandleRef jarg1, [global::System.Runtime.InteropServices.Out, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]double[] jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_RRBaseArrayToFloats")]
  public static extern void MessageElementDataUtil_RRBaseArrayToFloats(global::System.Runtime.InteropServices.HandleRef jarg1, [global::System.Runtime.InteropServices.Out, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]float[] jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_RRBaseArrayToBytes__SWIG_0")]
  public static extern void MessageElementDataUtil_RRBaseArrayToBytes__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, [global::System.Runtime.InteropServices.Out, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]sbyte[] jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_RRBaseArrayToBytes__SWIG_1")]
  public static extern void MessageElementDataUtil_RRBaseArrayToBytes__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, [global::System.Runtime.InteropServices.Out, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]byte[] jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_RRBaseArrayToShorts__SWIG_0")]
  public static extern void MessageElementDataUtil_RRBaseArrayToShorts__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, [global::System.Runtime.InteropServices.Out, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]short[] jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_RRBaseArrayToShorts__SWIG_1")]
  public static extern void MessageElementDataUtil_RRBaseArrayToShorts__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, [global::System.Runtime.InteropServices.Out, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]ushort[] jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_RRBaseArrayToInts__SWIG_0")]
  public static extern void MessageElementDataUtil_RRBaseArrayToInts__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, [global::System.Runtime.InteropServices.Out, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]int[] jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_RRBaseArrayToInts__SWIG_1")]
  public static extern void MessageElementDataUtil_RRBaseArrayToInts__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, [global::System.Runtime.InteropServices.Out, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]uint[] jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_RRBaseArrayToLongs__SWIG_0")]
  public static extern void MessageElementDataUtil_RRBaseArrayToLongs__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, [global::System.Runtime.InteropServices.Out, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]int[] jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_RRBaseArrayToLongs__SWIG_1")]
  public static extern void MessageElementDataUtil_RRBaseArrayToLongs__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, [global::System.Runtime.InteropServices.Out, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]uint[] jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_RRBaseArrayComplexToDoubles")]
  public static extern void MessageElementDataUtil_RRBaseArrayComplexToDoubles(global::System.Runtime.InteropServices.HandleRef jarg1, [global::System.Runtime.InteropServices.Out, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]double[] jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_RRBaseArrayComplexToFloats")]
  public static extern void MessageElementDataUtil_RRBaseArrayComplexToFloats(global::System.Runtime.InteropServices.HandleRef jarg1, [global::System.Runtime.InteropServices.Out, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]float[] jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_RRBaseArrayBoolToBytes__SWIG_0")]
  public static extern void MessageElementDataUtil_RRBaseArrayBoolToBytes__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, [global::System.Runtime.InteropServices.Out, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]byte[] jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_RRBaseArrayBoolToBytes__SWIG_1")]
  public static extern void MessageElementDataUtil_RRBaseArrayBoolToBytes__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, [global::System.Runtime.InteropServices.Out, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]sbyte[] jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_stringToRRBaseArray")]
  public static extern global::System.IntPtr MessageElementDataUtil_stringToRRBaseArray(string jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_DoublesToRRBaseArray__SWIG_0")]
  public static extern global::System.IntPtr MessageElementDataUtil_DoublesToRRBaseArray__SWIG_0([global::System.Runtime.InteropServices.In, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]double[] jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_FloatsToRRBaseArray__SWIG_0")]
  public static extern global::System.IntPtr MessageElementDataUtil_FloatsToRRBaseArray__SWIG_0([global::System.Runtime.InteropServices.In, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]float[] jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_BytesToRRBaseArray__SWIG_0")]
  public static extern global::System.IntPtr MessageElementDataUtil_BytesToRRBaseArray__SWIG_0([global::System.Runtime.InteropServices.In, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]sbyte[] jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_BytesToRRBaseArray__SWIG_1")]
  public static extern global::System.IntPtr MessageElementDataUtil_BytesToRRBaseArray__SWIG_1([global::System.Runtime.InteropServices.In, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]byte[] jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_ShortsToRRBaseArray__SWIG_0")]
  public static extern global::System.IntPtr MessageElementDataUtil_ShortsToRRBaseArray__SWIG_0([global::System.Runtime.InteropServices.In, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]short[] jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_ShortsToRRBaseArray__SWIG_1")]
  public static extern global::System.IntPtr MessageElementDataUtil_ShortsToRRBaseArray__SWIG_1([global::System.Runtime.InteropServices.In, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]ushort[] jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_IntsToRRBaseArray__SWIG_0")]
  public static extern global::System.IntPtr MessageElementDataUtil_IntsToRRBaseArray__SWIG_0([global::System.Runtime.InteropServices.In, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]int[] jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_IntsToRRBaseArray__SWIG_1")]
  public static extern global::System.IntPtr MessageElementDataUtil_IntsToRRBaseArray__SWIG_1([global::System.Runtime.InteropServices.In, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]uint[] jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_LongsToRRBaseArray__SWIG_0")]
  public static extern global::System.IntPtr MessageElementDataUtil_LongsToRRBaseArray__SWIG_0([global::System.Runtime.InteropServices.In, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]int[] jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_LongsToRRBaseArray__SWIG_1")]
  public static extern global::System.IntPtr MessageElementDataUtil_LongsToRRBaseArray__SWIG_1([global::System.Runtime.InteropServices.In, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]uint[] jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_DoublesToComplexRRBaseArray__SWIG_0")]
  public static extern global::System.IntPtr MessageElementDataUtil_DoublesToComplexRRBaseArray__SWIG_0([global::System.Runtime.InteropServices.In, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]double[] jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_FloatsToComplexRRBaseArray__SWIG_0")]
  public static extern global::System.IntPtr MessageElementDataUtil_FloatsToComplexRRBaseArray__SWIG_0([global::System.Runtime.InteropServices.In, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]float[] jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_BytesToBoolRRBaseArray__SWIG_0")]
  public static extern global::System.IntPtr MessageElementDataUtil_BytesToBoolRRBaseArray__SWIG_0([global::System.Runtime.InteropServices.In, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]byte[] jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_BytesToBoolRRBaseArray__SWIG_1")]
  public static extern global::System.IntPtr MessageElementDataUtil_BytesToBoolRRBaseArray__SWIG_1([global::System.Runtime.InteropServices.In, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]sbyte[] jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_DoublesToRRBaseArray__SWIG_1")]
  public static extern void MessageElementDataUtil_DoublesToRRBaseArray__SWIG_1([global::System.Runtime.InteropServices.In, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]double[] jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_FloatsToRRBaseArray__SWIG_1")]
  public static extern void MessageElementDataUtil_FloatsToRRBaseArray__SWIG_1([global::System.Runtime.InteropServices.In, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]float[] jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_BytesToRRBaseArray__SWIG_2")]
  public static extern void MessageElementDataUtil_BytesToRRBaseArray__SWIG_2([global::System.Runtime.InteropServices.In, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]sbyte[] jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_BytesToRRBaseArray__SWIG_3")]
  public static extern void MessageElementDataUtil_BytesToRRBaseArray__SWIG_3([global::System.Runtime.InteropServices.In, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]byte[] jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_ShortsToRRBaseArray__SWIG_2")]
  public static extern void MessageElementDataUtil_ShortsToRRBaseArray__SWIG_2([global::System.Runtime.InteropServices.In, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]short[] jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_ShortsToRRBaseArray__SWIG_3")]
  public static extern void MessageElementDataUtil_ShortsToRRBaseArray__SWIG_3([global::System.Runtime.InteropServices.In, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]ushort[] jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_IntsToRRBaseArray__SWIG_2")]
  public static extern void MessageElementDataUtil_IntsToRRBaseArray__SWIG_2([global::System.Runtime.InteropServices.In, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]int[] jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_IntsToRRBaseArray__SWIG_3")]
  public static extern void MessageElementDataUtil_IntsToRRBaseArray__SWIG_3([global::System.Runtime.InteropServices.In, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]uint[] jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_LongsToRRBaseArray__SWIG_2")]
  public static extern void MessageElementDataUtil_LongsToRRBaseArray__SWIG_2([global::System.Runtime.InteropServices.In, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]int[] jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_LongsToRRBaseArray__SWIG_3")]
  public static extern void MessageElementDataUtil_LongsToRRBaseArray__SWIG_3([global::System.Runtime.InteropServices.In, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]uint[] jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_DoublesToComplexRRBaseArray__SWIG_1")]
  public static extern void MessageElementDataUtil_DoublesToComplexRRBaseArray__SWIG_1([global::System.Runtime.InteropServices.In, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]double[] jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_FloatsToComplexRRBaseArray__SWIG_1")]
  public static extern void MessageElementDataUtil_FloatsToComplexRRBaseArray__SWIG_1([global::System.Runtime.InteropServices.In, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]float[] jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_BytesToBoolRRBaseArray__SWIG_2")]
  public static extern void MessageElementDataUtil_BytesToBoolRRBaseArray__SWIG_2([global::System.Runtime.InteropServices.In, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]sbyte[] jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementDataUtil_BytesToBoolRRBaseArray__SWIG_3")]
  public static extern void MessageElementDataUtil_BytesToBoolRRBaseArray__SWIG_3([global::System.Runtime.InteropServices.In, global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray)]byte[] jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_MessageElementDataUtil")]
  public static extern global::System.IntPtr new_MessageElementDataUtil();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_MessageElementDataUtil")]
  public static extern void delete_MessageElementDataUtil(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_HandlerErrorInfo_error_code_set")]
  public static extern void HandlerErrorInfo_error_code_set(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_HandlerErrorInfo_error_code_get")]
  public static extern uint HandlerErrorInfo_error_code_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_HandlerErrorInfo_errorname_set")]
  public static extern void HandlerErrorInfo_errorname_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_HandlerErrorInfo_errorname_get")]
  public static extern string HandlerErrorInfo_errorname_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_HandlerErrorInfo_errormessage_set")]
  public static extern void HandlerErrorInfo_errormessage_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_HandlerErrorInfo_errormessage_get")]
  public static extern string HandlerErrorInfo_errormessage_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_HandlerErrorInfo_errorsubname_set")]
  public static extern void HandlerErrorInfo_errorsubname_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_HandlerErrorInfo_errorsubname_get")]
  public static extern string HandlerErrorInfo_errorsubname_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_HandlerErrorInfo_param__set")]
  public static extern void HandlerErrorInfo_param__set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_HandlerErrorInfo_param__get")]
  public static extern global::System.IntPtr HandlerErrorInfo_param__get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_HandlerErrorInfo")]
  public static extern global::System.IntPtr new_HandlerErrorInfo();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_HandlerErrorInfo")]
  public static extern void delete_HandlerErrorInfo(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_AsyncRequestDirector")]
  public static extern void delete_AsyncRequestDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AsyncRequestDirector_handler")]
  public static extern void AsyncRequestDirector_handler(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_AsyncRequestDirector")]
  public static extern global::System.IntPtr new_AsyncRequestDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AsyncRequestDirector_director_connect")]
  public static extern void AsyncRequestDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, AsyncRequestDirector.SwigDelegateAsyncRequestDirector_0 delegate0);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_AsyncVoidReturnDirector")]
  public static extern void delete_AsyncVoidReturnDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AsyncVoidReturnDirector_handler")]
  public static extern void AsyncVoidReturnDirector_handler(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_AsyncVoidReturnDirector")]
  public static extern global::System.IntPtr new_AsyncVoidReturnDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AsyncVoidReturnDirector_director_connect")]
  public static extern void AsyncVoidReturnDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, AsyncVoidReturnDirector.SwigDelegateAsyncVoidReturnDirector_0 delegate0);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_AsyncVoidNoErrReturnDirector")]
  public static extern void delete_AsyncVoidNoErrReturnDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AsyncVoidNoErrReturnDirector_handler")]
  public static extern void AsyncVoidNoErrReturnDirector_handler(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_AsyncVoidNoErrReturnDirector")]
  public static extern global::System.IntPtr new_AsyncVoidNoErrReturnDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AsyncVoidNoErrReturnDirector_director_connect")]
  public static extern void AsyncVoidNoErrReturnDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, AsyncVoidNoErrReturnDirector.SwigDelegateAsyncVoidNoErrReturnDirector_0 delegate0);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_AsyncStringReturnDirector")]
  public static extern void delete_AsyncStringReturnDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AsyncStringReturnDirector_handler")]
  public static extern void AsyncStringReturnDirector_handler(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_AsyncStringReturnDirector")]
  public static extern global::System.IntPtr new_AsyncStringReturnDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AsyncStringReturnDirector_director_connect")]
  public static extern void AsyncStringReturnDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, AsyncStringReturnDirector.SwigDelegateAsyncStringReturnDirector_0 delegate0);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_AsyncUInt32ReturnDirector")]
  public static extern void delete_AsyncUInt32ReturnDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AsyncUInt32ReturnDirector_handler")]
  public static extern void AsyncUInt32ReturnDirector_handler(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_AsyncUInt32ReturnDirector")]
  public static extern global::System.IntPtr new_AsyncUInt32ReturnDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AsyncUInt32ReturnDirector_director_connect")]
  public static extern void AsyncUInt32ReturnDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, AsyncUInt32ReturnDirector.SwigDelegateAsyncUInt32ReturnDirector_0 delegate0);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_rr_memcpy_memcpy")]
  public static extern void rr_memcpy_memcpy(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_Transport_GetUrlSchemeString")]
  public static extern string Transport_GetUrlSchemeString(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_Transport_GetCurrentTransportConnectionURL")]
  public static extern string Transport_GetCurrentTransportConnectionURL();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_Transport_GetServerListenUrls")]
  public static extern global::System.IntPtr Transport_GetServerListenUrls(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_Transport")]
  public static extern void delete_Transport(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_TcpTransport__SWIG_0")]
  public static extern global::System.IntPtr new_TcpTransport__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_TcpTransport__SWIG_1")]
  public static extern global::System.IntPtr new_TcpTransport__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport__GetDefaultReceiveTimeout")]
  public static extern int TcpTransport__GetDefaultReceiveTimeout(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport__SetDefaultReceiveTimeout")]
  public static extern void TcpTransport__SetDefaultReceiveTimeout(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport__GetDefaultConnectTimeout")]
  public static extern int TcpTransport__GetDefaultConnectTimeout(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport__SetDefaultConnectTimeout")]
  public static extern void TcpTransport__SetDefaultConnectTimeout(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport__GetDefaultHeartbeatPeriod")]
  public static extern int TcpTransport__GetDefaultHeartbeatPeriod(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport__SetDefaultHeartbeatPeriod")]
  public static extern void TcpTransport__SetDefaultHeartbeatPeriod(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport_GetUrlSchemeString")]
  public static extern string TcpTransport_GetUrlSchemeString(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport_GetServerListenUrls")]
  public static extern global::System.IntPtr TcpTransport_GetServerListenUrls(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport_GetListenPort")]
  public static extern int TcpTransport_GetListenPort(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport_StartServer__SWIG_0")]
  public static extern void TcpTransport_StartServer__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, bool jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport_StartServer__SWIG_1")]
  public static extern void TcpTransport_StartServer__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport_Close")]
  public static extern void TcpTransport_Close(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport_EnableNodeDiscoveryListening__SWIG_0")]
  public static extern void TcpTransport_EnableNodeDiscoveryListening__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport_EnableNodeDiscoveryListening__SWIG_1")]
  public static extern void TcpTransport_EnableNodeDiscoveryListening__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport_DisableNodeDiscoveryListening")]
  public static extern void TcpTransport_DisableNodeDiscoveryListening(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport_EnableNodeAnnounce__SWIG_0")]
  public static extern void TcpTransport_EnableNodeAnnounce__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport_EnableNodeAnnounce__SWIG_1")]
  public static extern void TcpTransport_EnableNodeAnnounce__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport_DisableNodeAnnounce")]
  public static extern void TcpTransport_DisableNodeAnnounce(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport__GetNodeAnnouncePeriod")]
  public static extern int TcpTransport__GetNodeAnnouncePeriod(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport__SetNodeAnnouncePeriod")]
  public static extern void TcpTransport__SetNodeAnnouncePeriod(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport__GetMaxMessageSize")]
  public static extern int TcpTransport__GetMaxMessageSize(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport__SetMaxMessageSize")]
  public static extern void TcpTransport__SetMaxMessageSize(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport__GetMaxConnectionCount")]
  public static extern int TcpTransport__GetMaxConnectionCount(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport__SetMaxConnectionCount")]
  public static extern void TcpTransport__SetMaxConnectionCount(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport__GetRequireTls")]
  public static extern bool TcpTransport__GetRequireTls(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport__SetRequireTls")]
  public static extern void TcpTransport__SetRequireTls(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport_LoadTlsNodeCertificate")]
  public static extern void TcpTransport_LoadTlsNodeCertificate(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport__IsTlsNodeCertificateLoaded")]
  public static extern bool TcpTransport__IsTlsNodeCertificateLoaded(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport_IsTransportConnectionSecure")]
  public static extern bool TcpTransport_IsTransportConnectionSecure(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport__IsTransportConnectionSecure")]
  public static extern bool TcpTransport__IsTransportConnectionSecure(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport_IsSecurePeerIdentityVerified")]
  public static extern bool TcpTransport_IsSecurePeerIdentityVerified(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport__IsSecurePeerIdentityVerified")]
  public static extern bool TcpTransport__IsSecurePeerIdentityVerified(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport_GetSecurePeerIdentity")]
  public static extern string TcpTransport_GetSecurePeerIdentity(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport__GetSecurePeerIdentity")]
  public static extern string TcpTransport__GetSecurePeerIdentity(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport_StartServerUsingPortSharer")]
  public static extern void TcpTransport_StartServerUsingPortSharer(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport__IsPortSharerRunning")]
  public static extern bool TcpTransport__IsPortSharerRunning(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport__GetAcceptWebSockets")]
  public static extern bool TcpTransport__GetAcceptWebSockets(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport__SetAcceptWebSockets")]
  public static extern void TcpTransport__SetAcceptWebSockets(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport_GetWebSocketAllowedOrigins")]
  public static extern global::System.IntPtr TcpTransport_GetWebSocketAllowedOrigins(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport_AddWebSocketAllowedOrigin")]
  public static extern void TcpTransport_AddWebSocketAllowedOrigin(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport_RemoveWebSocketAllowedOrigin")]
  public static extern void TcpTransport_RemoveWebSocketAllowedOrigin(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport__GetDisableMessage4")]
  public static extern bool TcpTransport__GetDisableMessage4(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport__SetDisableMessage4")]
  public static extern void TcpTransport__SetDisableMessage4(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport__GetDisableStringTable")]
  public static extern bool TcpTransport__GetDisableStringTable(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport__SetDisableStringTable")]
  public static extern void TcpTransport__SetDisableStringTable(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport__GetDisableAsyncMessageIO")]
  public static extern bool TcpTransport__GetDisableAsyncMessageIO(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport__SetDisableAsyncMessageIO")]
  public static extern void TcpTransport__SetDisableAsyncMessageIO(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport_GetLocalAdapterIPAddresses")]
  public static extern global::System.IntPtr TcpTransport_GetLocalAdapterIPAddresses();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_TcpTransport")]
  public static extern void delete_TcpTransport(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_LocalTransport__SWIG_0")]
  public static extern global::System.IntPtr new_LocalTransport__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_LocalTransport__SWIG_1")]
  public static extern global::System.IntPtr new_LocalTransport__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_LocalTransport_IsLocalTransportSupported")]
  public static extern bool LocalTransport_IsLocalTransportSupported();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_LocalTransport_GetUrlSchemeString")]
  public static extern string LocalTransport_GetUrlSchemeString(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_LocalTransport_GetServerListenUrls")]
  public static extern global::System.IntPtr LocalTransport_GetServerListenUrls(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_LocalTransport_StartClientAsNodeName")]
  public static extern void LocalTransport_StartClientAsNodeName(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_LocalTransport_StartServerAsNodeName__SWIG_0")]
  public static extern void LocalTransport_StartServerAsNodeName__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, bool jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_LocalTransport_StartServerAsNodeName__SWIG_1")]
  public static extern void LocalTransport_StartServerAsNodeName__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_LocalTransport_StartServerAsNodeID__SWIG_0")]
  public static extern void LocalTransport_StartServerAsNodeID__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, bool jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_LocalTransport_StartServerAsNodeID__SWIG_1")]
  public static extern void LocalTransport_StartServerAsNodeID__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_LocalTransport_Close")]
  public static extern void LocalTransport_Close(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_LocalTransport__GetMaxMessageSize")]
  public static extern int LocalTransport__GetMaxMessageSize(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_LocalTransport__SetMaxMessageSize")]
  public static extern void LocalTransport__SetMaxMessageSize(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_LocalTransport__GetDisableMessage4")]
  public static extern bool LocalTransport__GetDisableMessage4(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_LocalTransport__SetDisableMessage4")]
  public static extern void LocalTransport__SetDisableMessage4(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_LocalTransport__GetDisableStringTable")]
  public static extern bool LocalTransport__GetDisableStringTable(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_LocalTransport__SetDisableStringTable")]
  public static extern void LocalTransport__SetDisableStringTable(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_LocalTransport__GetDisableAsyncMessageIO")]
  public static extern bool LocalTransport__GetDisableAsyncMessageIO(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_LocalTransport__SetDisableAsyncMessageIO")]
  public static extern void LocalTransport__SetDisableAsyncMessageIO(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_LocalTransport_EnableNodeDiscoveryListening")]
  public static extern void LocalTransport_EnableNodeDiscoveryListening(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_LocalTransport_DisableNodeDiscoveryListening")]
  public static extern void LocalTransport_DisableNodeDiscoveryListening(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_LocalTransport")]
  public static extern void delete_LocalTransport(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_HardwareTransport__SWIG_0")]
  public static extern global::System.IntPtr new_HardwareTransport__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_HardwareTransport__SWIG_1")]
  public static extern global::System.IntPtr new_HardwareTransport__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_HardwareTransport_GetUrlSchemeString")]
  public static extern string HardwareTransport_GetUrlSchemeString(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_HardwareTransport_GetServerListenUrls")]
  public static extern global::System.IntPtr HardwareTransport_GetServerListenUrls(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_HardwareTransport_Close")]
  public static extern void HardwareTransport_Close(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_HardwareTransport__GetMaxMessageSize")]
  public static extern int HardwareTransport__GetMaxMessageSize(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_HardwareTransport__SetMaxMessageSize")]
  public static extern void HardwareTransport__SetMaxMessageSize(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_HardwareTransport__GetDisableMessage4")]
  public static extern bool HardwareTransport__GetDisableMessage4(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_HardwareTransport__SetDisableMessage4")]
  public static extern void HardwareTransport__SetDisableMessage4(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_HardwareTransport__GetDisableStringTable")]
  public static extern bool HardwareTransport__GetDisableStringTable(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_HardwareTransport__SetDisableStringTable")]
  public static extern void HardwareTransport__SetDisableStringTable(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_HardwareTransport__GetDisableAsyncMessageIO")]
  public static extern bool HardwareTransport__GetDisableAsyncMessageIO(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_HardwareTransport__SetDisableAsyncMessageIO")]
  public static extern void HardwareTransport__SetDisableAsyncMessageIO(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_HardwareTransport")]
  public static extern void delete_HardwareTransport(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_IntraTransport__SWIG_0")]
  public static extern global::System.IntPtr new_IntraTransport__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_IntraTransport__SWIG_1")]
  public static extern global::System.IntPtr new_IntraTransport__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_IntraTransport_GetUrlSchemeString")]
  public static extern string IntraTransport_GetUrlSchemeString(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_IntraTransport_GetServerListenUrls")]
  public static extern global::System.IntPtr IntraTransport_GetServerListenUrls(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_IntraTransport_Close")]
  public static extern void IntraTransport_Close(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_IntraTransport_StartClient")]
  public static extern void IntraTransport_StartClient(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_IntraTransport_StartServer")]
  public static extern void IntraTransport_StartServer(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_IntraTransport")]
  public static extern void delete_IntraTransport(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WallTimer_initstruct_handler_set")]
  public static extern void WallTimer_initstruct_handler_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WallTimer_initstruct_handler_get")]
  public static extern global::System.IntPtr WallTimer_initstruct_handler_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WallTimer_initstruct_id_set")]
  public static extern void WallTimer_initstruct_id_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WallTimer_initstruct_id_get")]
  public static extern int WallTimer_initstruct_id_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WallTimer_initstruct")]
  public static extern global::System.IntPtr new_WallTimer_initstruct();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WallTimer_initstruct")]
  public static extern void delete_WallTimer_initstruct(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TimerEvent_stopped_get")]
  public static extern bool TimerEvent_stopped_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TimerEvent_last_expected_get")]
  public static extern long TimerEvent_last_expected_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TimerEvent_last_real_get")]
  public static extern long TimerEvent_last_real_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TimerEvent_current_expected_get")]
  public static extern long TimerEvent_current_expected_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TimerEvent_current_real_get")]
  public static extern long TimerEvent_current_real_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_TimerEvent")]
  public static extern global::System.IntPtr new_TimerEvent();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_TimerEvent")]
  public static extern void delete_TimerEvent(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_AsyncTimerEventReturnDirector")]
  public static extern void delete_AsyncTimerEventReturnDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AsyncTimerEventReturnDirector_handler")]
  public static extern void AsyncTimerEventReturnDirector_handler(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_AsyncTimerEventReturnDirector")]
  public static extern global::System.IntPtr new_AsyncTimerEventReturnDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AsyncTimerEventReturnDirector_director_connect")]
  public static extern void AsyncTimerEventReturnDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, AsyncTimerEventReturnDirector.SwigDelegateAsyncTimerEventReturnDirector_0 delegate0);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_Timer_Start")]
  public static extern void Timer_Start(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_Timer_Stop")]
  public static extern void Timer_Stop(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_Timer_TryStop")]
  public static extern void Timer_TryStop(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_Timer_GetPeriod")]
  public static extern int Timer_GetPeriod(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_Timer_SetPeriod")]
  public static extern void Timer_SetPeriod(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_Timer_IsRunning")]
  public static extern bool Timer_IsRunning(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_Timer")]
  public static extern void delete_Timer(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WallTimer_Start")]
  public static extern void WallTimer_Start(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WallTimer_Stop")]
  public static extern void WallTimer_Stop(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WallTimer_TryStop")]
  public static extern void WallTimer_TryStop(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WallTimer_GetPeriod")]
  public static extern int WallTimer_GetPeriod(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WallTimer_SetPeriod")]
  public static extern void WallTimer_SetPeriod(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WallTimer_IsRunning")]
  public static extern bool WallTimer_IsRunning(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WallTimer")]
  public static extern void delete_WallTimer(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WallTimer")]
  public static extern global::System.IntPtr new_WallTimer(int jarg1, bool jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, global::System.Runtime.InteropServices.HandleRef jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_Rate_Sleep")]
  public static extern void Rate_Sleep(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_Rate")]
  public static extern void delete_Rate(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WallRate__SWIG_0")]
  public static extern global::System.IntPtr new_WallRate__SWIG_0(double jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WallRate__SWIG_1")]
  public static extern global::System.IntPtr new_WallRate__SWIG_1(double jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WallRate_Sleep")]
  public static extern void WallRate_Sleep(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WallRate")]
  public static extern void delete_WallRate(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_AutoResetEvent")]
  public static extern global::System.IntPtr new_AutoResetEvent();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_AutoResetEvent")]
  public static extern void delete_AutoResetEvent(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AutoResetEvent_Set")]
  public static extern void AutoResetEvent_Set(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AutoResetEvent_Reset")]
  public static extern void AutoResetEvent_Reset(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AutoResetEvent_WaitOne__SWIG_0")]
  public static extern void AutoResetEvent_WaitOne__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AutoResetEvent_WaitOne__SWIG_1")]
  public static extern bool AutoResetEvent_WaitOne__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TimeSpec_seconds_set")]
  public static extern void TimeSpec_seconds_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TimeSpec_seconds_get")]
  public static extern int TimeSpec_seconds_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TimeSpec_nanoseconds_set")]
  public static extern void TimeSpec_nanoseconds_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TimeSpec_nanoseconds_get")]
  public static extern int TimeSpec_nanoseconds_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_TimeSpec__SWIG_0")]
  public static extern global::System.IntPtr new_TimeSpec__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_TimeSpec__SWIG_1")]
  public static extern global::System.IntPtr new_TimeSpec__SWIG_1(int jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TimeSpec_eq")]
  public static extern bool TimeSpec_eq(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TimeSpec_ne")]
  public static extern bool TimeSpec_ne(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TimeSpec_sub")]
  public static extern global::System.IntPtr TimeSpec_sub(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TimeSpec_add")]
  public static extern global::System.IntPtr TimeSpec_add(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TimeSpec_gt")]
  public static extern bool TimeSpec_gt(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TimeSpec_ge")]
  public static extern bool TimeSpec_ge(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TimeSpec_lt")]
  public static extern bool TimeSpec_lt(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TimeSpec_le")]
  public static extern bool TimeSpec_le(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TimeSpec_cleanup_nanosecs")]
  public static extern void TimeSpec_cleanup_nanosecs(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_TimeSpec")]
  public static extern void delete_TimeSpec(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedService_typed_packet_packet_set")]
  public static extern void WrappedService_typed_packet_packet_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedService_typed_packet_packet_get")]
  public static extern global::System.IntPtr WrappedService_typed_packet_packet_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedService_typed_packet_type_set")]
  public static extern void WrappedService_typed_packet_type_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedService_typed_packet_type_get")]
  public static extern global::System.IntPtr WrappedService_typed_packet_type_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedService_typed_packet_stub_set")]
  public static extern void WrappedService_typed_packet_stub_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedService_typed_packet_stub_get")]
  public static extern global::System.IntPtr WrappedService_typed_packet_stub_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedService_typed_packet_client_set")]
  public static extern void WrappedService_typed_packet_client_set(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedService_typed_packet_client_get")]
  public static extern uint WrappedService_typed_packet_client_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedService_typed_packet")]
  public static extern global::System.IntPtr new_WrappedService_typed_packet();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedService_typed_packet")]
  public static extern void delete_WrappedService_typed_packet(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedPipeEndpointDirector")]
  public static extern void delete_WrappedPipeEndpointDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeEndpointDirector_PipeEndpointClosedCallback")]
  public static extern void WrappedPipeEndpointDirector_PipeEndpointClosedCallback(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeEndpointDirector_PacketReceivedEvent")]
  public static extern void WrappedPipeEndpointDirector_PacketReceivedEvent(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeEndpointDirector_PacketAckReceivedEvent")]
  public static extern void WrappedPipeEndpointDirector_PacketAckReceivedEvent(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedPipeEndpointDirector")]
  public static extern global::System.IntPtr new_WrappedPipeEndpointDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeEndpointDirector_director_connect")]
  public static extern void WrappedPipeEndpointDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, WrappedPipeEndpointDirector.SwigDelegateWrappedPipeEndpointDirector_0 delegate0, WrappedPipeEndpointDirector.SwigDelegateWrappedPipeEndpointDirector_1 delegate1, WrappedPipeEndpointDirector.SwigDelegateWrappedPipeEndpointDirector_2 delegate2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_AsyncPipeEndpointReturnDirector")]
  public static extern void delete_AsyncPipeEndpointReturnDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AsyncPipeEndpointReturnDirector_handler")]
  public static extern void AsyncPipeEndpointReturnDirector_handler(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_AsyncPipeEndpointReturnDirector")]
  public static extern global::System.IntPtr new_AsyncPipeEndpointReturnDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AsyncPipeEndpointReturnDirector_director_connect")]
  public static extern void AsyncPipeEndpointReturnDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, AsyncPipeEndpointReturnDirector.SwigDelegateAsyncPipeEndpointReturnDirector_0 delegate0);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedTryReceivePacketWaitResult_res_set")]
  public static extern void WrappedTryReceivePacketWaitResult_res_set(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedTryReceivePacketWaitResult_res_get")]
  public static extern bool WrappedTryReceivePacketWaitResult_res_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedTryReceivePacketWaitResult_packet_set")]
  public static extern void WrappedTryReceivePacketWaitResult_packet_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedTryReceivePacketWaitResult_packet_get")]
  public static extern global::System.IntPtr WrappedTryReceivePacketWaitResult_packet_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedTryReceivePacketWaitResult")]
  public static extern global::System.IntPtr new_WrappedTryReceivePacketWaitResult();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedTryReceivePacketWaitResult")]
  public static extern void delete_WrappedTryReceivePacketWaitResult(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeEndpoint_SendPacket")]
  public static extern uint WrappedPipeEndpoint_SendPacket(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeEndpoint_ReceivePacket")]
  public static extern global::System.IntPtr WrappedPipeEndpoint_ReceivePacket(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeEndpoint_PeekNextPacket")]
  public static extern global::System.IntPtr WrappedPipeEndpoint_PeekNextPacket(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeEndpoint_ReceivePacketWait__SWIG_0")]
  public static extern global::System.IntPtr WrappedPipeEndpoint_ReceivePacketWait__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeEndpoint_ReceivePacketWait__SWIG_1")]
  public static extern global::System.IntPtr WrappedPipeEndpoint_ReceivePacketWait__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeEndpoint_PeekNextPacketWait__SWIG_0")]
  public static extern global::System.IntPtr WrappedPipeEndpoint_PeekNextPacketWait__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeEndpoint_PeekNextPacketWait__SWIG_1")]
  public static extern global::System.IntPtr WrappedPipeEndpoint_PeekNextPacketWait__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeEndpoint_TryReceivePacketWait__SWIG_0")]
  public static extern global::System.IntPtr WrappedPipeEndpoint_TryReceivePacketWait__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, bool jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeEndpoint_TryReceivePacketWait__SWIG_1")]
  public static extern global::System.IntPtr WrappedPipeEndpoint_TryReceivePacketWait__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeEndpoint_TryReceivePacketWait__SWIG_2")]
  public static extern global::System.IntPtr WrappedPipeEndpoint_TryReceivePacketWait__SWIG_2(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeEndpoint_Close")]
  public static extern void WrappedPipeEndpoint_Close(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeEndpoint_GetIndex")]
  public static extern int WrappedPipeEndpoint_GetIndex(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeEndpoint_GetEndpoint")]
  public static extern uint WrappedPipeEndpoint_GetEndpoint(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeEndpoint_Available")]
  public static extern uint WrappedPipeEndpoint_Available(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeEndpoint_GetRequestPacketAck")]
  public static extern bool WrappedPipeEndpoint_GetRequestPacketAck(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeEndpoint_SetRequestPacketAck")]
  public static extern void WrappedPipeEndpoint_SetRequestPacketAck(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeEndpoint_Type_set")]
  public static extern void WrappedPipeEndpoint_Type_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeEndpoint_Type_get")]
  public static extern global::System.IntPtr WrappedPipeEndpoint_Type_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeEndpoint_SetRRDirector")]
  public static extern void WrappedPipeEndpoint_SetRRDirector(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeEndpoint_IsUnreliable")]
  public static extern bool WrappedPipeEndpoint_IsUnreliable(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeEndpoint_Direction")]
  public static extern int WrappedPipeEndpoint_Direction(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeEndpoint_AsyncSendPacket")]
  public static extern void WrappedPipeEndpoint_AsyncSendPacket(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, int jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeEndpoint_AsyncClose")]
  public static extern void WrappedPipeEndpoint_AsyncClose(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, int jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeEndpoint_GetNode")]
  public static extern global::System.IntPtr WrappedPipeEndpoint_GetNode(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeEndpoint_GetIgnoreReceived")]
  public static extern bool WrappedPipeEndpoint_GetIgnoreReceived(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeEndpoint_SetIgnoreReceived")]
  public static extern void WrappedPipeEndpoint_SetIgnoreReceived(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedPipeEndpoint")]
  public static extern void delete_WrappedPipeEndpoint(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeClient_Connect")]
  public static extern global::System.IntPtr WrappedPipeClient_Connect(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeClient_AsyncConnect")]
  public static extern void WrappedPipeClient_AsyncConnect(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3, global::System.Runtime.InteropServices.HandleRef jarg4, int jarg5);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeClient_GetMemberName")]
  public static extern string WrappedPipeClient_GetMemberName(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeClient_Type_set")]
  public static extern void WrappedPipeClient_Type_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeClient_Type_get")]
  public static extern global::System.IntPtr WrappedPipeClient_Type_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeClient_GetNode")]
  public static extern global::System.IntPtr WrappedPipeClient_GetNode(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeClient_Direction")]
  public static extern int WrappedPipeClient_Direction(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedPipeClient")]
  public static extern void delete_WrappedPipeClient(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedPipeServerConnectDirector")]
  public static extern void delete_WrappedPipeServerConnectDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeServerConnectDirector_PipeConnectCallback")]
  public static extern void WrappedPipeServerConnectDirector_PipeConnectCallback(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedPipeServerConnectDirector")]
  public static extern global::System.IntPtr new_WrappedPipeServerConnectDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeServerConnectDirector_director_connect")]
  public static extern void WrappedPipeServerConnectDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, WrappedPipeServerConnectDirector.SwigDelegateWrappedPipeServerConnectDirector_0 delegate0);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeServer_GetMemberName")]
  public static extern string WrappedPipeServer_GetMemberName(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeServer_Type_set")]
  public static extern void WrappedPipeServer_Type_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeServer_Type_get")]
  public static extern global::System.IntPtr WrappedPipeServer_Type_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeServer_SetWrappedPipeConnectCallback")]
  public static extern void WrappedPipeServer_SetWrappedPipeConnectCallback(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeServer_GetNode")]
  public static extern global::System.IntPtr WrappedPipeServer_GetNode(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeServer_Direction")]
  public static extern int WrappedPipeServer_Direction(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedPipeServer")]
  public static extern void delete_WrappedPipeServer(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeBroadcasterPredicateDirector_Predicate")]
  public static extern bool WrappedPipeBroadcasterPredicateDirector_Predicate(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedPipeBroadcasterPredicateDirector")]
  public static extern void delete_WrappedPipeBroadcasterPredicateDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedPipeBroadcasterPredicateDirector")]
  public static extern global::System.IntPtr new_WrappedPipeBroadcasterPredicateDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeBroadcasterPredicateDirector_director_connect")]
  public static extern void WrappedPipeBroadcasterPredicateDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, WrappedPipeBroadcasterPredicateDirector.SwigDelegateWrappedPipeBroadcasterPredicateDirector_0 delegate0);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeBroadcaster_Init__SWIG_0")]
  public static extern void WrappedPipeBroadcaster_Init__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeBroadcaster_Init__SWIG_1")]
  public static extern void WrappedPipeBroadcaster_Init__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeBroadcaster_SendPacket")]
  public static extern void WrappedPipeBroadcaster_SendPacket(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeBroadcaster_AsyncSendPacket")]
  public static extern void WrappedPipeBroadcaster_AsyncSendPacket(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, int jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeBroadcaster_GetActivePipeEndpointCount")]
  public static extern uint WrappedPipeBroadcaster_GetActivePipeEndpointCount(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeBroadcaster_SetPredicateDirector")]
  public static extern void WrappedPipeBroadcaster_SetPredicateDirector(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeBroadcaster_GetMaxBacklog")]
  public static extern int WrappedPipeBroadcaster_GetMaxBacklog(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeBroadcaster_SetMaxBacklog")]
  public static extern void WrappedPipeBroadcaster_SetMaxBacklog(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedPipeBroadcaster")]
  public static extern global::System.IntPtr new_WrappedPipeBroadcaster();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedPipeBroadcaster")]
  public static extern void delete_WrappedPipeBroadcaster(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedWireConnectionDirector")]
  public static extern void delete_WrappedWireConnectionDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireConnectionDirector_WireValueChanged")]
  public static extern void WrappedWireConnectionDirector_WireValueChanged(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireConnectionDirector_WireConnectionClosedCallback")]
  public static extern void WrappedWireConnectionDirector_WireConnectionClosedCallback(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedWireConnectionDirector")]
  public static extern global::System.IntPtr new_WrappedWireConnectionDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireConnectionDirector_director_connect")]
  public static extern void WrappedWireConnectionDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, WrappedWireConnectionDirector.SwigDelegateWrappedWireConnectionDirector_0 delegate0, WrappedWireConnectionDirector.SwigDelegateWrappedWireConnectionDirector_1 delegate1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_AsyncWireConnectionReturnDirector")]
  public static extern void delete_AsyncWireConnectionReturnDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AsyncWireConnectionReturnDirector_handler")]
  public static extern void AsyncWireConnectionReturnDirector_handler(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_AsyncWireConnectionReturnDirector")]
  public static extern global::System.IntPtr new_AsyncWireConnectionReturnDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AsyncWireConnectionReturnDirector_director_connect")]
  public static extern void AsyncWireConnectionReturnDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, AsyncWireConnectionReturnDirector.SwigDelegateAsyncWireConnectionReturnDirector_0 delegate0);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_AsyncWirePeekReturnDirector")]
  public static extern void delete_AsyncWirePeekReturnDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AsyncWirePeekReturnDirector_handler")]
  public static extern void AsyncWirePeekReturnDirector_handler(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, global::System.Runtime.InteropServices.HandleRef jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_AsyncWirePeekReturnDirector")]
  public static extern global::System.IntPtr new_AsyncWirePeekReturnDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AsyncWirePeekReturnDirector_director_connect")]
  public static extern void AsyncWirePeekReturnDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, AsyncWirePeekReturnDirector.SwigDelegateAsyncWirePeekReturnDirector_0 delegate0);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TryGetValueResult_res_set")]
  public static extern void TryGetValueResult_res_set(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TryGetValueResult_res_get")]
  public static extern bool TryGetValueResult_res_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TryGetValueResult_value_set")]
  public static extern void TryGetValueResult_value_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TryGetValueResult_value_get")]
  public static extern global::System.IntPtr TryGetValueResult_value_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TryGetValueResult_ts_set")]
  public static extern void TryGetValueResult_ts_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TryGetValueResult_ts_get")]
  public static extern global::System.IntPtr TryGetValueResult_ts_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_TryGetValueResult")]
  public static extern global::System.IntPtr new_TryGetValueResult();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_TryGetValueResult")]
  public static extern void delete_TryGetValueResult(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireConnection_GetInValue")]
  public static extern global::System.IntPtr WrappedWireConnection_GetInValue(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireConnection_GetOutValue")]
  public static extern global::System.IntPtr WrappedWireConnection_GetOutValue(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireConnection_SetOutValue")]
  public static extern void WrappedWireConnection_SetOutValue(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireConnection_SetRRDirector")]
  public static extern void WrappedWireConnection_SetRRDirector(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireConnection_Type_set")]
  public static extern void WrappedWireConnection_Type_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireConnection_Type_get")]
  public static extern global::System.IntPtr WrappedWireConnection_Type_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireConnection_Close")]
  public static extern void WrappedWireConnection_Close(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireConnection_GetEndpoint")]
  public static extern uint WrappedWireConnection_GetEndpoint(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireConnection_GetLastValueReceivedTime")]
  public static extern global::System.IntPtr WrappedWireConnection_GetLastValueReceivedTime(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireConnection_GetLastValueSentTime")]
  public static extern global::System.IntPtr WrappedWireConnection_GetLastValueSentTime(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireConnection_GetInValueValid")]
  public static extern bool WrappedWireConnection_GetInValueValid(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireConnection_GetOutValueValid")]
  public static extern bool WrappedWireConnection_GetOutValueValid(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireConnection_TryGetInValue")]
  public static extern global::System.IntPtr WrappedWireConnection_TryGetInValue(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireConnection_TryGetOutValue")]
  public static extern global::System.IntPtr WrappedWireConnection_TryGetOutValue(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireConnection_AsyncClose")]
  public static extern void WrappedWireConnection_AsyncClose(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, int jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireConnection_GetNode")]
  public static extern global::System.IntPtr WrappedWireConnection_GetNode(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireConnection_GetIgnoreInValue")]
  public static extern bool WrappedWireConnection_GetIgnoreInValue(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireConnection_SetIgnoreInValue")]
  public static extern void WrappedWireConnection_SetIgnoreInValue(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireConnection_GetInValueLifespan")]
  public static extern int WrappedWireConnection_GetInValueLifespan(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireConnection_SetInValueLifespan")]
  public static extern void WrappedWireConnection_SetInValueLifespan(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireConnection_GetOutValueLifespan")]
  public static extern int WrappedWireConnection_GetOutValueLifespan(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireConnection_SetOutValueLifespan")]
  public static extern void WrappedWireConnection_SetOutValueLifespan(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireConnection_WaitInValueValid__SWIG_0")]
  public static extern bool WrappedWireConnection_WaitInValueValid__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireConnection_WaitInValueValid__SWIG_1")]
  public static extern bool WrappedWireConnection_WaitInValueValid__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireConnection_WaitOutValueValid__SWIG_0")]
  public static extern bool WrappedWireConnection_WaitOutValueValid__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireConnection_WaitOutValueValid__SWIG_1")]
  public static extern bool WrappedWireConnection_WaitOutValueValid__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireConnection_Direction")]
  public static extern int WrappedWireConnection_Direction(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedWireConnection")]
  public static extern void delete_WrappedWireConnection(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireClient_Connect")]
  public static extern global::System.IntPtr WrappedWireClient_Connect(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireClient_AsyncConnect")]
  public static extern void WrappedWireClient_AsyncConnect(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, int jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireClient_GetMemberName")]
  public static extern string WrappedWireClient_GetMemberName(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireClient_PeekInValue")]
  public static extern global::System.IntPtr WrappedWireClient_PeekInValue(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireClient_PeekOutValue")]
  public static extern global::System.IntPtr WrappedWireClient_PeekOutValue(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireClient_PokeOutValue")]
  public static extern void WrappedWireClient_PokeOutValue(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireClient_AsyncPeekInValue")]
  public static extern void WrappedWireClient_AsyncPeekInValue(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, int jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireClient_AsyncPeekOutValue")]
  public static extern void WrappedWireClient_AsyncPeekOutValue(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, int jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireClient_AsyncPokeOutValue")]
  public static extern void WrappedWireClient_AsyncPokeOutValue(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int jarg3, global::System.Runtime.InteropServices.HandleRef jarg4, int jarg5);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireClient_Type_set")]
  public static extern void WrappedWireClient_Type_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireClient_Type_get")]
  public static extern global::System.IntPtr WrappedWireClient_Type_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireClient_GetNode")]
  public static extern global::System.IntPtr WrappedWireClient_GetNode(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireClient_Direction")]
  public static extern int WrappedWireClient_Direction(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedWireClient")]
  public static extern void delete_WrappedWireClient(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedWireServerConnectDirector")]
  public static extern void delete_WrappedWireServerConnectDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireServerConnectDirector_WireConnectCallback")]
  public static extern void WrappedWireServerConnectDirector_WireConnectCallback(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedWireServerConnectDirector")]
  public static extern global::System.IntPtr new_WrappedWireServerConnectDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireServerConnectDirector_director_connect")]
  public static extern void WrappedWireServerConnectDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, WrappedWireServerConnectDirector.SwigDelegateWrappedWireServerConnectDirector_0 delegate0);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedWireServerPeekValueDirector")]
  public static extern void delete_WrappedWireServerPeekValueDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireServerPeekValueDirector_PeekValue")]
  public static extern global::System.IntPtr WrappedWireServerPeekValueDirector_PeekValue(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedWireServerPeekValueDirector")]
  public static extern global::System.IntPtr new_WrappedWireServerPeekValueDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireServerPeekValueDirector_director_connect")]
  public static extern void WrappedWireServerPeekValueDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, WrappedWireServerPeekValueDirector.SwigDelegateWrappedWireServerPeekValueDirector_0 delegate0);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedWireServerPokeValueDirector")]
  public static extern void delete_WrappedWireServerPokeValueDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireServerPokeValueDirector_PokeValue")]
  public static extern void WrappedWireServerPokeValueDirector_PokeValue(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, uint jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedWireServerPokeValueDirector")]
  public static extern global::System.IntPtr new_WrappedWireServerPokeValueDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireServerPokeValueDirector_director_connect")]
  public static extern void WrappedWireServerPokeValueDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, WrappedWireServerPokeValueDirector.SwigDelegateWrappedWireServerPokeValueDirector_0 delegate0);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireServer_GetMemberName")]
  public static extern string WrappedWireServer_GetMemberName(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireServer_Type_set")]
  public static extern void WrappedWireServer_Type_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireServer_Type_get")]
  public static extern global::System.IntPtr WrappedWireServer_Type_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireServer_SetWrappedWireConnectCallback")]
  public static extern void WrappedWireServer_SetWrappedWireConnectCallback(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireServer_GetNode")]
  public static extern global::System.IntPtr WrappedWireServer_GetNode(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireServer_SetPeekInValueCallback")]
  public static extern void WrappedWireServer_SetPeekInValueCallback(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireServer_SetPeekOutValueCallback")]
  public static extern void WrappedWireServer_SetPeekOutValueCallback(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireServer_SetPokeOutValueCallback")]
  public static extern void WrappedWireServer_SetPokeOutValueCallback(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireServer_Direction")]
  public static extern int WrappedWireServer_Direction(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedWireServer")]
  public static extern void delete_WrappedWireServer(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireBroadcasterPredicateDirector_Predicate")]
  public static extern bool WrappedWireBroadcasterPredicateDirector_Predicate(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedWireBroadcasterPredicateDirector")]
  public static extern void delete_WrappedWireBroadcasterPredicateDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedWireBroadcasterPredicateDirector")]
  public static extern global::System.IntPtr new_WrappedWireBroadcasterPredicateDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireBroadcasterPredicateDirector_director_connect")]
  public static extern void WrappedWireBroadcasterPredicateDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, WrappedWireBroadcasterPredicateDirector.SwigDelegateWrappedWireBroadcasterPredicateDirector_0 delegate0);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireBroadcaster_Init")]
  public static extern void WrappedWireBroadcaster_Init(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireBroadcaster_SetOutValue")]
  public static extern void WrappedWireBroadcaster_SetOutValue(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireBroadcaster_GetActiveWireConnectionCount")]
  public static extern uint WrappedWireBroadcaster_GetActiveWireConnectionCount(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireBroadcaster_SetPredicateDirector")]
  public static extern void WrappedWireBroadcaster_SetPredicateDirector(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireBroadcaster_GetOutValueLifespan")]
  public static extern int WrappedWireBroadcaster_GetOutValueLifespan(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireBroadcaster_SetOutValueLifespan")]
  public static extern void WrappedWireBroadcaster_SetOutValueLifespan(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireBroadcaster_SetPeekInValueCallback")]
  public static extern void WrappedWireBroadcaster_SetPeekInValueCallback(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedWireBroadcaster")]
  public static extern global::System.IntPtr new_WrappedWireBroadcaster();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedWireBroadcaster")]
  public static extern void delete_WrappedWireBroadcaster(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireUnicastReceiver_Init")]
  public static extern void WrappedWireUnicastReceiver_Init(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireUnicastReceiver_GetInValue")]
  public static extern global::System.IntPtr WrappedWireUnicastReceiver_GetInValue(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, out uint jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireUnicastReceiver_AddInValueChangedListener")]
  public static extern void WrappedWireUnicastReceiver_AddInValueChangedListener(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireUnicastReceiver_GetInValueLifespan")]
  public static extern int WrappedWireUnicastReceiver_GetInValueLifespan(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireUnicastReceiver_SetInValueLifespan")]
  public static extern void WrappedWireUnicastReceiver_SetInValueLifespan(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireUnicastReceiver_TryGetInValue")]
  public static extern bool WrappedWireUnicastReceiver_TryGetInValue(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedWireUnicastReceiver")]
  public static extern global::System.IntPtr new_WrappedWireUnicastReceiver();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedWireUnicastReceiver")]
  public static extern void delete_WrappedWireUnicastReceiver(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ArrayMemoryBase_Length")]
  public static extern uint ArrayMemoryBase_Length(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ArrayMemoryBase_ElementTypeID")]
  public static extern int ArrayMemoryBase_ElementTypeID(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_ArrayMemoryBase")]
  public static extern void delete_ArrayMemoryBase(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MultiDimArrayMemoryBase_Dimensions")]
  public static extern global::System.IntPtr MultiDimArrayMemoryBase_Dimensions(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MultiDimArrayMemoryBase_DimCount")]
  public static extern uint MultiDimArrayMemoryBase_DimCount(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MultiDimArrayMemoryBase_ElementTypeID")]
  public static extern int MultiDimArrayMemoryBase_ElementTypeID(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_MultiDimArrayMemoryBase")]
  public static extern void delete_MultiDimArrayMemoryBase(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedArrayMemoryClientUtil_Read")]
  public static extern global::System.IntPtr WrappedArrayMemoryClientUtil_Read(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2, uint jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedArrayMemoryClientUtil_Write")]
  public static extern void WrappedArrayMemoryClientUtil_Write(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, uint jarg4, uint jarg5);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedArrayMemoryClientUtil_Direction")]
  public static extern int WrappedArrayMemoryClientUtil_Direction(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedArrayMemoryClientUtil")]
  public static extern global::System.IntPtr new_WrappedArrayMemoryClientUtil();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedArrayMemoryClientUtil")]
  public static extern void delete_WrappedArrayMemoryClientUtil(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedMultiDimArrayMemoryClientUtil_Read")]
  public static extern global::System.IntPtr WrappedMultiDimArrayMemoryClientUtil_Read(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedMultiDimArrayMemoryClientUtil_Write")]
  public static extern void WrappedMultiDimArrayMemoryClientUtil_Write(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, global::System.Runtime.InteropServices.HandleRef jarg4, global::System.Runtime.InteropServices.HandleRef jarg5);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedMultiDimArrayMemoryClientUtil_Direction")]
  public static extern int WrappedMultiDimArrayMemoryClientUtil_Direction(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedMultiDimArrayMemoryClientUtil")]
  public static extern global::System.IntPtr new_WrappedMultiDimArrayMemoryClientUtil();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedMultiDimArrayMemoryClientUtil")]
  public static extern void delete_WrappedMultiDimArrayMemoryClientUtil(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPodArrayMemoryClientBuffer_UnpackReadResult")]
  public static extern void WrappedPodArrayMemoryClientBuffer_UnpackReadResult(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, uint jarg3, uint jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPodArrayMemoryClientBuffer_PackWriteRequest")]
  public static extern global::System.IntPtr WrappedPodArrayMemoryClientBuffer_PackWriteRequest(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2, uint jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPodArrayMemoryClientBuffer_GetBufferLength")]
  public static extern uint WrappedPodArrayMemoryClientBuffer_GetBufferLength(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedPodArrayMemoryClientBuffer")]
  public static extern void delete_WrappedPodArrayMemoryClientBuffer(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedPodArrayMemoryClientBuffer")]
  public static extern global::System.IntPtr new_WrappedPodArrayMemoryClientBuffer();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPodArrayMemoryClientBuffer_director_connect")]
  public static extern void WrappedPodArrayMemoryClientBuffer_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, WrappedPodArrayMemoryClientBuffer.SwigDelegateWrappedPodArrayMemoryClientBuffer_0 delegate0, WrappedPodArrayMemoryClientBuffer.SwigDelegateWrappedPodArrayMemoryClientBuffer_1 delegate1, WrappedPodArrayMemoryClientBuffer.SwigDelegateWrappedPodArrayMemoryClientBuffer_2 delegate2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPodArrayMemoryClient_Length")]
  public static extern uint WrappedPodArrayMemoryClient_Length(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPodArrayMemoryClient_Direction")]
  public static extern int WrappedPodArrayMemoryClient_Direction(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPodArrayMemoryClient_Read")]
  public static extern void WrappedPodArrayMemoryClient_Read(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, uint jarg4, uint jarg5);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPodArrayMemoryClient_Write")]
  public static extern void WrappedPodArrayMemoryClient_Write(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, uint jarg4, uint jarg5);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedPodArrayMemoryClient")]
  public static extern void delete_WrappedPodArrayMemoryClient(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPodMultiDimArrayMemoryClientBuffer_UnpackReadResult")]
  public static extern void WrappedPodMultiDimArrayMemoryClientBuffer_UnpackReadResult(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, global::System.Runtime.InteropServices.HandleRef jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPodMultiDimArrayMemoryClientBuffer_PackWriteRequest")]
  public static extern global::System.IntPtr WrappedPodMultiDimArrayMemoryClientBuffer_PackWriteRequest(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedPodMultiDimArrayMemoryClientBuffer")]
  public static extern void delete_WrappedPodMultiDimArrayMemoryClientBuffer(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedPodMultiDimArrayMemoryClientBuffer")]
  public static extern global::System.IntPtr new_WrappedPodMultiDimArrayMemoryClientBuffer();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPodMultiDimArrayMemoryClientBuffer_director_connect")]
  public static extern void WrappedPodMultiDimArrayMemoryClientBuffer_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, WrappedPodMultiDimArrayMemoryClientBuffer.SwigDelegateWrappedPodMultiDimArrayMemoryClientBuffer_0 delegate0, WrappedPodMultiDimArrayMemoryClientBuffer.SwigDelegateWrappedPodMultiDimArrayMemoryClientBuffer_1 delegate1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPodMultiDimArrayMemoryClient_Dimensions")]
  public static extern global::System.IntPtr WrappedPodMultiDimArrayMemoryClient_Dimensions(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPodMultiDimArrayMemoryClient_DimCount")]
  public static extern uint WrappedPodMultiDimArrayMemoryClient_DimCount(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPodMultiDimArrayMemoryClient_Direction")]
  public static extern int WrappedPodMultiDimArrayMemoryClient_Direction(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPodMultiDimArrayMemoryClient_Read")]
  public static extern void WrappedPodMultiDimArrayMemoryClient_Read(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, global::System.Runtime.InteropServices.HandleRef jarg4, global::System.Runtime.InteropServices.HandleRef jarg5);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPodMultiDimArrayMemoryClient_Write")]
  public static extern void WrappedPodMultiDimArrayMemoryClient_Write(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, global::System.Runtime.InteropServices.HandleRef jarg4, global::System.Runtime.InteropServices.HandleRef jarg5);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedPodMultiDimArrayMemoryClient")]
  public static extern void delete_WrappedPodMultiDimArrayMemoryClient(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedArrayMemoryDirector")]
  public static extern void delete_WrappedArrayMemoryDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedArrayMemoryDirector_Length")]
  public static extern uint WrappedArrayMemoryDirector_Length(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedArrayMemoryDirector_Read")]
  public static extern void WrappedArrayMemoryDirector_Read(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, uint jarg4, uint jarg5);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedArrayMemoryDirector_Write")]
  public static extern void WrappedArrayMemoryDirector_Write(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, uint jarg4, uint jarg5);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedArrayMemoryDirector_objectheapid_set")]
  public static extern void WrappedArrayMemoryDirector_objectheapid_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedArrayMemoryDirector_objectheapid_get")]
  public static extern int WrappedArrayMemoryDirector_objectheapid_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedArrayMemoryDirector")]
  public static extern global::System.IntPtr new_WrappedArrayMemoryDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedArrayMemoryDirector_director_connect")]
  public static extern void WrappedArrayMemoryDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, WrappedArrayMemoryDirector.SwigDelegateWrappedArrayMemoryDirector_0 delegate0, WrappedArrayMemoryDirector.SwigDelegateWrappedArrayMemoryDirector_1 delegate1, WrappedArrayMemoryDirector.SwigDelegateWrappedArrayMemoryDirector_2 delegate2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedMultiDimArrayMemoryParams_memorypos_set")]
  public static extern void WrappedMultiDimArrayMemoryParams_memorypos_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedMultiDimArrayMemoryParams_memorypos_get")]
  public static extern global::System.IntPtr WrappedMultiDimArrayMemoryParams_memorypos_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedMultiDimArrayMemoryParams_buffer_set")]
  public static extern void WrappedMultiDimArrayMemoryParams_buffer_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedMultiDimArrayMemoryParams_buffer_get")]
  public static extern global::System.IntPtr WrappedMultiDimArrayMemoryParams_buffer_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedMultiDimArrayMemoryParams_bufferpos_set")]
  public static extern void WrappedMultiDimArrayMemoryParams_bufferpos_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedMultiDimArrayMemoryParams_bufferpos_get")]
  public static extern global::System.IntPtr WrappedMultiDimArrayMemoryParams_bufferpos_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedMultiDimArrayMemoryParams_count_set")]
  public static extern void WrappedMultiDimArrayMemoryParams_count_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedMultiDimArrayMemoryParams_count_get")]
  public static extern global::System.IntPtr WrappedMultiDimArrayMemoryParams_count_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedMultiDimArrayMemoryParams")]
  public static extern global::System.IntPtr new_WrappedMultiDimArrayMemoryParams();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedMultiDimArrayMemoryParams")]
  public static extern void delete_WrappedMultiDimArrayMemoryParams(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedMultiDimArrayMemoryDirector")]
  public static extern void delete_WrappedMultiDimArrayMemoryDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedMultiDimArrayMemoryDirector_Dimensions")]
  public static extern global::System.IntPtr WrappedMultiDimArrayMemoryDirector_Dimensions(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedMultiDimArrayMemoryDirector_DimCount")]
  public static extern uint WrappedMultiDimArrayMemoryDirector_DimCount(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedMultiDimArrayMemoryDirector_Read")]
  public static extern void WrappedMultiDimArrayMemoryDirector_Read(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedMultiDimArrayMemoryDirector_Write")]
  public static extern void WrappedMultiDimArrayMemoryDirector_Write(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedMultiDimArrayMemoryDirector_objectheapid_set")]
  public static extern void WrappedMultiDimArrayMemoryDirector_objectheapid_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedMultiDimArrayMemoryDirector_objectheapid_get")]
  public static extern int WrappedMultiDimArrayMemoryDirector_objectheapid_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedMultiDimArrayMemoryDirector")]
  public static extern global::System.IntPtr new_WrappedMultiDimArrayMemoryDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedMultiDimArrayMemoryDirector_director_connect")]
  public static extern void WrappedMultiDimArrayMemoryDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, WrappedMultiDimArrayMemoryDirector.SwigDelegateWrappedMultiDimArrayMemoryDirector_0 delegate0, WrappedMultiDimArrayMemoryDirector.SwigDelegateWrappedMultiDimArrayMemoryDirector_1 delegate1, WrappedMultiDimArrayMemoryDirector.SwigDelegateWrappedMultiDimArrayMemoryDirector_2 delegate2, WrappedMultiDimArrayMemoryDirector.SwigDelegateWrappedMultiDimArrayMemoryDirector_3 delegate3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedPodArrayMemoryDirector")]
  public static extern global::System.IntPtr new_WrappedPodArrayMemoryDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedPodArrayMemoryDirector")]
  public static extern void delete_WrappedPodArrayMemoryDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPodArrayMemoryDirector_Length")]
  public static extern uint WrappedPodArrayMemoryDirector_Length(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPodArrayMemoryDirector_Read")]
  public static extern global::System.IntPtr WrappedPodArrayMemoryDirector_Read(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2, uint jarg3, uint jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPodArrayMemoryDirector_Write")]
  public static extern void WrappedPodArrayMemoryDirector_Write(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, uint jarg4, uint jarg5);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPodArrayMemoryDirector_objectheapid_set")]
  public static extern void WrappedPodArrayMemoryDirector_objectheapid_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPodArrayMemoryDirector_objectheapid_get")]
  public static extern int WrappedPodArrayMemoryDirector_objectheapid_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPodArrayMemoryDirector_director_connect")]
  public static extern void WrappedPodArrayMemoryDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, WrappedPodArrayMemoryDirector.SwigDelegateWrappedPodArrayMemoryDirector_0 delegate0, WrappedPodArrayMemoryDirector.SwigDelegateWrappedPodArrayMemoryDirector_1 delegate1, WrappedPodArrayMemoryDirector.SwigDelegateWrappedPodArrayMemoryDirector_2 delegate2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedPodMultiDimArrayMemoryDirector")]
  public static extern void delete_WrappedPodMultiDimArrayMemoryDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPodMultiDimArrayMemoryDirector_Dimensions")]
  public static extern global::System.IntPtr WrappedPodMultiDimArrayMemoryDirector_Dimensions(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPodMultiDimArrayMemoryDirector_DimCount")]
  public static extern uint WrappedPodMultiDimArrayMemoryDirector_DimCount(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPodMultiDimArrayMemoryDirector_Read")]
  public static extern global::System.IntPtr WrappedPodMultiDimArrayMemoryDirector_Read(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, global::System.Runtime.InteropServices.HandleRef jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPodMultiDimArrayMemoryDirector_Write")]
  public static extern void WrappedPodMultiDimArrayMemoryDirector_Write(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, global::System.Runtime.InteropServices.HandleRef jarg4, global::System.Runtime.InteropServices.HandleRef jarg5);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPodMultiDimArrayMemoryDirector_objectheapid_set")]
  public static extern void WrappedPodMultiDimArrayMemoryDirector_objectheapid_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPodMultiDimArrayMemoryDirector_objectheapid_get")]
  public static extern int WrappedPodMultiDimArrayMemoryDirector_objectheapid_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedPodMultiDimArrayMemoryDirector")]
  public static extern global::System.IntPtr new_WrappedPodMultiDimArrayMemoryDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPodMultiDimArrayMemoryDirector_director_connect")]
  public static extern void WrappedPodMultiDimArrayMemoryDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, WrappedPodMultiDimArrayMemoryDirector.SwigDelegateWrappedPodMultiDimArrayMemoryDirector_0 delegate0, WrappedPodMultiDimArrayMemoryDirector.SwigDelegateWrappedPodMultiDimArrayMemoryDirector_1 delegate1, WrappedPodMultiDimArrayMemoryDirector.SwigDelegateWrappedPodMultiDimArrayMemoryDirector_2 delegate2, WrappedPodMultiDimArrayMemoryDirector.SwigDelegateWrappedPodMultiDimArrayMemoryDirector_3 delegate3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedNamedArrayMemoryClientBuffer_UnpackReadResult")]
  public static extern void WrappedNamedArrayMemoryClientBuffer_UnpackReadResult(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, uint jarg3, uint jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedNamedArrayMemoryClientBuffer_PackWriteRequest")]
  public static extern global::System.IntPtr WrappedNamedArrayMemoryClientBuffer_PackWriteRequest(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2, uint jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedNamedArrayMemoryClientBuffer_GetBufferLength")]
  public static extern uint WrappedNamedArrayMemoryClientBuffer_GetBufferLength(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedNamedArrayMemoryClientBuffer")]
  public static extern void delete_WrappedNamedArrayMemoryClientBuffer(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedNamedArrayMemoryClientBuffer")]
  public static extern global::System.IntPtr new_WrappedNamedArrayMemoryClientBuffer();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedNamedArrayMemoryClientBuffer_director_connect")]
  public static extern void WrappedNamedArrayMemoryClientBuffer_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, WrappedNamedArrayMemoryClientBuffer.SwigDelegateWrappedNamedArrayMemoryClientBuffer_0 delegate0, WrappedNamedArrayMemoryClientBuffer.SwigDelegateWrappedNamedArrayMemoryClientBuffer_1 delegate1, WrappedNamedArrayMemoryClientBuffer.SwigDelegateWrappedNamedArrayMemoryClientBuffer_2 delegate2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedNamedArrayMemoryClient_Length")]
  public static extern uint WrappedNamedArrayMemoryClient_Length(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedNamedArrayMemoryClient_Direction")]
  public static extern int WrappedNamedArrayMemoryClient_Direction(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedNamedArrayMemoryClient_Read")]
  public static extern void WrappedNamedArrayMemoryClient_Read(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, uint jarg4, uint jarg5);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedNamedArrayMemoryClient_Write")]
  public static extern void WrappedNamedArrayMemoryClient_Write(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, uint jarg4, uint jarg5);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedNamedArrayMemoryClient")]
  public static extern void delete_WrappedNamedArrayMemoryClient(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedNamedMultiDimArrayMemoryClientBuffer_UnpackReadResult")]
  public static extern void WrappedNamedMultiDimArrayMemoryClientBuffer_UnpackReadResult(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, global::System.Runtime.InteropServices.HandleRef jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedNamedMultiDimArrayMemoryClientBuffer_PackWriteRequest")]
  public static extern global::System.IntPtr WrappedNamedMultiDimArrayMemoryClientBuffer_PackWriteRequest(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedNamedMultiDimArrayMemoryClientBuffer")]
  public static extern void delete_WrappedNamedMultiDimArrayMemoryClientBuffer(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedNamedMultiDimArrayMemoryClientBuffer")]
  public static extern global::System.IntPtr new_WrappedNamedMultiDimArrayMemoryClientBuffer();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedNamedMultiDimArrayMemoryClientBuffer_director_connect")]
  public static extern void WrappedNamedMultiDimArrayMemoryClientBuffer_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, WrappedNamedMultiDimArrayMemoryClientBuffer.SwigDelegateWrappedNamedMultiDimArrayMemoryClientBuffer_0 delegate0, WrappedNamedMultiDimArrayMemoryClientBuffer.SwigDelegateWrappedNamedMultiDimArrayMemoryClientBuffer_1 delegate1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedNamedMultiDimArrayMemoryClient_Dimensions")]
  public static extern global::System.IntPtr WrappedNamedMultiDimArrayMemoryClient_Dimensions(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedNamedMultiDimArrayMemoryClient_DimCount")]
  public static extern uint WrappedNamedMultiDimArrayMemoryClient_DimCount(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedNamedMultiDimArrayMemoryClient_Direction")]
  public static extern int WrappedNamedMultiDimArrayMemoryClient_Direction(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedNamedMultiDimArrayMemoryClient_Read")]
  public static extern void WrappedNamedMultiDimArrayMemoryClient_Read(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, global::System.Runtime.InteropServices.HandleRef jarg4, global::System.Runtime.InteropServices.HandleRef jarg5);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedNamedMultiDimArrayMemoryClient_Write")]
  public static extern void WrappedNamedMultiDimArrayMemoryClient_Write(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, global::System.Runtime.InteropServices.HandleRef jarg4, global::System.Runtime.InteropServices.HandleRef jarg5);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedNamedMultiDimArrayMemoryClient")]
  public static extern void delete_WrappedNamedMultiDimArrayMemoryClient(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedNamedArrayMemoryDirector")]
  public static extern global::System.IntPtr new_WrappedNamedArrayMemoryDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedNamedArrayMemoryDirector")]
  public static extern void delete_WrappedNamedArrayMemoryDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedNamedArrayMemoryDirector_Length")]
  public static extern uint WrappedNamedArrayMemoryDirector_Length(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedNamedArrayMemoryDirector_Read")]
  public static extern global::System.IntPtr WrappedNamedArrayMemoryDirector_Read(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2, uint jarg3, uint jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedNamedArrayMemoryDirector_Write")]
  public static extern void WrappedNamedArrayMemoryDirector_Write(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, uint jarg4, uint jarg5);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedNamedArrayMemoryDirector_objectheapid_set")]
  public static extern void WrappedNamedArrayMemoryDirector_objectheapid_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedNamedArrayMemoryDirector_objectheapid_get")]
  public static extern int WrappedNamedArrayMemoryDirector_objectheapid_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedNamedArrayMemoryDirector_director_connect")]
  public static extern void WrappedNamedArrayMemoryDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, WrappedNamedArrayMemoryDirector.SwigDelegateWrappedNamedArrayMemoryDirector_0 delegate0, WrappedNamedArrayMemoryDirector.SwigDelegateWrappedNamedArrayMemoryDirector_1 delegate1, WrappedNamedArrayMemoryDirector.SwigDelegateWrappedNamedArrayMemoryDirector_2 delegate2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedNamedMultiDimArrayMemoryDirector")]
  public static extern void delete_WrappedNamedMultiDimArrayMemoryDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedNamedMultiDimArrayMemoryDirector_Dimensions")]
  public static extern global::System.IntPtr WrappedNamedMultiDimArrayMemoryDirector_Dimensions(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedNamedMultiDimArrayMemoryDirector_DimCount")]
  public static extern uint WrappedNamedMultiDimArrayMemoryDirector_DimCount(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedNamedMultiDimArrayMemoryDirector_Read")]
  public static extern global::System.IntPtr WrappedNamedMultiDimArrayMemoryDirector_Read(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, global::System.Runtime.InteropServices.HandleRef jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedNamedMultiDimArrayMemoryDirector_Write")]
  public static extern void WrappedNamedMultiDimArrayMemoryDirector_Write(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, global::System.Runtime.InteropServices.HandleRef jarg4, global::System.Runtime.InteropServices.HandleRef jarg5);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedNamedMultiDimArrayMemoryDirector_objectheapid_set")]
  public static extern void WrappedNamedMultiDimArrayMemoryDirector_objectheapid_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedNamedMultiDimArrayMemoryDirector_objectheapid_get")]
  public static extern int WrappedNamedMultiDimArrayMemoryDirector_objectheapid_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedNamedMultiDimArrayMemoryDirector")]
  public static extern global::System.IntPtr new_WrappedNamedMultiDimArrayMemoryDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedNamedMultiDimArrayMemoryDirector_director_connect")]
  public static extern void WrappedNamedMultiDimArrayMemoryDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, WrappedNamedMultiDimArrayMemoryDirector.SwigDelegateWrappedNamedMultiDimArrayMemoryDirector_0 delegate0, WrappedNamedMultiDimArrayMemoryDirector.SwigDelegateWrappedNamedMultiDimArrayMemoryDirector_1 delegate1, WrappedNamedMultiDimArrayMemoryDirector.SwigDelegateWrappedNamedMultiDimArrayMemoryDirector_2 delegate2, WrappedNamedMultiDimArrayMemoryDirector.SwigDelegateWrappedNamedMultiDimArrayMemoryDirector_3 delegate3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedGeneratorClient_TryGetNextResult_value_set")]
  public static extern void WrappedGeneratorClient_TryGetNextResult_value_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedGeneratorClient_TryGetNextResult_value_get")]
  public static extern global::System.IntPtr WrappedGeneratorClient_TryGetNextResult_value_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedGeneratorClient_TryGetNextResult_res_set")]
  public static extern void WrappedGeneratorClient_TryGetNextResult_res_set(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedGeneratorClient_TryGetNextResult_res_get")]
  public static extern bool WrappedGeneratorClient_TryGetNextResult_res_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedGeneratorClient_TryGetNextResult")]
  public static extern void delete_WrappedGeneratorClient_TryGetNextResult(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedGeneratorClient_Next")]
  public static extern global::System.IntPtr WrappedGeneratorClient_Next(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedGeneratorClient_TryNext")]
  public static extern global::System.IntPtr WrappedGeneratorClient_TryNext(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedGeneratorClient_AsyncNext")]
  public static extern void WrappedGeneratorClient_AsyncNext(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int jarg3, global::System.Runtime.InteropServices.HandleRef jarg4, int jarg5);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedGeneratorClient_Abort")]
  public static extern void WrappedGeneratorClient_Abort(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedGeneratorClient_AsyncAbort")]
  public static extern void WrappedGeneratorClient_AsyncAbort(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, int jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedGeneratorClient_Close")]
  public static extern void WrappedGeneratorClient_Close(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedGeneratorClient_AsyncClose")]
  public static extern void WrappedGeneratorClient_AsyncClose(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, int jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedGeneratorClient_NextAll")]
  public static extern global::System.IntPtr WrappedGeneratorClient_NextAll(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedGeneratorClient")]
  public static extern void delete_WrappedGeneratorClient(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_AsyncGeneratorClientReturnDirector")]
  public static extern void delete_AsyncGeneratorClientReturnDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AsyncGeneratorClientReturnDirector_handler")]
  public static extern void AsyncGeneratorClientReturnDirector_handler(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_AsyncGeneratorClientReturnDirector")]
  public static extern global::System.IntPtr new_AsyncGeneratorClientReturnDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AsyncGeneratorClientReturnDirector_director_connect")]
  public static extern void AsyncGeneratorClientReturnDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, AsyncGeneratorClientReturnDirector.SwigDelegateAsyncGeneratorClientReturnDirector_0 delegate0);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedGeneratorServerDirector")]
  public static extern global::System.IntPtr new_WrappedGeneratorServerDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedGeneratorServerDirector")]
  public static extern void delete_WrappedGeneratorServerDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedGeneratorServerDirector_Next")]
  public static extern global::System.IntPtr WrappedGeneratorServerDirector_Next(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedGeneratorServerDirector_Abort")]
  public static extern void WrappedGeneratorServerDirector_Abort(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedGeneratorServerDirector_Close")]
  public static extern void WrappedGeneratorServerDirector_Close(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedGeneratorServerDirector_objectheapid_set")]
  public static extern void WrappedGeneratorServerDirector_objectheapid_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedGeneratorServerDirector_objectheapid_get")]
  public static extern int WrappedGeneratorServerDirector_objectheapid_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedGeneratorServerDirector_director_connect")]
  public static extern void WrappedGeneratorServerDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, WrappedGeneratorServerDirector.SwigDelegateWrappedGeneratorServerDirector_0 delegate0, WrappedGeneratorServerDirector.SwigDelegateWrappedGeneratorServerDirector_1 delegate1, WrappedGeneratorServerDirector.SwigDelegateWrappedGeneratorServerDirector_2 delegate2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedServiceStubDirector")]
  public static extern void delete_WrappedServiceStubDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceStubDirector_DispatchEvent")]
  public static extern void WrappedServiceStubDirector_DispatchEvent(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceStubDirector_CallbackCall")]
  public static extern global::System.IntPtr WrappedServiceStubDirector_CallbackCall(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedServiceStubDirector")]
  public static extern global::System.IntPtr new_WrappedServiceStubDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceStubDirector_director_connect")]
  public static extern void WrappedServiceStubDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, WrappedServiceStubDirector.SwigDelegateWrappedServiceStubDirector_0 delegate0, WrappedServiceStubDirector.SwigDelegateWrappedServiceStubDirector_1 delegate1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_AsyncStubReturnDirector")]
  public static extern void delete_AsyncStubReturnDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AsyncStubReturnDirector_handler")]
  public static extern void AsyncStubReturnDirector_handler(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_AsyncStubReturnDirector")]
  public static extern global::System.IntPtr new_AsyncStubReturnDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AsyncStubReturnDirector_director_connect")]
  public static extern void AsyncStubReturnDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, AsyncStubReturnDirector.SwigDelegateAsyncStubReturnDirector_0 delegate0);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedDirectorLock_valid")]
  public static extern bool WrappedDirectorLock_valid(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedDirectorLock")]
  public static extern void delete_WrappedDirectorLock(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceStub_PropertyGet")]
  public static extern global::System.IntPtr WrappedServiceStub_PropertyGet(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceStub_PropertySet")]
  public static extern void WrappedServiceStub_PropertySet(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceStub_FunctionCall")]
  public static extern global::System.IntPtr WrappedServiceStub_FunctionCall(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceStub_GeneratorFunctionCall")]
  public static extern global::System.IntPtr WrappedServiceStub_GeneratorFunctionCall(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceStub_async_PropertyGet")]
  public static extern void WrappedServiceStub_async_PropertyGet(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, int jarg3, global::System.Runtime.InteropServices.HandleRef jarg4, int jarg5);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceStub_async_PropertySet")]
  public static extern void WrappedServiceStub_async_PropertySet(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, int jarg4, global::System.Runtime.InteropServices.HandleRef jarg5, int jarg6);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceStub_async_FunctionCall")]
  public static extern void WrappedServiceStub_async_FunctionCall(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, int jarg4, global::System.Runtime.InteropServices.HandleRef jarg5, int jarg6);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceStub_async_GeneratorFunctionCall")]
  public static extern void WrappedServiceStub_async_GeneratorFunctionCall(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, int jarg4, global::System.Runtime.InteropServices.HandleRef jarg5, int jarg6);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceStub_async_FindObjRef__SWIG_0")]
  public static extern void WrappedServiceStub_async_FindObjRef__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, int jarg3, global::System.Runtime.InteropServices.HandleRef jarg4, int jarg5);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceStub_async_FindObjRef__SWIG_1")]
  public static extern void WrappedServiceStub_async_FindObjRef__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3, int jarg4, global::System.Runtime.InteropServices.HandleRef jarg5, int jarg6);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceStub_async_FindObjRefTyped__SWIG_0")]
  public static extern void WrappedServiceStub_async_FindObjRefTyped__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3, int jarg4, global::System.Runtime.InteropServices.HandleRef jarg5, int jarg6);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceStub_async_FindObjRefTyped__SWIG_1")]
  public static extern void WrappedServiceStub_async_FindObjRefTyped__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3, string jarg4, int jarg5, global::System.Runtime.InteropServices.HandleRef jarg6, int jarg7);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceStub_GetPipe")]
  public static extern global::System.IntPtr WrappedServiceStub_GetPipe(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceStub_GetWire")]
  public static extern global::System.IntPtr WrappedServiceStub_GetWire(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceStub_GetObjectHeapID")]
  public static extern int WrappedServiceStub_GetObjectHeapID(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceStub_FindObjRef__SWIG_0")]
  public static extern global::System.IntPtr WrappedServiceStub_FindObjRef__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceStub_FindObjRef__SWIG_1")]
  public static extern global::System.IntPtr WrappedServiceStub_FindObjRef__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceStub_FindObjRefTyped__SWIG_0")]
  public static extern global::System.IntPtr WrappedServiceStub_FindObjRefTyped__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceStub_FindObjRefTyped__SWIG_1")]
  public static extern global::System.IntPtr WrappedServiceStub_FindObjRefTyped__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3, string jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceStub_GetArrayMemory")]
  public static extern global::System.IntPtr WrappedServiceStub_GetArrayMemory(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceStub_GetMultiDimArrayMemory")]
  public static extern global::System.IntPtr WrappedServiceStub_GetMultiDimArrayMemory(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceStub_GetPodArrayMemory")]
  public static extern global::System.IntPtr WrappedServiceStub_GetPodArrayMemory(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceStub_GetPodMultiDimArrayMemory")]
  public static extern global::System.IntPtr WrappedServiceStub_GetPodMultiDimArrayMemory(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceStub_GetNamedArrayMemory")]
  public static extern global::System.IntPtr WrappedServiceStub_GetNamedArrayMemory(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceStub_GetNamedMultiDimArrayMemory")]
  public static extern global::System.IntPtr WrappedServiceStub_GetNamedMultiDimArrayMemory(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceStub_RRClose")]
  public static extern void WrappedServiceStub_RRClose(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceStub_RR_objecttype_set")]
  public static extern void WrappedServiceStub_RR_objecttype_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceStub_RR_objecttype_get")]
  public static extern global::System.IntPtr WrappedServiceStub_RR_objecttype_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceStub_SetRRDirector")]
  public static extern bool WrappedServiceStub_SetRRDirector(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceStub_GetRRDirectorLock")]
  public static extern global::System.IntPtr WrappedServiceStub_GetRRDirectorLock(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceStub_RRGetNode")]
  public static extern global::System.IntPtr WrappedServiceStub_RRGetNode(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedServiceStub")]
  public static extern void delete_WrappedServiceStub(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedServiceSkelDirector")]
  public static extern void delete_WrappedServiceSkelDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSkelDirector_Init")]
  public static extern void WrappedServiceSkelDirector_Init(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSkelDirector__CallGetProperty")]
  public static extern global::System.IntPtr WrappedServiceSkelDirector__CallGetProperty(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSkelDirector__CallSetProperty")]
  public static extern void WrappedServiceSkelDirector__CallSetProperty(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, global::System.Runtime.InteropServices.HandleRef jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSkelDirector__CallFunction")]
  public static extern global::System.IntPtr WrappedServiceSkelDirector__CallFunction(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, global::System.Runtime.InteropServices.HandleRef jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSkelDirector__GetSubObj")]
  public static extern global::System.IntPtr WrappedServiceSkelDirector__GetSubObj(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSkelDirector__GetArrayMemory")]
  public static extern global::System.IntPtr WrappedServiceSkelDirector__GetArrayMemory(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSkelDirector__GetMultiDimArrayMemory")]
  public static extern global::System.IntPtr WrappedServiceSkelDirector__GetMultiDimArrayMemory(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSkelDirector__GetPodArrayMemory")]
  public static extern global::System.IntPtr WrappedServiceSkelDirector__GetPodArrayMemory(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSkelDirector__GetPodMultiDimArrayMemory")]
  public static extern global::System.IntPtr WrappedServiceSkelDirector__GetPodMultiDimArrayMemory(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSkelDirector__GetNamedArrayMemory")]
  public static extern global::System.IntPtr WrappedServiceSkelDirector__GetNamedArrayMemory(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSkelDirector__GetNamedMultiDimArrayMemory")]
  public static extern global::System.IntPtr WrappedServiceSkelDirector__GetNamedMultiDimArrayMemory(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSkelDirector_MonitorEnter")]
  public static extern void WrappedServiceSkelDirector_MonitorEnter(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSkelDirector_MonitorExit")]
  public static extern void WrappedServiceSkelDirector_MonitorExit(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSkelDirector_ReleaseCastObject")]
  public static extern void WrappedServiceSkelDirector_ReleaseCastObject(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedServiceSkelDirector")]
  public static extern global::System.IntPtr new_WrappedServiceSkelDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSkelDirector_director_connect")]
  public static extern void WrappedServiceSkelDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, WrappedServiceSkelDirector.SwigDelegateWrappedServiceSkelDirector_0 delegate0, WrappedServiceSkelDirector.SwigDelegateWrappedServiceSkelDirector_1 delegate1, WrappedServiceSkelDirector.SwigDelegateWrappedServiceSkelDirector_2 delegate2, WrappedServiceSkelDirector.SwigDelegateWrappedServiceSkelDirector_3 delegate3, WrappedServiceSkelDirector.SwigDelegateWrappedServiceSkelDirector_4 delegate4, WrappedServiceSkelDirector.SwigDelegateWrappedServiceSkelDirector_5 delegate5, WrappedServiceSkelDirector.SwigDelegateWrappedServiceSkelDirector_6 delegate6, WrappedServiceSkelDirector.SwigDelegateWrappedServiceSkelDirector_7 delegate7, WrappedServiceSkelDirector.SwigDelegateWrappedServiceSkelDirector_8 delegate8, WrappedServiceSkelDirector.SwigDelegateWrappedServiceSkelDirector_9 delegate9, WrappedServiceSkelDirector.SwigDelegateWrappedServiceSkelDirector_10 delegate10, WrappedServiceSkelDirector.SwigDelegateWrappedServiceSkelDirector_11 delegate11, WrappedServiceSkelDirector.SwigDelegateWrappedServiceSkelDirector_12 delegate12, WrappedServiceSkelDirector.SwigDelegateWrappedServiceSkelDirector_13 delegate13);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedRRObject")]
  public static extern global::System.IntPtr new_WrappedRRObject(string jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedRRObject_Type_set")]
  public static extern void WrappedRRObject_Type_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedRRObject_Type_get")]
  public static extern string WrappedRRObject_Type_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedRRObject")]
  public static extern void delete_WrappedRRObject(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSkel_Type_set")]
  public static extern void WrappedServiceSkel_Type_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSkel_Type_get")]
  public static extern global::System.IntPtr WrappedServiceSkel_Type_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSkel_castobj_set")]
  public static extern void WrappedServiceSkel_castobj_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSkel_castobj_get")]
  public static extern global::System.IntPtr WrappedServiceSkel_castobj_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSkel_GetPipe")]
  public static extern global::System.IntPtr WrappedServiceSkel_GetPipe(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSkel_GetWire")]
  public static extern global::System.IntPtr WrappedServiceSkel_GetWire(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSkel_WrappedDispatchEvent")]
  public static extern void WrappedServiceSkel_WrappedDispatchEvent(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSkel_WrappedCallbackCall")]
  public static extern global::System.IntPtr WrappedServiceSkel_WrappedCallbackCall(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, uint jarg3, global::System.Runtime.InteropServices.HandleRef jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSkel_RRGetNode")]
  public static extern global::System.IntPtr WrappedServiceSkel_RRGetNode(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSkel_RegisterGeneratorServer")]
  public static extern int WrappedServiceSkel_RegisterGeneratorServer(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSkel_GetServicePath")]
  public static extern string WrappedServiceSkel_GetServicePath(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSkel_GetContext")]
  public static extern global::System.IntPtr WrappedServiceSkel_GetContext(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedServiceSkel")]
  public static extern global::System.IntPtr new_WrappedServiceSkel();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedServiceSkel")]
  public static extern void delete_WrappedServiceSkel(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServerServiceListenerDirector_objectheapid_set")]
  public static extern void ServerServiceListenerDirector_objectheapid_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServerServiceListenerDirector_objectheapid_get")]
  public static extern int ServerServiceListenerDirector_objectheapid_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_ServerServiceListenerDirector")]
  public static extern global::System.IntPtr new_ServerServiceListenerDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServerServiceListenerDirector_Callback")]
  public static extern void ServerServiceListenerDirector_Callback(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, uint jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServerServiceListenerDirector_CallbackSwigExplicitServerServiceListenerDirector")]
  public static extern void ServerServiceListenerDirector_CallbackSwigExplicitServerServiceListenerDirector(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, uint jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_ServerServiceListenerDirector")]
  public static extern void delete_ServerServiceListenerDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServerServiceListenerDirector_director_connect")]
  public static extern void ServerServiceListenerDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, ServerServiceListenerDirector.SwigDelegateServerServiceListenerDirector_0 delegate0);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServerContext_GetCurrentServicePath")]
  public static extern string ServerContext_GetCurrentServicePath();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServerContext__ReleaseServicePath__SWIG_0")]
  public static extern void ServerContext__ReleaseServicePath__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServerContext__ReleaseServicePath__SWIG_1")]
  public static extern void ServerContext__ReleaseServicePath__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServerContext_GetCurrentServerContext")]
  public static extern global::System.IntPtr ServerContext_GetCurrentServerContext();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServerContext_KickUser")]
  public static extern void ServerContext_KickUser(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServerContext__AddServerServiceListener")]
  public static extern void ServerContext__AddServerServiceListener(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServerContext__SetServiceAttributes")]
  public static extern void ServerContext__SetServiceAttributes(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServerContext_RequestObjectLock")]
  public static extern void ServerContext_RequestObjectLock(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServerContext_RequestClientObjectLock")]
  public static extern void ServerContext_RequestClientObjectLock(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3, uint jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServerContext_ReleaseObjectLock")]
  public static extern void ServerContext_ReleaseObjectLock(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3, bool jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServerContext_GetObjectLockUsername")]
  public static extern string ServerContext_GetObjectLockUsername(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServerContext_GetNode")]
  public static extern global::System.IntPtr ServerContext_GetNode(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServerContext_GetExtraImports")]
  public static extern global::System.IntPtr ServerContext_GetExtraImports(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServerContext_AddExtraImport")]
  public static extern void ServerContext_AddExtraImport(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServerContext_RemoveExtraImport")]
  public static extern bool ServerContext_RemoveExtraImport(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServerContext_GetCandidateConnectionURLs")]
  public static extern global::System.IntPtr ServerContext_GetCandidateConnectionURLs(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServerContext_PrintCandidateConnectionURLs")]
  public static extern void ServerContext_PrintCandidateConnectionURLs(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServerContext_LogCandidateConnectionURLs__SWIG_0")]
  public static extern void ServerContext_LogCandidateConnectionURLs__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServerContext_LogCandidateConnectionURLs__SWIG_1")]
  public static extern void ServerContext_LogCandidateConnectionURLs__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_ServerContext")]
  public static extern void delete_ServerContext(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AuthenticatedUser__GetUsername")]
  public static extern string AuthenticatedUser__GetUsername(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AuthenticatedUser__GetPrivileges")]
  public static extern global::System.IntPtr AuthenticatedUser__GetPrivileges(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AuthenticatedUser__GetProperties")]
  public static extern global::System.IntPtr AuthenticatedUser__GetProperties(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AuthenticatedUser__GetLoginTime")]
  public static extern long AuthenticatedUser__GetLoginTime(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AuthenticatedUser__GetLastAccessTime")]
  public static extern long AuthenticatedUser__GetLastAccessTime(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_AuthenticatedUser")]
  public static extern void delete_AuthenticatedUser(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServerEndpoint_GetCurrentEndpoint")]
  public static extern uint ServerEndpoint_GetCurrentEndpoint();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServerEndpoint_GetCurrentAuthenticatedUser")]
  public static extern global::System.IntPtr ServerEndpoint_GetCurrentAuthenticatedUser();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_ServerEndpoint")]
  public static extern void delete_ServerEndpoint(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSkelAsyncAdapter_MakeAsync")]
  public static extern void WrappedServiceSkelAsyncAdapter_MakeAsync(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSkelAsyncAdapter_IsAsync")]
  public static extern bool WrappedServiceSkelAsyncAdapter_IsAsync(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSkelAsyncAdapter_End__SWIG_0")]
  public static extern void WrappedServiceSkelAsyncAdapter_End__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSkelAsyncAdapter_End__SWIG_1")]
  public static extern void WrappedServiceSkelAsyncAdapter_End__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedServiceSkelAsyncAdapter")]
  public static extern void delete_WrappedServiceSkelAsyncAdapter(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NativeUserAuthenticator__AuthenticateUser")]
  public static extern global::System.IntPtr NativeUserAuthenticator__AuthenticateUser(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, global::System.Runtime.InteropServices.HandleRef jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_NativeUserAuthenticator")]
  public static extern void delete_NativeUserAuthenticator(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_ServiceSecurityPolicy")]
  public static extern global::System.IntPtr new_ServiceSecurityPolicy(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_ServiceSecurityPolicy")]
  public static extern void delete_ServiceSecurityPolicy(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_PasswordFileUserAuthenticator__SWIG_0")]
  public static extern global::System.IntPtr new_PasswordFileUserAuthenticator__SWIG_0(string jarg1, bool jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_PasswordFileUserAuthenticator__SWIG_1")]
  public static extern global::System.IntPtr new_PasswordFileUserAuthenticator__SWIG_1(string jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_PasswordFileUserAuthenticator")]
  public static extern void delete_PasswordFileUserAuthenticator(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedUserAuthenticatorDirector")]
  public static extern void delete_WrappedUserAuthenticatorDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedUserAuthenticatorDirector_AuthenticateUser")]
  public static extern global::System.IntPtr WrappedUserAuthenticatorDirector_AuthenticateUser(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, global::System.Runtime.InteropServices.HandleRef jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedUserAuthenticatorDirector")]
  public static extern global::System.IntPtr new_WrappedUserAuthenticatorDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedUserAuthenticatorDirector_director_connect")]
  public static extern void WrappedUserAuthenticatorDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, WrappedUserAuthenticatorDirector.SwigDelegateWrappedUserAuthenticatorDirector_0 delegate0);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedUserAuthenticator_SetRRDirector")]
  public static extern void WrappedUserAuthenticator_SetRRDirector(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedUserAuthenticator")]
  public static extern global::System.IntPtr new_WrappedUserAuthenticator();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedUserAuthenticator")]
  public static extern void delete_WrappedUserAuthenticator(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_AsyncServiceInfo2VectorReturnDirector")]
  public static extern void delete_AsyncServiceInfo2VectorReturnDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AsyncServiceInfo2VectorReturnDirector_handler")]
  public static extern void AsyncServiceInfo2VectorReturnDirector_handler(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_AsyncServiceInfo2VectorReturnDirector")]
  public static extern global::System.IntPtr new_AsyncServiceInfo2VectorReturnDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AsyncServiceInfo2VectorReturnDirector_director_connect")]
  public static extern void AsyncServiceInfo2VectorReturnDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, AsyncServiceInfo2VectorReturnDirector.SwigDelegateAsyncServiceInfo2VectorReturnDirector_0 delegate0);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_AsyncNodeInfo2VectorReturnDirector")]
  public static extern void delete_AsyncNodeInfo2VectorReturnDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AsyncNodeInfo2VectorReturnDirector_handler")]
  public static extern void AsyncNodeInfo2VectorReturnDirector_handler(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_AsyncNodeInfo2VectorReturnDirector")]
  public static extern global::System.IntPtr new_AsyncNodeInfo2VectorReturnDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AsyncNodeInfo2VectorReturnDirector_director_connect")]
  public static extern void AsyncNodeInfo2VectorReturnDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, AsyncNodeInfo2VectorReturnDirector.SwigDelegateAsyncNodeInfo2VectorReturnDirector_0 delegate0);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceInfo2Wrapped_Name_set")]
  public static extern void ServiceInfo2Wrapped_Name_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceInfo2Wrapped_Name_get")]
  public static extern string ServiceInfo2Wrapped_Name_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceInfo2Wrapped_RootObjectType_set")]
  public static extern void ServiceInfo2Wrapped_RootObjectType_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceInfo2Wrapped_RootObjectType_get")]
  public static extern string ServiceInfo2Wrapped_RootObjectType_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceInfo2Wrapped_RootObjectImplements_set")]
  public static extern void ServiceInfo2Wrapped_RootObjectImplements_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceInfo2Wrapped_RootObjectImplements_get")]
  public static extern global::System.IntPtr ServiceInfo2Wrapped_RootObjectImplements_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceInfo2Wrapped_ConnectionURL_set")]
  public static extern void ServiceInfo2Wrapped_ConnectionURL_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceInfo2Wrapped_ConnectionURL_get")]
  public static extern global::System.IntPtr ServiceInfo2Wrapped_ConnectionURL_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceInfo2Wrapped_Attributes_set")]
  public static extern void ServiceInfo2Wrapped_Attributes_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceInfo2Wrapped_Attributes_get")]
  public static extern global::System.IntPtr ServiceInfo2Wrapped_Attributes_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceInfo2Wrapped_NodeID_set")]
  public static extern void ServiceInfo2Wrapped_NodeID_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceInfo2Wrapped_NodeID_get")]
  public static extern global::System.IntPtr ServiceInfo2Wrapped_NodeID_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceInfo2Wrapped_NodeName_set")]
  public static extern void ServiceInfo2Wrapped_NodeName_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceInfo2Wrapped_NodeName_get")]
  public static extern string ServiceInfo2Wrapped_NodeName_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_ServiceInfo2Wrapped")]
  public static extern global::System.IntPtr new_ServiceInfo2Wrapped();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_ServiceInfo2Wrapped")]
  public static extern void delete_ServiceInfo2Wrapped(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedFindServiceByType")]
  public static extern global::System.IntPtr WrappedFindServiceByType(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AsyncWrappedFindServiceByType")]
  public static extern void AsyncWrappedFindServiceByType(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, int jarg4, global::System.Runtime.InteropServices.HandleRef jarg5, int jarg6);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorserviceinfo2wrapped_Clear")]
  public static extern void vectorserviceinfo2wrapped_Clear(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorserviceinfo2wrapped_Add")]
  public static extern void vectorserviceinfo2wrapped_Add(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorserviceinfo2wrapped_size")]
  public static extern uint vectorserviceinfo2wrapped_size(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorserviceinfo2wrapped_capacity")]
  public static extern uint vectorserviceinfo2wrapped_capacity(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorserviceinfo2wrapped_reserve")]
  public static extern void vectorserviceinfo2wrapped_reserve(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorserviceinfo2wrapped__SWIG_0")]
  public static extern global::System.IntPtr new_vectorserviceinfo2wrapped__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorserviceinfo2wrapped__SWIG_1")]
  public static extern global::System.IntPtr new_vectorserviceinfo2wrapped__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorserviceinfo2wrapped__SWIG_2")]
  public static extern global::System.IntPtr new_vectorserviceinfo2wrapped__SWIG_2(int jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorserviceinfo2wrapped_getitemcopy")]
  public static extern global::System.IntPtr vectorserviceinfo2wrapped_getitemcopy(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorserviceinfo2wrapped_getitem")]
  public static extern global::System.IntPtr vectorserviceinfo2wrapped_getitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorserviceinfo2wrapped_setitem")]
  public static extern void vectorserviceinfo2wrapped_setitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorserviceinfo2wrapped_AddRange")]
  public static extern void vectorserviceinfo2wrapped_AddRange(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorserviceinfo2wrapped_GetRange")]
  public static extern global::System.IntPtr vectorserviceinfo2wrapped_GetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorserviceinfo2wrapped_Insert")]
  public static extern void vectorserviceinfo2wrapped_Insert(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorserviceinfo2wrapped_InsertRange")]
  public static extern void vectorserviceinfo2wrapped_InsertRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorserviceinfo2wrapped_RemoveAt")]
  public static extern void vectorserviceinfo2wrapped_RemoveAt(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorserviceinfo2wrapped_RemoveRange")]
  public static extern void vectorserviceinfo2wrapped_RemoveRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorserviceinfo2wrapped_Repeat")]
  public static extern global::System.IntPtr vectorserviceinfo2wrapped_Repeat(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorserviceinfo2wrapped_Reverse__SWIG_0")]
  public static extern void vectorserviceinfo2wrapped_Reverse__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorserviceinfo2wrapped_Reverse__SWIG_1")]
  public static extern void vectorserviceinfo2wrapped_Reverse__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorserviceinfo2wrapped_SetRange")]
  public static extern void vectorserviceinfo2wrapped_SetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_vectorserviceinfo2wrapped")]
  public static extern void delete_vectorserviceinfo2wrapped(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedNodeInfo2_NodeID_set")]
  public static extern void WrappedNodeInfo2_NodeID_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedNodeInfo2_NodeID_get")]
  public static extern global::System.IntPtr WrappedNodeInfo2_NodeID_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedNodeInfo2_NodeName_set")]
  public static extern void WrappedNodeInfo2_NodeName_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedNodeInfo2_NodeName_get")]
  public static extern string WrappedNodeInfo2_NodeName_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedNodeInfo2_ConnectionURL_set")]
  public static extern void WrappedNodeInfo2_ConnectionURL_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedNodeInfo2_ConnectionURL_get")]
  public static extern global::System.IntPtr WrappedNodeInfo2_ConnectionURL_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedNodeInfo2")]
  public static extern global::System.IntPtr new_WrappedNodeInfo2();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedNodeInfo2")]
  public static extern void delete_WrappedNodeInfo2(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedFindNodeByID")]
  public static extern global::System.IntPtr WrappedFindNodeByID(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedFindNodeByName")]
  public static extern global::System.IntPtr WrappedFindNodeByName(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AsyncWrappedFindNodeByID")]
  public static extern void AsyncWrappedFindNodeByID(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, int jarg4, global::System.Runtime.InteropServices.HandleRef jarg5, int jarg6);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AsyncWrappedFindNodeByName")]
  public static extern void AsyncWrappedFindNodeByName(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, int jarg4, global::System.Runtime.InteropServices.HandleRef jarg5, int jarg6);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedUpdateDetectedNodes")]
  public static extern void WrappedUpdateDetectedNodes(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_AsyncWrappedUpdateDetectedNodes")]
  public static extern void AsyncWrappedUpdateDetectedNodes(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int jarg3, global::System.Runtime.InteropServices.HandleRef jarg4, int jarg5);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedGetDetectedNodes")]
  public static extern global::System.IntPtr WrappedGetDetectedNodes(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedGetDetectedNodeCacheInfo")]
  public static extern global::System.IntPtr WrappedGetDetectedNodeCacheInfo(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedTryGetDetectedNodeCacheInfo")]
  public static extern bool WrappedTryGetDetectedNodeCacheInfo(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectornodeinfo2_Clear")]
  public static extern void vectornodeinfo2_Clear(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectornodeinfo2_Add")]
  public static extern void vectornodeinfo2_Add(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectornodeinfo2_size")]
  public static extern uint vectornodeinfo2_size(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectornodeinfo2_capacity")]
  public static extern uint vectornodeinfo2_capacity(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectornodeinfo2_reserve")]
  public static extern void vectornodeinfo2_reserve(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectornodeinfo2__SWIG_0")]
  public static extern global::System.IntPtr new_vectornodeinfo2__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectornodeinfo2__SWIG_1")]
  public static extern global::System.IntPtr new_vectornodeinfo2__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectornodeinfo2__SWIG_2")]
  public static extern global::System.IntPtr new_vectornodeinfo2__SWIG_2(int jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectornodeinfo2_getitemcopy")]
  public static extern global::System.IntPtr vectornodeinfo2_getitemcopy(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectornodeinfo2_getitem")]
  public static extern global::System.IntPtr vectornodeinfo2_getitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectornodeinfo2_setitem")]
  public static extern void vectornodeinfo2_setitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectornodeinfo2_AddRange")]
  public static extern void vectornodeinfo2_AddRange(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectornodeinfo2_GetRange")]
  public static extern global::System.IntPtr vectornodeinfo2_GetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectornodeinfo2_Insert")]
  public static extern void vectornodeinfo2_Insert(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectornodeinfo2_InsertRange")]
  public static extern void vectornodeinfo2_InsertRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectornodeinfo2_RemoveAt")]
  public static extern void vectornodeinfo2_RemoveAt(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectornodeinfo2_RemoveRange")]
  public static extern void vectornodeinfo2_RemoveRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectornodeinfo2_Repeat")]
  public static extern global::System.IntPtr vectornodeinfo2_Repeat(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectornodeinfo2_Reverse__SWIG_0")]
  public static extern void vectornodeinfo2_Reverse__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectornodeinfo2_Reverse__SWIG_1")]
  public static extern void vectornodeinfo2_Reverse__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectornodeinfo2_SetRange")]
  public static extern void vectornodeinfo2_SetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_vectornodeinfo2")]
  public static extern void delete_vectornodeinfo2(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_map_subscriptionserviceinfo2__SWIG_0")]
  public static extern global::System.IntPtr new_map_subscriptionserviceinfo2__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_map_subscriptionserviceinfo2__SWIG_1")]
  public static extern global::System.IntPtr new_map_subscriptionserviceinfo2__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionserviceinfo2_size")]
  public static extern uint map_subscriptionserviceinfo2_size(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionserviceinfo2_empty")]
  public static extern bool map_subscriptionserviceinfo2_empty(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionserviceinfo2_Clear")]
  public static extern void map_subscriptionserviceinfo2_Clear(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionserviceinfo2_getitem")]
  public static extern global::System.IntPtr map_subscriptionserviceinfo2_getitem(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionserviceinfo2_setitem")]
  public static extern void map_subscriptionserviceinfo2_setitem(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionserviceinfo2_ContainsKey")]
  public static extern bool map_subscriptionserviceinfo2_ContainsKey(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionserviceinfo2_Add")]
  public static extern void map_subscriptionserviceinfo2_Add(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionserviceinfo2_Remove")]
  public static extern bool map_subscriptionserviceinfo2_Remove(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionserviceinfo2_create_iterator_begin")]
  public static extern global::System.IntPtr map_subscriptionserviceinfo2_create_iterator_begin(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionserviceinfo2_get_next_key")]
  public static extern global::System.IntPtr map_subscriptionserviceinfo2_get_next_key(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.IntPtr jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionserviceinfo2_destroy_iterator")]
  public static extern void map_subscriptionserviceinfo2_destroy_iterator(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.IntPtr jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_map_subscriptionserviceinfo2")]
  public static extern void delete_map_subscriptionserviceinfo2(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_map_subscriptionclients__SWIG_0")]
  public static extern global::System.IntPtr new_map_subscriptionclients__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_map_subscriptionclients__SWIG_1")]
  public static extern global::System.IntPtr new_map_subscriptionclients__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionclients_size")]
  public static extern uint map_subscriptionclients_size(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionclients_empty")]
  public static extern bool map_subscriptionclients_empty(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionclients_Clear")]
  public static extern void map_subscriptionclients_Clear(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionclients_getitem")]
  public static extern global::System.IntPtr map_subscriptionclients_getitem(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionclients_setitem")]
  public static extern void map_subscriptionclients_setitem(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionclients_ContainsKey")]
  public static extern bool map_subscriptionclients_ContainsKey(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionclients_Add")]
  public static extern void map_subscriptionclients_Add(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionclients_Remove")]
  public static extern bool map_subscriptionclients_Remove(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionclients_create_iterator_begin")]
  public static extern global::System.IntPtr map_subscriptionclients_create_iterator_begin(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionclients_get_next_key")]
  public static extern global::System.IntPtr map_subscriptionclients_get_next_key(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.IntPtr jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionclients_destroy_iterator")]
  public static extern void map_subscriptionclients_destroy_iterator(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.IntPtr jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_map_subscriptionclients")]
  public static extern void delete_map_subscriptionclients(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_wrappedservicesubscriptionnode_Clear")]
  public static extern void vectorptr_wrappedservicesubscriptionnode_Clear(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_wrappedservicesubscriptionnode_Add")]
  public static extern void vectorptr_wrappedservicesubscriptionnode_Add(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_wrappedservicesubscriptionnode_size")]
  public static extern uint vectorptr_wrappedservicesubscriptionnode_size(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_wrappedservicesubscriptionnode_capacity")]
  public static extern uint vectorptr_wrappedservicesubscriptionnode_capacity(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_wrappedservicesubscriptionnode_reserve")]
  public static extern void vectorptr_wrappedservicesubscriptionnode_reserve(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorptr_wrappedservicesubscriptionnode__SWIG_0")]
  public static extern global::System.IntPtr new_vectorptr_wrappedservicesubscriptionnode__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorptr_wrappedservicesubscriptionnode__SWIG_1")]
  public static extern global::System.IntPtr new_vectorptr_wrappedservicesubscriptionnode__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorptr_wrappedservicesubscriptionnode__SWIG_2")]
  public static extern global::System.IntPtr new_vectorptr_wrappedservicesubscriptionnode__SWIG_2(int jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_wrappedservicesubscriptionnode_getitemcopy")]
  public static extern global::System.IntPtr vectorptr_wrappedservicesubscriptionnode_getitemcopy(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_wrappedservicesubscriptionnode_getitem")]
  public static extern global::System.IntPtr vectorptr_wrappedservicesubscriptionnode_getitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_wrappedservicesubscriptionnode_setitem")]
  public static extern void vectorptr_wrappedservicesubscriptionnode_setitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_wrappedservicesubscriptionnode_AddRange")]
  public static extern void vectorptr_wrappedservicesubscriptionnode_AddRange(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_wrappedservicesubscriptionnode_GetRange")]
  public static extern global::System.IntPtr vectorptr_wrappedservicesubscriptionnode_GetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_wrappedservicesubscriptionnode_Insert")]
  public static extern void vectorptr_wrappedservicesubscriptionnode_Insert(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_wrappedservicesubscriptionnode_InsertRange")]
  public static extern void vectorptr_wrappedservicesubscriptionnode_InsertRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_wrappedservicesubscriptionnode_RemoveAt")]
  public static extern void vectorptr_wrappedservicesubscriptionnode_RemoveAt(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_wrappedservicesubscriptionnode_RemoveRange")]
  public static extern void vectorptr_wrappedservicesubscriptionnode_RemoveRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_wrappedservicesubscriptionnode_Repeat")]
  public static extern global::System.IntPtr vectorptr_wrappedservicesubscriptionnode_Repeat(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_wrappedservicesubscriptionnode_Reverse__SWIG_0")]
  public static extern void vectorptr_wrappedservicesubscriptionnode_Reverse__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_wrappedservicesubscriptionnode_Reverse__SWIG_1")]
  public static extern void vectorptr_wrappedservicesubscriptionnode_Reverse__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_wrappedservicesubscriptionnode_SetRange")]
  public static extern void vectorptr_wrappedservicesubscriptionnode_SetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_vectorptr_wrappedservicesubscriptionnode")]
  public static extern void delete_vectorptr_wrappedservicesubscriptionnode(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_subscriptionclientid_Clear")]
  public static extern void vectorptr_subscriptionclientid_Clear(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_subscriptionclientid_Add")]
  public static extern void vectorptr_subscriptionclientid_Add(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_subscriptionclientid_size")]
  public static extern uint vectorptr_subscriptionclientid_size(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_subscriptionclientid_capacity")]
  public static extern uint vectorptr_subscriptionclientid_capacity(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_subscriptionclientid_reserve")]
  public static extern void vectorptr_subscriptionclientid_reserve(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorptr_subscriptionclientid__SWIG_0")]
  public static extern global::System.IntPtr new_vectorptr_subscriptionclientid__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorptr_subscriptionclientid__SWIG_1")]
  public static extern global::System.IntPtr new_vectorptr_subscriptionclientid__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vectorptr_subscriptionclientid__SWIG_2")]
  public static extern global::System.IntPtr new_vectorptr_subscriptionclientid__SWIG_2(int jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_subscriptionclientid_getitemcopy")]
  public static extern global::System.IntPtr vectorptr_subscriptionclientid_getitemcopy(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_subscriptionclientid_getitem")]
  public static extern global::System.IntPtr vectorptr_subscriptionclientid_getitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_subscriptionclientid_setitem")]
  public static extern void vectorptr_subscriptionclientid_setitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_subscriptionclientid_AddRange")]
  public static extern void vectorptr_subscriptionclientid_AddRange(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_subscriptionclientid_GetRange")]
  public static extern global::System.IntPtr vectorptr_subscriptionclientid_GetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_subscriptionclientid_Insert")]
  public static extern void vectorptr_subscriptionclientid_Insert(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_subscriptionclientid_InsertRange")]
  public static extern void vectorptr_subscriptionclientid_InsertRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_subscriptionclientid_RemoveAt")]
  public static extern void vectorptr_subscriptionclientid_RemoveAt(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_subscriptionclientid_RemoveRange")]
  public static extern void vectorptr_subscriptionclientid_RemoveRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_subscriptionclientid_Repeat")]
  public static extern global::System.IntPtr vectorptr_subscriptionclientid_Repeat(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_subscriptionclientid_Reverse__SWIG_0")]
  public static extern void vectorptr_subscriptionclientid_Reverse__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_subscriptionclientid_Reverse__SWIG_1")]
  public static extern void vectorptr_subscriptionclientid_Reverse__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vectorptr_subscriptionclientid_SetRange")]
  public static extern void vectorptr_subscriptionclientid_SetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_vectorptr_subscriptionclientid")]
  public static extern void delete_vectorptr_subscriptionclientid(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_wrappedservicesubscriptionmanagerdetails_Clear")]
  public static extern void vector_wrappedservicesubscriptionmanagerdetails_Clear(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_wrappedservicesubscriptionmanagerdetails_Add")]
  public static extern void vector_wrappedservicesubscriptionmanagerdetails_Add(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_wrappedservicesubscriptionmanagerdetails_size")]
  public static extern uint vector_wrappedservicesubscriptionmanagerdetails_size(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_wrappedservicesubscriptionmanagerdetails_capacity")]
  public static extern uint vector_wrappedservicesubscriptionmanagerdetails_capacity(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_wrappedservicesubscriptionmanagerdetails_reserve")]
  public static extern void vector_wrappedservicesubscriptionmanagerdetails_reserve(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vector_wrappedservicesubscriptionmanagerdetails__SWIG_0")]
  public static extern global::System.IntPtr new_vector_wrappedservicesubscriptionmanagerdetails__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vector_wrappedservicesubscriptionmanagerdetails__SWIG_1")]
  public static extern global::System.IntPtr new_vector_wrappedservicesubscriptionmanagerdetails__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vector_wrappedservicesubscriptionmanagerdetails__SWIG_2")]
  public static extern global::System.IntPtr new_vector_wrappedservicesubscriptionmanagerdetails__SWIG_2(int jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_wrappedservicesubscriptionmanagerdetails_getitemcopy")]
  public static extern global::System.IntPtr vector_wrappedservicesubscriptionmanagerdetails_getitemcopy(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_wrappedservicesubscriptionmanagerdetails_getitem")]
  public static extern global::System.IntPtr vector_wrappedservicesubscriptionmanagerdetails_getitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_wrappedservicesubscriptionmanagerdetails_setitem")]
  public static extern void vector_wrappedservicesubscriptionmanagerdetails_setitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_wrappedservicesubscriptionmanagerdetails_AddRange")]
  public static extern void vector_wrappedservicesubscriptionmanagerdetails_AddRange(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_wrappedservicesubscriptionmanagerdetails_GetRange")]
  public static extern global::System.IntPtr vector_wrappedservicesubscriptionmanagerdetails_GetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_wrappedservicesubscriptionmanagerdetails_Insert")]
  public static extern void vector_wrappedservicesubscriptionmanagerdetails_Insert(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_wrappedservicesubscriptionmanagerdetails_InsertRange")]
  public static extern void vector_wrappedservicesubscriptionmanagerdetails_InsertRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_wrappedservicesubscriptionmanagerdetails_RemoveAt")]
  public static extern void vector_wrappedservicesubscriptionmanagerdetails_RemoveAt(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_wrappedservicesubscriptionmanagerdetails_RemoveRange")]
  public static extern void vector_wrappedservicesubscriptionmanagerdetails_RemoveRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_wrappedservicesubscriptionmanagerdetails_Repeat")]
  public static extern global::System.IntPtr vector_wrappedservicesubscriptionmanagerdetails_Repeat(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_wrappedservicesubscriptionmanagerdetails_Reverse__SWIG_0")]
  public static extern void vector_wrappedservicesubscriptionmanagerdetails_Reverse__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_wrappedservicesubscriptionmanagerdetails_Reverse__SWIG_1")]
  public static extern void vector_wrappedservicesubscriptionmanagerdetails_Reverse__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_wrappedservicesubscriptionmanagerdetails_SetRange")]
  public static extern void vector_wrappedservicesubscriptionmanagerdetails_SetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_vector_wrappedservicesubscriptionmanagerdetails")]
  public static extern void delete_vector_wrappedservicesubscriptionmanagerdetails(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceSubscriptionFilterAttribute_Name_set")]
  public static extern void ServiceSubscriptionFilterAttribute_Name_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceSubscriptionFilterAttribute_Name_get")]
  public static extern string ServiceSubscriptionFilterAttribute_Name_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceSubscriptionFilterAttribute_Value_set")]
  public static extern void ServiceSubscriptionFilterAttribute_Value_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceSubscriptionFilterAttribute_Value_get")]
  public static extern string ServiceSubscriptionFilterAttribute_Value_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceSubscriptionFilterAttribute_UseRegex_set")]
  public static extern void ServiceSubscriptionFilterAttribute_UseRegex_set(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceSubscriptionFilterAttribute_UseRegex_get")]
  public static extern bool ServiceSubscriptionFilterAttribute_UseRegex_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_ServiceSubscriptionFilterAttribute__SWIG_0")]
  public static extern global::System.IntPtr new_ServiceSubscriptionFilterAttribute__SWIG_0(string jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_ServiceSubscriptionFilterAttribute__SWIG_1")]
  public static extern global::System.IntPtr new_ServiceSubscriptionFilterAttribute__SWIG_1(string jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceSubscriptionFilterAttribute_IsMatch__SWIG_0")]
  public static extern bool ServiceSubscriptionFilterAttribute_IsMatch__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceSubscriptionFilterAttribute_IsMatch__SWIG_1")]
  public static extern bool ServiceSubscriptionFilterAttribute_IsMatch__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceSubscriptionFilterAttribute_IsMatch__SWIG_2")]
  public static extern bool ServiceSubscriptionFilterAttribute_IsMatch__SWIG_2(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceSubscriptionFilterAttribute_IsMatch__SWIG_3")]
  public static extern bool ServiceSubscriptionFilterAttribute_IsMatch__SWIG_3(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_ServiceSubscriptionFilterAttribute")]
  public static extern void delete_ServiceSubscriptionFilterAttribute(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_CreateServiceSubscriptionFilterAttributeRegex__SWIG_0")]
  public static extern global::System.IntPtr CreateServiceSubscriptionFilterAttributeRegex__SWIG_0(string jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_CreateServiceSubscriptionFilterAttributeRegex__SWIG_1")]
  public static extern global::System.IntPtr CreateServiceSubscriptionFilterAttributeRegex__SWIG_1(string jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_CreateServiceSubscriptionFilterAttributeIdentifier__SWIG_0")]
  public static extern global::System.IntPtr CreateServiceSubscriptionFilterAttributeIdentifier__SWIG_0(string jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_CreateServiceSubscriptionFilterAttributeIdentifier__SWIG_1")]
  public static extern global::System.IntPtr CreateServiceSubscriptionFilterAttributeIdentifier__SWIG_1(string jarg1, string jarg2, string jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_CreateServiceSubscriptionFilterAttributeCombinedIdentifier")]
  public static extern global::System.IntPtr CreateServiceSubscriptionFilterAttributeCombinedIdentifier(string jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_subscriptionattribute_Clear")]
  public static extern void vector_subscriptionattribute_Clear(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_subscriptionattribute_Add")]
  public static extern void vector_subscriptionattribute_Add(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_subscriptionattribute_size")]
  public static extern uint vector_subscriptionattribute_size(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_subscriptionattribute_capacity")]
  public static extern uint vector_subscriptionattribute_capacity(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_subscriptionattribute_reserve")]
  public static extern void vector_subscriptionattribute_reserve(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vector_subscriptionattribute__SWIG_0")]
  public static extern global::System.IntPtr new_vector_subscriptionattribute__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vector_subscriptionattribute__SWIG_1")]
  public static extern global::System.IntPtr new_vector_subscriptionattribute__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_vector_subscriptionattribute__SWIG_2")]
  public static extern global::System.IntPtr new_vector_subscriptionattribute__SWIG_2(int jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_subscriptionattribute_getitemcopy")]
  public static extern global::System.IntPtr vector_subscriptionattribute_getitemcopy(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_subscriptionattribute_getitem")]
  public static extern global::System.IntPtr vector_subscriptionattribute_getitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_subscriptionattribute_setitem")]
  public static extern void vector_subscriptionattribute_setitem(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_subscriptionattribute_AddRange")]
  public static extern void vector_subscriptionattribute_AddRange(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_subscriptionattribute_GetRange")]
  public static extern global::System.IntPtr vector_subscriptionattribute_GetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_subscriptionattribute_Insert")]
  public static extern void vector_subscriptionattribute_Insert(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_subscriptionattribute_InsertRange")]
  public static extern void vector_subscriptionattribute_InsertRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_subscriptionattribute_RemoveAt")]
  public static extern void vector_subscriptionattribute_RemoveAt(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_subscriptionattribute_RemoveRange")]
  public static extern void vector_subscriptionattribute_RemoveRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_subscriptionattribute_Repeat")]
  public static extern global::System.IntPtr vector_subscriptionattribute_Repeat(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_subscriptionattribute_Reverse__SWIG_0")]
  public static extern void vector_subscriptionattribute_Reverse__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_subscriptionattribute_Reverse__SWIG_1")]
  public static extern void vector_subscriptionattribute_Reverse__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_vector_subscriptionattribute_SetRange")]
  public static extern void vector_subscriptionattribute_SetRange(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_vector_subscriptionattribute")]
  public static extern void delete_vector_subscriptionattribute(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_map_subscriptionattribute__SWIG_0")]
  public static extern global::System.IntPtr new_map_subscriptionattribute__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_map_subscriptionattribute__SWIG_1")]
  public static extern global::System.IntPtr new_map_subscriptionattribute__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionattribute_size")]
  public static extern uint map_subscriptionattribute_size(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionattribute_empty")]
  public static extern bool map_subscriptionattribute_empty(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionattribute_Clear")]
  public static extern void map_subscriptionattribute_Clear(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionattribute_getitem")]
  public static extern global::System.IntPtr map_subscriptionattribute_getitem(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionattribute_setitem")]
  public static extern void map_subscriptionattribute_setitem(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionattribute_ContainsKey")]
  public static extern bool map_subscriptionattribute_ContainsKey(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionattribute_Add")]
  public static extern void map_subscriptionattribute_Add(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionattribute_Remove")]
  public static extern bool map_subscriptionattribute_Remove(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionattribute_create_iterator_begin")]
  public static extern global::System.IntPtr map_subscriptionattribute_create_iterator_begin(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionattribute_get_next_key")]
  public static extern string map_subscriptionattribute_get_next_key(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.IntPtr jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionattribute_destroy_iterator")]
  public static extern void map_subscriptionattribute_destroy_iterator(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.IntPtr jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_map_subscriptionattribute")]
  public static extern void delete_map_subscriptionattribute(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceSubscriptionFilterAttributeGroup_Attributes_set")]
  public static extern void ServiceSubscriptionFilterAttributeGroup_Attributes_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceSubscriptionFilterAttributeGroup_Attributes_get")]
  public static extern global::System.IntPtr ServiceSubscriptionFilterAttributeGroup_Attributes_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceSubscriptionFilterAttributeGroup_Groups_set")]
  public static extern void ServiceSubscriptionFilterAttributeGroup_Groups_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceSubscriptionFilterAttributeGroup_Groups_get")]
  public static extern global::System.IntPtr ServiceSubscriptionFilterAttributeGroup_Groups_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceSubscriptionFilterAttributeGroup_Operation_set")]
  public static extern void ServiceSubscriptionFilterAttributeGroup_Operation_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceSubscriptionFilterAttributeGroup_Operation_get")]
  public static extern int ServiceSubscriptionFilterAttributeGroup_Operation_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceSubscriptionFilterAttributeGroup_SplitStringAttribute_set")]
  public static extern void ServiceSubscriptionFilterAttributeGroup_SplitStringAttribute_set(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceSubscriptionFilterAttributeGroup_SplitStringAttribute_get")]
  public static extern bool ServiceSubscriptionFilterAttributeGroup_SplitStringAttribute_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceSubscriptionFilterAttributeGroup_SplitStringDelimiter_set")]
  public static extern void ServiceSubscriptionFilterAttributeGroup_SplitStringDelimiter_set(global::System.Runtime.InteropServices.HandleRef jarg1, char jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceSubscriptionFilterAttributeGroup_SplitStringDelimiter_get")]
  public static extern char ServiceSubscriptionFilterAttributeGroup_SplitStringDelimiter_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_ServiceSubscriptionFilterAttributeGroup__SWIG_0")]
  public static extern global::System.IntPtr new_ServiceSubscriptionFilterAttributeGroup__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_ServiceSubscriptionFilterAttributeGroup__SWIG_1")]
  public static extern global::System.IntPtr new_ServiceSubscriptionFilterAttributeGroup__SWIG_1(int jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_ServiceSubscriptionFilterAttributeGroup__SWIG_2")]
  public static extern global::System.IntPtr new_ServiceSubscriptionFilterAttributeGroup__SWIG_2(int jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_ServiceSubscriptionFilterAttributeGroup__SWIG_3")]
  public static extern global::System.IntPtr new_ServiceSubscriptionFilterAttributeGroup__SWIG_3(int jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceSubscriptionFilterAttributeGroup_IsMatch__SWIG_0")]
  public static extern bool ServiceSubscriptionFilterAttributeGroup_IsMatch__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceSubscriptionFilterAttributeGroup_IsMatch__SWIG_1")]
  public static extern bool ServiceSubscriptionFilterAttributeGroup_IsMatch__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ServiceSubscriptionFilterAttributeGroup_IsMatch__SWIG_2")]
  public static extern bool ServiceSubscriptionFilterAttributeGroup_IsMatch__SWIG_2(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_ServiceSubscriptionFilterAttributeGroup")]
  public static extern void delete_ServiceSubscriptionFilterAttributeGroup(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_map_subscriptionattributegroup__SWIG_0")]
  public static extern global::System.IntPtr new_map_subscriptionattributegroup__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_map_subscriptionattributegroup__SWIG_1")]
  public static extern global::System.IntPtr new_map_subscriptionattributegroup__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionattributegroup_size")]
  public static extern uint map_subscriptionattributegroup_size(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionattributegroup_empty")]
  public static extern bool map_subscriptionattributegroup_empty(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionattributegroup_Clear")]
  public static extern void map_subscriptionattributegroup_Clear(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionattributegroup_getitem")]
  public static extern global::System.IntPtr map_subscriptionattributegroup_getitem(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionattributegroup_setitem")]
  public static extern void map_subscriptionattributegroup_setitem(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionattributegroup_ContainsKey")]
  public static extern bool map_subscriptionattributegroup_ContainsKey(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionattributegroup_Add")]
  public static extern void map_subscriptionattributegroup_Add(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionattributegroup_Remove")]
  public static extern bool map_subscriptionattributegroup_Remove(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionattributegroup_create_iterator_begin")]
  public static extern global::System.IntPtr map_subscriptionattributegroup_create_iterator_begin(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionattributegroup_get_next_key")]
  public static extern string map_subscriptionattributegroup_get_next_key(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.IntPtr jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_map_subscriptionattributegroup_destroy_iterator")]
  public static extern void map_subscriptionattributegroup_destroy_iterator(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.IntPtr jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_map_subscriptionattributegroup")]
  public static extern void delete_map_subscriptionattributegroup(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionFilterPredicateDirector_Predicate")]
  public static extern bool WrappedServiceSubscriptionFilterPredicateDirector_Predicate(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedServiceSubscriptionFilterPredicateDirector")]
  public static extern void delete_WrappedServiceSubscriptionFilterPredicateDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedServiceSubscriptionFilterPredicateDirector")]
  public static extern global::System.IntPtr new_WrappedServiceSubscriptionFilterPredicateDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionFilterPredicateDirector_director_connect")]
  public static extern void WrappedServiceSubscriptionFilterPredicateDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, WrappedServiceSubscriptionFilterPredicateDirector.SwigDelegateWrappedServiceSubscriptionFilterPredicateDirector_0 delegate0);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionFilterNode_NodeID_set")]
  public static extern void WrappedServiceSubscriptionFilterNode_NodeID_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionFilterNode_NodeID_get")]
  public static extern global::System.IntPtr WrappedServiceSubscriptionFilterNode_NodeID_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionFilterNode_NodeName_set")]
  public static extern void WrappedServiceSubscriptionFilterNode_NodeName_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionFilterNode_NodeName_get")]
  public static extern string WrappedServiceSubscriptionFilterNode_NodeName_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionFilterNode_Username_set")]
  public static extern void WrappedServiceSubscriptionFilterNode_Username_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionFilterNode_Username_get")]
  public static extern string WrappedServiceSubscriptionFilterNode_Username_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionFilterNode_Credentials_set")]
  public static extern void WrappedServiceSubscriptionFilterNode_Credentials_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionFilterNode_Credentials_get")]
  public static extern global::System.IntPtr WrappedServiceSubscriptionFilterNode_Credentials_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedServiceSubscriptionFilterNode")]
  public static extern global::System.IntPtr new_WrappedServiceSubscriptionFilterNode();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedServiceSubscriptionFilterNode")]
  public static extern void delete_WrappedServiceSubscriptionFilterNode(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionFilter_Nodes_set")]
  public static extern void WrappedServiceSubscriptionFilter_Nodes_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionFilter_Nodes_get")]
  public static extern global::System.IntPtr WrappedServiceSubscriptionFilter_Nodes_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionFilter_ServiceNames_set")]
  public static extern void WrappedServiceSubscriptionFilter_ServiceNames_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionFilter_ServiceNames_get")]
  public static extern global::System.IntPtr WrappedServiceSubscriptionFilter_ServiceNames_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionFilter_TransportSchemes_set")]
  public static extern void WrappedServiceSubscriptionFilter_TransportSchemes_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionFilter_TransportSchemes_get")]
  public static extern global::System.IntPtr WrappedServiceSubscriptionFilter_TransportSchemes_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionFilter_Attributes_set")]
  public static extern void WrappedServiceSubscriptionFilter_Attributes_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionFilter_Attributes_get")]
  public static extern global::System.IntPtr WrappedServiceSubscriptionFilter_Attributes_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionFilter_AttributesMatchOperation_set")]
  public static extern void WrappedServiceSubscriptionFilter_AttributesMatchOperation_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionFilter_AttributesMatchOperation_get")]
  public static extern int WrappedServiceSubscriptionFilter_AttributesMatchOperation_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionFilter_SetRRPredicateDirector")]
  public static extern void WrappedServiceSubscriptionFilter_SetRRPredicateDirector(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionFilter_MaxConnections_set")]
  public static extern void WrappedServiceSubscriptionFilter_MaxConnections_set(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionFilter_MaxConnections_get")]
  public static extern uint WrappedServiceSubscriptionFilter_MaxConnections_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedServiceSubscriptionFilter")]
  public static extern global::System.IntPtr new_WrappedServiceSubscriptionFilter();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedServiceSubscriptionFilter")]
  public static extern void delete_WrappedServiceSubscriptionFilter(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionClientID_NodeID_set")]
  public static extern void WrappedServiceSubscriptionClientID_NodeID_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionClientID_NodeID_get")]
  public static extern global::System.IntPtr WrappedServiceSubscriptionClientID_NodeID_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionClientID_ServiceName_set")]
  public static extern void WrappedServiceSubscriptionClientID_ServiceName_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionClientID_ServiceName_get")]
  public static extern string WrappedServiceSubscriptionClientID_ServiceName_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionClientID_eq")]
  public static extern bool WrappedServiceSubscriptionClientID_eq(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionClientID_ne")]
  public static extern bool WrappedServiceSubscriptionClientID_ne(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedServiceSubscriptionClientID")]
  public static extern void delete_WrappedServiceSubscriptionClientID(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceInfo2SubscriptionDirector_ServiceDetected")]
  public static extern void WrappedServiceInfo2SubscriptionDirector_ServiceDetected(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, global::System.Runtime.InteropServices.HandleRef jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceInfo2SubscriptionDirector_ServiceLost")]
  public static extern void WrappedServiceInfo2SubscriptionDirector_ServiceLost(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, global::System.Runtime.InteropServices.HandleRef jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedServiceInfo2SubscriptionDirector")]
  public static extern void delete_WrappedServiceInfo2SubscriptionDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedServiceInfo2SubscriptionDirector")]
  public static extern global::System.IntPtr new_WrappedServiceInfo2SubscriptionDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceInfo2SubscriptionDirector_director_connect")]
  public static extern void WrappedServiceInfo2SubscriptionDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, WrappedServiceInfo2SubscriptionDirector.SwigDelegateWrappedServiceInfo2SubscriptionDirector_0 delegate0, WrappedServiceInfo2SubscriptionDirector.SwigDelegateWrappedServiceInfo2SubscriptionDirector_1 delegate1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceInfo2Subscription_GetDetectedServiceInfo2")]
  public static extern global::System.IntPtr WrappedServiceInfo2Subscription_GetDetectedServiceInfo2(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceInfo2Subscription_Close")]
  public static extern void WrappedServiceInfo2Subscription_Close(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceInfo2Subscription_SetRRDirector")]
  public static extern void WrappedServiceInfo2Subscription_SetRRDirector(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceInfo2Subscription_GetNode")]
  public static extern global::System.IntPtr WrappedServiceInfo2Subscription_GetNode(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedServiceInfo2Subscription")]
  public static extern void delete_WrappedServiceInfo2Subscription(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionDirector_ClientConnected")]
  public static extern void WrappedServiceSubscriptionDirector_ClientConnected(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, global::System.Runtime.InteropServices.HandleRef jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionDirector_ClientDisconnected")]
  public static extern void WrappedServiceSubscriptionDirector_ClientDisconnected(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, global::System.Runtime.InteropServices.HandleRef jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionDirector_ClientConnectFailed")]
  public static extern void WrappedServiceSubscriptionDirector_ClientConnectFailed(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, global::System.Runtime.InteropServices.HandleRef jarg4, global::System.Runtime.InteropServices.HandleRef jarg5);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedServiceSubscriptionDirector")]
  public static extern void delete_WrappedServiceSubscriptionDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedServiceSubscriptionDirector")]
  public static extern global::System.IntPtr new_WrappedServiceSubscriptionDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionDirector_director_connect")]
  public static extern void WrappedServiceSubscriptionDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, WrappedServiceSubscriptionDirector.SwigDelegateWrappedServiceSubscriptionDirector_0 delegate0, WrappedServiceSubscriptionDirector.SwigDelegateWrappedServiceSubscriptionDirector_1 delegate1, WrappedServiceSubscriptionDirector.SwigDelegateWrappedServiceSubscriptionDirector_2 delegate2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_TryDefaultClientRes_res_set")]
  public static extern void WrappedServiceSubscription_TryDefaultClientRes_res_set(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_TryDefaultClientRes_res_get")]
  public static extern bool WrappedServiceSubscription_TryDefaultClientRes_res_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_TryDefaultClientRes_client_set")]
  public static extern void WrappedServiceSubscription_TryDefaultClientRes_client_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_TryDefaultClientRes_client_get")]
  public static extern global::System.IntPtr WrappedServiceSubscription_TryDefaultClientRes_client_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedServiceSubscription_TryDefaultClientRes")]
  public static extern global::System.IntPtr new_WrappedServiceSubscription_TryDefaultClientRes();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedServiceSubscription_TryDefaultClientRes")]
  public static extern void delete_WrappedServiceSubscription_TryDefaultClientRes(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_GetConnectedClients")]
  public static extern global::System.IntPtr WrappedServiceSubscription_GetConnectedClients(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_Close")]
  public static extern void WrappedServiceSubscription_Close(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_ClaimClient")]
  public static extern void WrappedServiceSubscription_ClaimClient(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_ReleaseClient")]
  public static extern void WrappedServiceSubscription_ReleaseClient(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_GetConnectRetryDelay")]
  public static extern uint WrappedServiceSubscription_GetConnectRetryDelay(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_SetConnectRetryDelay")]
  public static extern void WrappedServiceSubscription_SetConnectRetryDelay(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_SubscribeWire")]
  public static extern global::System.IntPtr WrappedServiceSubscription_SubscribeWire(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_SubscribePipe__SWIG_0")]
  public static extern global::System.IntPtr WrappedServiceSubscription_SubscribePipe__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3, int jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_SubscribePipe__SWIG_1")]
  public static extern global::System.IntPtr WrappedServiceSubscription_SubscribePipe__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_GetDefaultClient")]
  public static extern global::System.IntPtr WrappedServiceSubscription_GetDefaultClient(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_TryGetDefaultClient")]
  public static extern global::System.IntPtr WrappedServiceSubscription_TryGetDefaultClient(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_GetDefaultClientWait__SWIG_0")]
  public static extern global::System.IntPtr WrappedServiceSubscription_GetDefaultClientWait__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_GetDefaultClientWait__SWIG_1")]
  public static extern global::System.IntPtr WrappedServiceSubscription_GetDefaultClientWait__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_TryGetDefaultClientWait__SWIG_0")]
  public static extern global::System.IntPtr WrappedServiceSubscription_TryGetDefaultClientWait__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_TryGetDefaultClientWait__SWIG_1")]
  public static extern global::System.IntPtr WrappedServiceSubscription_TryGetDefaultClientWait__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_AsyncGetDefaultClient")]
  public static extern void WrappedServiceSubscription_AsyncGetDefaultClient(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, int jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_SetRRDirector")]
  public static extern void WrappedServiceSubscription_SetRRDirector(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_GetNode")]
  public static extern global::System.IntPtr WrappedServiceSubscription_GetNode(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_GetServiceURL")]
  public static extern global::System.IntPtr WrappedServiceSubscription_GetServiceURL(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_UpdateServiceURL__SWIG_0")]
  public static extern void WrappedServiceSubscription_UpdateServiceURL__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, string jarg3, global::System.Runtime.InteropServices.HandleRef jarg4, string jarg5, bool jarg6);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_UpdateServiceURL__SWIG_1")]
  public static extern void WrappedServiceSubscription_UpdateServiceURL__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, string jarg3, global::System.Runtime.InteropServices.HandleRef jarg4, string jarg5);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_UpdateServiceURL__SWIG_2")]
  public static extern void WrappedServiceSubscription_UpdateServiceURL__SWIG_2(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, string jarg3, global::System.Runtime.InteropServices.HandleRef jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_UpdateServiceURL__SWIG_3")]
  public static extern void WrappedServiceSubscription_UpdateServiceURL__SWIG_3(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, string jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_UpdateServiceURL__SWIG_4")]
  public static extern void WrappedServiceSubscription_UpdateServiceURL__SWIG_4(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_UpdateServiceURL__SWIG_5")]
  public static extern void WrappedServiceSubscription_UpdateServiceURL__SWIG_5(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3, global::System.Runtime.InteropServices.HandleRef jarg4, string jarg5, bool jarg6);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_UpdateServiceURL__SWIG_6")]
  public static extern void WrappedServiceSubscription_UpdateServiceURL__SWIG_6(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3, global::System.Runtime.InteropServices.HandleRef jarg4, string jarg5);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_UpdateServiceURL__SWIG_7")]
  public static extern void WrappedServiceSubscription_UpdateServiceURL__SWIG_7(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3, global::System.Runtime.InteropServices.HandleRef jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_UpdateServiceURL__SWIG_8")]
  public static extern void WrappedServiceSubscription_UpdateServiceURL__SWIG_8(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_UpdateServiceURL__SWIG_9")]
  public static extern void WrappedServiceSubscription_UpdateServiceURL__SWIG_9(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_UpdateServiceByType__SWIG_0")]
  public static extern void WrappedServiceSubscription_UpdateServiceByType__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_UpdateServiceByType__SWIG_1")]
  public static extern void WrappedServiceSubscription_UpdateServiceByType__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_SubscribeSubObject__SWIG_0")]
  public static extern global::System.IntPtr WrappedServiceSubscription_SubscribeSubObject__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscription_SubscribeSubObject__SWIG_1")]
  public static extern global::System.IntPtr WrappedServiceSubscription_SubscribeSubObject__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedServiceSubscription")]
  public static extern void delete_WrappedServiceSubscription(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireSubscriptionDirector_WireValueChanged")]
  public static extern void WrappedWireSubscriptionDirector_WireValueChanged(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, global::System.Runtime.InteropServices.HandleRef jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedWireSubscriptionDirector")]
  public static extern void delete_WrappedWireSubscriptionDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedWireSubscriptionDirector")]
  public static extern global::System.IntPtr new_WrappedWireSubscriptionDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireSubscriptionDirector_director_connect")]
  public static extern void WrappedWireSubscriptionDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, WrappedWireSubscriptionDirector.SwigDelegateWrappedWireSubscriptionDirector_0 delegate0);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireSubscription_GetInValue__SWIG_0")]
  public static extern global::System.IntPtr WrappedWireSubscription_GetInValue__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireSubscription_GetInValue__SWIG_1")]
  public static extern global::System.IntPtr WrappedWireSubscription_GetInValue__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireSubscription_TryGetInValue__SWIG_0")]
  public static extern bool WrappedWireSubscription_TryGetInValue__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireSubscription_TryGetInValue__SWIG_1")]
  public static extern bool WrappedWireSubscription_TryGetInValue__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireSubscription_WaitInValueValid__SWIG_0")]
  public static extern bool WrappedWireSubscription_WaitInValueValid__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireSubscription_WaitInValueValid__SWIG_1")]
  public static extern bool WrappedWireSubscription_WaitInValueValid__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireSubscription_GetIgnoreInValue")]
  public static extern bool WrappedWireSubscription_GetIgnoreInValue(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireSubscription_SetIgnoreInValue")]
  public static extern void WrappedWireSubscription_SetIgnoreInValue(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireSubscription_GetInValueLifespan")]
  public static extern int WrappedWireSubscription_GetInValueLifespan(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireSubscription_SetInValueLifespan")]
  public static extern void WrappedWireSubscription_SetInValueLifespan(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireSubscription_GetActiveWireConnectionCount")]
  public static extern uint WrappedWireSubscription_GetActiveWireConnectionCount(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireSubscription_Close")]
  public static extern void WrappedWireSubscription_Close(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireSubscription_SetRRDirector")]
  public static extern void WrappedWireSubscription_SetRRDirector(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireSubscription_GetNode")]
  public static extern global::System.IntPtr WrappedWireSubscription_GetNode(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedWireSubscription")]
  public static extern void delete_WrappedWireSubscription(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedWireSubscription_send_iterator")]
  public static extern global::System.IntPtr new_WrappedWireSubscription_send_iterator(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireSubscription_send_iterator_Next")]
  public static extern global::System.IntPtr WrappedWireSubscription_send_iterator_Next(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireSubscription_send_iterator_SetOutValue")]
  public static extern void WrappedWireSubscription_send_iterator_SetOutValue(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireSubscription_send_iterator_GetType")]
  public static extern global::System.IntPtr WrappedWireSubscription_send_iterator_GetType(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedWireSubscription_send_iterator_GetStub")]
  public static extern global::System.IntPtr WrappedWireSubscription_send_iterator_GetStub(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedWireSubscription_send_iterator")]
  public static extern void delete_WrappedWireSubscription_send_iterator(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeSubscriptionDirector_PipePacketReceived")]
  public static extern void WrappedPipeSubscriptionDirector_PipePacketReceived(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedPipeSubscriptionDirector")]
  public static extern void delete_WrappedPipeSubscriptionDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedPipeSubscriptionDirector")]
  public static extern global::System.IntPtr new_WrappedPipeSubscriptionDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeSubscriptionDirector_director_connect")]
  public static extern void WrappedPipeSubscriptionDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, WrappedPipeSubscriptionDirector.SwigDelegateWrappedPipeSubscriptionDirector_0 delegate0);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeSubscription_ReceivePacket")]
  public static extern global::System.IntPtr WrappedPipeSubscription_ReceivePacket(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeSubscription_TryReceivePacket")]
  public static extern bool WrappedPipeSubscription_TryReceivePacket(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeSubscription_TryReceivePacketWait__SWIG_0")]
  public static extern bool WrappedPipeSubscription_TryReceivePacketWait__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int jarg3, bool jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeSubscription_TryReceivePacketWait__SWIG_1")]
  public static extern bool WrappedPipeSubscription_TryReceivePacketWait__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeSubscription_TryReceivePacketWait__SWIG_2")]
  public static extern bool WrappedPipeSubscription_TryReceivePacketWait__SWIG_2(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeSubscription_Available")]
  public static extern uint WrappedPipeSubscription_Available(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeSubscription_GetActivePipeEndpointCount")]
  public static extern uint WrappedPipeSubscription_GetActivePipeEndpointCount(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeSubscription_GetIgnoreReceived")]
  public static extern bool WrappedPipeSubscription_GetIgnoreReceived(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeSubscription_SetIgnoreReceived")]
  public static extern void WrappedPipeSubscription_SetIgnoreReceived(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeSubscription_Close")]
  public static extern void WrappedPipeSubscription_Close(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeSubscription_SetRRDirector")]
  public static extern void WrappedPipeSubscription_SetRRDirector(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeSubscription_GetNode")]
  public static extern global::System.IntPtr WrappedPipeSubscription_GetNode(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedPipeSubscription")]
  public static extern void delete_WrappedPipeSubscription(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedPipeSubscription_send_iterator")]
  public static extern global::System.IntPtr new_WrappedPipeSubscription_send_iterator(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeSubscription_send_iterator_Next")]
  public static extern global::System.IntPtr WrappedPipeSubscription_send_iterator_Next(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeSubscription_send_iterator_AsyncSendPacket")]
  public static extern void WrappedPipeSubscription_send_iterator_AsyncSendPacket(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeSubscription_send_iterator_GetType")]
  public static extern global::System.IntPtr WrappedPipeSubscription_send_iterator_GetType(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedPipeSubscription_send_iterator_GetStub")]
  public static extern global::System.IntPtr WrappedPipeSubscription_send_iterator_GetStub(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedPipeSubscription_send_iterator")]
  public static extern void delete_WrappedPipeSubscription_send_iterator(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedSubObjectSubscription_GetDefaultClient")]
  public static extern global::System.IntPtr WrappedSubObjectSubscription_GetDefaultClient(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedSubObjectSubscription_TryGetDefaultClient")]
  public static extern global::System.IntPtr WrappedSubObjectSubscription_TryGetDefaultClient(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedSubObjectSubscription_GetDefaultClientWait__SWIG_0")]
  public static extern global::System.IntPtr WrappedSubObjectSubscription_GetDefaultClientWait__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedSubObjectSubscription_GetDefaultClientWait__SWIG_1")]
  public static extern global::System.IntPtr WrappedSubObjectSubscription_GetDefaultClientWait__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedSubObjectSubscription_TryGetDefaultClientWait__SWIG_0")]
  public static extern global::System.IntPtr WrappedSubObjectSubscription_TryGetDefaultClientWait__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedSubObjectSubscription_TryGetDefaultClientWait__SWIG_1")]
  public static extern global::System.IntPtr WrappedSubObjectSubscription_TryGetDefaultClientWait__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedSubObjectSubscription_AsyncGetDefaultClient")]
  public static extern void WrappedSubObjectSubscription_AsyncGetDefaultClient(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, int jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedSubObjectSubscription_Close")]
  public static extern void WrappedSubObjectSubscription_Close(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedSubObjectSubscription_GetNode")]
  public static extern global::System.IntPtr WrappedSubObjectSubscription_GetNode(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedSubObjectSubscription")]
  public static extern void delete_WrappedSubObjectSubscription(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceInfo2SubscriptionServicesToVector")]
  public static extern global::System.IntPtr WrappedServiceInfo2SubscriptionServicesToVector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedSubscribeServiceInfo2__SWIG_0")]
  public static extern global::System.IntPtr WrappedSubscribeServiceInfo2__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedSubscribeServiceInfo2__SWIG_1")]
  public static extern global::System.IntPtr WrappedSubscribeServiceInfo2__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionClientsToVector")]
  public static extern global::System.IntPtr WrappedServiceSubscriptionClientsToVector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedSubscribeServiceByType__SWIG_0")]
  public static extern global::System.IntPtr WrappedSubscribeServiceByType__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedSubscribeServiceByType__SWIG_1")]
  public static extern global::System.IntPtr WrappedSubscribeServiceByType__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedSubscribeService__SWIG_0")]
  public static extern global::System.IntPtr WrappedSubscribeService__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, string jarg3, global::System.Runtime.InteropServices.HandleRef jarg4, string jarg5);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedSubscribeService__SWIG_1")]
  public static extern global::System.IntPtr WrappedSubscribeService__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, string jarg3, global::System.Runtime.InteropServices.HandleRef jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedSubscribeService__SWIG_2")]
  public static extern global::System.IntPtr WrappedSubscribeService__SWIG_2(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, string jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedSubscribeService__SWIG_3")]
  public static extern global::System.IntPtr WrappedSubscribeService__SWIG_3(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedSubscribeService__SWIG_4")]
  public static extern global::System.IntPtr WrappedSubscribeService__SWIG_4(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3, global::System.Runtime.InteropServices.HandleRef jarg4, string jarg5);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedSubscribeService__SWIG_5")]
  public static extern global::System.IntPtr WrappedSubscribeService__SWIG_5(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3, global::System.Runtime.InteropServices.HandleRef jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedSubscribeService__SWIG_6")]
  public static extern global::System.IntPtr WrappedSubscribeService__SWIG_6(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedSubscribeService__SWIG_7")]
  public static extern global::System.IntPtr WrappedSubscribeService__SWIG_7(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionManagerDetails_Name_set")]
  public static extern void WrappedServiceSubscriptionManagerDetails_Name_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionManagerDetails_Name_get")]
  public static extern string WrappedServiceSubscriptionManagerDetails_Name_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionManagerDetails_ConnectionMethod_set")]
  public static extern void WrappedServiceSubscriptionManagerDetails_ConnectionMethod_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionManagerDetails_ConnectionMethod_get")]
  public static extern int WrappedServiceSubscriptionManagerDetails_ConnectionMethod_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionManagerDetails_Urls_set")]
  public static extern void WrappedServiceSubscriptionManagerDetails_Urls_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionManagerDetails_Urls_get")]
  public static extern global::System.IntPtr WrappedServiceSubscriptionManagerDetails_Urls_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionManagerDetails_UrlUsername_set")]
  public static extern void WrappedServiceSubscriptionManagerDetails_UrlUsername_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionManagerDetails_UrlUsername_get")]
  public static extern string WrappedServiceSubscriptionManagerDetails_UrlUsername_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionManagerDetails_UrlCredentials_set")]
  public static extern void WrappedServiceSubscriptionManagerDetails_UrlCredentials_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionManagerDetails_UrlCredentials_get")]
  public static extern global::System.IntPtr WrappedServiceSubscriptionManagerDetails_UrlCredentials_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionManagerDetails_ServiceTypes_set")]
  public static extern void WrappedServiceSubscriptionManagerDetails_ServiceTypes_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionManagerDetails_ServiceTypes_get")]
  public static extern global::System.IntPtr WrappedServiceSubscriptionManagerDetails_ServiceTypes_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionManagerDetails_Filter_set")]
  public static extern void WrappedServiceSubscriptionManagerDetails_Filter_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionManagerDetails_Filter_get")]
  public static extern global::System.IntPtr WrappedServiceSubscriptionManagerDetails_Filter_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionManagerDetails_Enabled_set")]
  public static extern void WrappedServiceSubscriptionManagerDetails_Enabled_set(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionManagerDetails_Enabled_get")]
  public static extern bool WrappedServiceSubscriptionManagerDetails_Enabled_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedServiceSubscriptionManagerDetails__SWIG_0")]
  public static extern global::System.IntPtr new_WrappedServiceSubscriptionManagerDetails__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedServiceSubscriptionManagerDetails__SWIG_1")]
  public static extern global::System.IntPtr new_WrappedServiceSubscriptionManagerDetails__SWIG_1(string jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, string jarg4, global::System.Runtime.InteropServices.HandleRef jarg5, global::System.Runtime.InteropServices.HandleRef jarg6, global::System.Runtime.InteropServices.HandleRef jarg7, bool jarg8);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedServiceSubscriptionManagerDetails__SWIG_2")]
  public static extern global::System.IntPtr new_WrappedServiceSubscriptionManagerDetails__SWIG_2(string jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, string jarg4, global::System.Runtime.InteropServices.HandleRef jarg5, global::System.Runtime.InteropServices.HandleRef jarg6, global::System.Runtime.InteropServices.HandleRef jarg7);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedServiceSubscriptionManagerDetails__SWIG_3")]
  public static extern global::System.IntPtr new_WrappedServiceSubscriptionManagerDetails__SWIG_3(string jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, string jarg4, global::System.Runtime.InteropServices.HandleRef jarg5, global::System.Runtime.InteropServices.HandleRef jarg6);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedServiceSubscriptionManagerDetails__SWIG_4")]
  public static extern global::System.IntPtr new_WrappedServiceSubscriptionManagerDetails__SWIG_4(string jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, string jarg4, global::System.Runtime.InteropServices.HandleRef jarg5);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedServiceSubscriptionManagerDetails__SWIG_5")]
  public static extern global::System.IntPtr new_WrappedServiceSubscriptionManagerDetails__SWIG_5(string jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, string jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedServiceSubscriptionManagerDetails__SWIG_6")]
  public static extern global::System.IntPtr new_WrappedServiceSubscriptionManagerDetails__SWIG_6(string jarg1, int jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedServiceSubscriptionManagerDetails__SWIG_7")]
  public static extern global::System.IntPtr new_WrappedServiceSubscriptionManagerDetails__SWIG_7(string jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedServiceSubscriptionManagerDetails__SWIG_8")]
  public static extern global::System.IntPtr new_WrappedServiceSubscriptionManagerDetails__SWIG_8(string jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedServiceSubscriptionManagerDetails")]
  public static extern void delete_WrappedServiceSubscriptionManagerDetails(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedServiceSubscriptionManager__SWIG_0")]
  public static extern global::System.IntPtr new_WrappedServiceSubscriptionManager__SWIG_0();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedServiceSubscriptionManager__SWIG_1")]
  public static extern global::System.IntPtr new_WrappedServiceSubscriptionManager__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedServiceSubscriptionManager__SWIG_2")]
  public static extern global::System.IntPtr new_WrappedServiceSubscriptionManager__SWIG_2(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedServiceSubscriptionManager__SWIG_3")]
  public static extern global::System.IntPtr new_WrappedServiceSubscriptionManager__SWIG_3(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionManager_AddSubscription")]
  public static extern void WrappedServiceSubscriptionManager_AddSubscription(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionManager_RemoveSubscription__SWIG_0")]
  public static extern void WrappedServiceSubscriptionManager_RemoveSubscription__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, bool jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionManager_RemoveSubscription__SWIG_1")]
  public static extern void WrappedServiceSubscriptionManager_RemoveSubscription__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionManager_EnableSubscription")]
  public static extern void WrappedServiceSubscriptionManager_EnableSubscription(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionManager_DisableSubscription__SWIG_0")]
  public static extern void WrappedServiceSubscriptionManager_DisableSubscription__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, bool jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionManager_DisableSubscription__SWIG_1")]
  public static extern void WrappedServiceSubscriptionManager_DisableSubscription__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionManager_GetSubscription__SWIG_0")]
  public static extern global::System.IntPtr WrappedServiceSubscriptionManager_GetSubscription__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, bool jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionManager_GetSubscription__SWIG_1")]
  public static extern global::System.IntPtr WrappedServiceSubscriptionManager_GetSubscription__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionManager_IsConnected")]
  public static extern bool WrappedServiceSubscriptionManager_IsConnected(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionManager_IsEnabled")]
  public static extern bool WrappedServiceSubscriptionManager_IsEnabled(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionManager_Close__SWIG_0")]
  public static extern void WrappedServiceSubscriptionManager_Close__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, bool jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionManager_Close__SWIG_1")]
  public static extern void WrappedServiceSubscriptionManager_Close__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionManager_GetSubscriptionNames")]
  public static extern global::System.IntPtr WrappedServiceSubscriptionManager_GetSubscriptionNames(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionManager_GetSubscriptionDetails")]
  public static extern global::System.IntPtr WrappedServiceSubscriptionManager_GetSubscriptionDetails(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceSubscriptionManager_GetNode")]
  public static extern global::System.IntPtr WrappedServiceSubscriptionManager_GetNode(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedServiceSubscriptionManager")]
  public static extern void delete_WrappedServiceSubscriptionManager(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRLogRecord__GetNode")]
  public static extern global::System.IntPtr RRLogRecord__GetNode(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRLogRecord__SetNode")]
  public static extern void RRLogRecord__SetNode(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRLogRecord_Level_set")]
  public static extern void RRLogRecord_Level_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRLogRecord_Level_get")]
  public static extern int RRLogRecord_Level_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRLogRecord_Component_set")]
  public static extern void RRLogRecord_Component_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRLogRecord_Component_get")]
  public static extern int RRLogRecord_Component_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRLogRecord_ComponentName_set")]
  public static extern void RRLogRecord_ComponentName_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRLogRecord_ComponentName_get")]
  public static extern string RRLogRecord_ComponentName_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRLogRecord_ComponentObjectID_set")]
  public static extern void RRLogRecord_ComponentObjectID_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRLogRecord_ComponentObjectID_get")]
  public static extern string RRLogRecord_ComponentObjectID_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRLogRecord_Endpoint_set")]
  public static extern void RRLogRecord_Endpoint_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRLogRecord_Endpoint_get")]
  public static extern int RRLogRecord_Endpoint_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRLogRecord_ServicePath_set")]
  public static extern void RRLogRecord_ServicePath_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRLogRecord_ServicePath_get")]
  public static extern string RRLogRecord_ServicePath_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRLogRecord_Member_set")]
  public static extern void RRLogRecord_Member_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRLogRecord_Member_get")]
  public static extern string RRLogRecord_Member_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRLogRecord_Message_set")]
  public static extern void RRLogRecord_Message_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRLogRecord_Message_get")]
  public static extern string RRLogRecord_Message_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRLogRecord_Time_set")]
  public static extern void RRLogRecord_Time_set(global::System.Runtime.InteropServices.HandleRef jarg1, long jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRLogRecord_Time_get")]
  public static extern long RRLogRecord_Time_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRLogRecord_SourceFile_set")]
  public static extern void RRLogRecord_SourceFile_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRLogRecord_SourceFile_get")]
  public static extern string RRLogRecord_SourceFile_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRLogRecord_SourceLine_set")]
  public static extern void RRLogRecord_SourceLine_set(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRLogRecord_SourceLine_get")]
  public static extern uint RRLogRecord_SourceLine_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRLogRecord_ThreadID_set")]
  public static extern void RRLogRecord_ThreadID_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRLogRecord_ThreadID_get")]
  public static extern string RRLogRecord_ThreadID_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRLogRecord_FiberID_set")]
  public static extern void RRLogRecord_FiberID_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRLogRecord_FiberID_get")]
  public static extern string RRLogRecord_FiberID_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRLogRecord_ToString")]
  public static extern string RRLogRecord_ToString(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_RRLogRecord")]
  public static extern global::System.IntPtr new_RRLogRecord();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_RRLogRecord")]
  public static extern void delete_RRLogRecord(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_LogRecordHandler")]
  public static extern void delete_LogRecordHandler(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_FileLogRecordHandler_OpenFile__SWIG_0")]
  public static extern void FileLogRecordHandler_OpenFile__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, bool jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_FileLogRecordHandler_OpenFile__SWIG_1")]
  public static extern void FileLogRecordHandler_OpenFile__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_FileLogRecordHandler")]
  public static extern global::System.IntPtr new_FileLogRecordHandler();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_FileLogRecordHandler")]
  public static extern void delete_FileLogRecordHandler(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_UserLogRecordHandlerDirector_HandleLogRecord")]
  public static extern void UserLogRecordHandlerDirector_HandleLogRecord(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_UserLogRecordHandlerDirector")]
  public static extern void delete_UserLogRecordHandlerDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_UserLogRecordHandlerDirector")]
  public static extern global::System.IntPtr new_UserLogRecordHandlerDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_UserLogRecordHandlerDirector_director_connect")]
  public static extern void UserLogRecordHandlerDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, UserLogRecordHandlerDirector.SwigDelegateUserLogRecordHandlerDirector_0 delegate0);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_UserLogRecordHandlerBase__SetHandler")]
  public static extern void UserLogRecordHandlerBase__SetHandler(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_UserLogRecordHandlerBase")]
  public static extern global::System.IntPtr new_UserLogRecordHandlerBase();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_UserLogRecordHandlerBase")]
  public static extern void delete_UserLogRecordHandlerBase(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeDirectories_system_data_dir_set")]
  public static extern void NodeDirectories_system_data_dir_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeDirectories_system_data_dir_get")]
  public static extern global::System.IntPtr NodeDirectories_system_data_dir_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeDirectories_system_config_dir_set")]
  public static extern void NodeDirectories_system_config_dir_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeDirectories_system_config_dir_get")]
  public static extern global::System.IntPtr NodeDirectories_system_config_dir_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeDirectories_system_state_dir_set")]
  public static extern void NodeDirectories_system_state_dir_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeDirectories_system_state_dir_get")]
  public static extern global::System.IntPtr NodeDirectories_system_state_dir_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeDirectories_system_cache_dir_set")]
  public static extern void NodeDirectories_system_cache_dir_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeDirectories_system_cache_dir_get")]
  public static extern global::System.IntPtr NodeDirectories_system_cache_dir_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeDirectories_system_run_dir_set")]
  public static extern void NodeDirectories_system_run_dir_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeDirectories_system_run_dir_get")]
  public static extern global::System.IntPtr NodeDirectories_system_run_dir_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeDirectories_user_data_dir_set")]
  public static extern void NodeDirectories_user_data_dir_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeDirectories_user_data_dir_get")]
  public static extern global::System.IntPtr NodeDirectories_user_data_dir_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeDirectories_user_config_dir_set")]
  public static extern void NodeDirectories_user_config_dir_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeDirectories_user_config_dir_get")]
  public static extern global::System.IntPtr NodeDirectories_user_config_dir_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeDirectories_user_state_dir_set")]
  public static extern void NodeDirectories_user_state_dir_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeDirectories_user_state_dir_get")]
  public static extern global::System.IntPtr NodeDirectories_user_state_dir_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeDirectories_user_cache_dir_set")]
  public static extern void NodeDirectories_user_cache_dir_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeDirectories_user_cache_dir_get")]
  public static extern global::System.IntPtr NodeDirectories_user_cache_dir_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeDirectories_user_run_dir_set")]
  public static extern void NodeDirectories_user_run_dir_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeDirectories_user_run_dir_get")]
  public static extern global::System.IntPtr NodeDirectories_user_run_dir_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_NodeDirectories")]
  public static extern global::System.IntPtr new_NodeDirectories();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_NodeDirectories")]
  public static extern void delete_NodeDirectories(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_NodeDirectoriesFD")]
  public static extern void delete_NodeDirectoriesFD(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeDirectoriesUtil_GetDefaultNodeDirectories__SWIG_0")]
  public static extern global::System.IntPtr NodeDirectoriesUtil_GetDefaultNodeDirectories__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeDirectoriesUtil_GetDefaultNodeDirectories__SWIG_1")]
  public static extern global::System.IntPtr NodeDirectoriesUtil_GetDefaultNodeDirectories__SWIG_1();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeDirectoriesUtil_GetLogonUserName")]
  public static extern string NodeDirectoriesUtil_GetLogonUserName();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeDirectoriesUtil_IsLogonUserRoot")]
  public static extern bool NodeDirectoriesUtil_IsLogonUserRoot();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeDirectoriesUtil_ReadInfoFile")]
  public static extern bool NodeDirectoriesUtil_ReadInfoFile(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeDirectoriesUtil_CreatePidFile")]
  public static extern global::System.IntPtr NodeDirectoriesUtil_CreatePidFile(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeDirectoriesUtil_CreateInfoFile")]
  public static extern global::System.IntPtr NodeDirectoriesUtil_CreateInfoFile(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_NodeDirectoriesUtil_RefreshInfoFile")]
  public static extern void NodeDirectoriesUtil_RefreshInfoFile(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_NodeDirectoriesUtil")]
  public static extern global::System.IntPtr new_NodeDirectoriesUtil();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_NodeDirectoriesUtil")]
  public static extern void delete_NodeDirectoriesUtil(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_GetUuidForNameAndLockResult_uuid_set")]
  public static extern void GetUuidForNameAndLockResult_uuid_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_GetUuidForNameAndLockResult_uuid_get")]
  public static extern global::System.IntPtr GetUuidForNameAndLockResult_uuid_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_GetUuidForNameAndLockResult_name_set")]
  public static extern void GetUuidForNameAndLockResult_name_set(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_GetUuidForNameAndLockResult_name_get")]
  public static extern string GetUuidForNameAndLockResult_name_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_GetUuidForNameAndLockResult_scope_set")]
  public static extern void GetUuidForNameAndLockResult_scope_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_GetUuidForNameAndLockResult_scope_get")]
  public static extern global::System.IntPtr GetUuidForNameAndLockResult_scope_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_GetUuidForNameAndLockResult_fd_set")]
  public static extern void GetUuidForNameAndLockResult_fd_set(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_GetUuidForNameAndLockResult_fd_get")]
  public static extern global::System.IntPtr GetUuidForNameAndLockResult_fd_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_GetUuidForNameAndLockResult")]
  public static extern global::System.IntPtr new_GetUuidForNameAndLockResult();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_GetUuidForNameAndLockResult")]
  public static extern void delete_GetUuidForNameAndLockResult(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_GetUuidForNameAndLock")]
  public static extern global::System.IntPtr GetUuidForNameAndLock(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, global::System.Runtime.InteropServices.HandleRef jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_NodeDirectoriesResourceAlreadyInUse")]
  public static extern global::System.IntPtr new_NodeDirectoriesResourceAlreadyInUse();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_NodeDirectoriesResourceAlreadyInUse")]
  public static extern void delete_NodeDirectoriesResourceAlreadyInUse(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ClientServiceListenerDirector_objectheapid_set")]
  public static extern void ClientServiceListenerDirector_objectheapid_set(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ClientServiceListenerDirector_objectheapid_get")]
  public static extern int ClientServiceListenerDirector_objectheapid_get(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_ClientServiceListenerDirector")]
  public static extern global::System.IntPtr new_ClientServiceListenerDirector();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ClientServiceListenerDirector_Callback")]
  public static extern void ClientServiceListenerDirector_Callback(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ClientServiceListenerDirector_CallbackSwigExplicitClientServiceListenerDirector")]
  public static extern void ClientServiceListenerDirector_CallbackSwigExplicitClientServiceListenerDirector(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ClientServiceListenerDirector_Callback2")]
  public static extern void ClientServiceListenerDirector_Callback2(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, string jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ClientServiceListenerDirector_Callback2SwigExplicitClientServiceListenerDirector")]
  public static extern void ClientServiceListenerDirector_Callback2SwigExplicitClientServiceListenerDirector(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, string jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_ClientServiceListenerDirector")]
  public static extern void delete_ClientServiceListenerDirector(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ClientServiceListenerDirector_director_connect")]
  public static extern void ClientServiceListenerDirector_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, ClientServiceListenerDirector.SwigDelegateClientServiceListenerDirector_0 delegate0, ClientServiceListenerDirector.SwigDelegateClientServiceListenerDirector_1 delegate1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode_RegisterTransport")]
  public static extern uint RobotRaconteurNode_RegisterTransport(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__GetRequestTimeout")]
  public static extern uint RobotRaconteurNode__GetRequestTimeout(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__SetRequestTimeout")]
  public static extern void RobotRaconteurNode__SetRequestTimeout(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__GetTransportInactivityTimeout")]
  public static extern uint RobotRaconteurNode__GetTransportInactivityTimeout(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__SetTransportInactivityTimeout")]
  public static extern void RobotRaconteurNode__SetTransportInactivityTimeout(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__GetEndpointInactivityTimeout")]
  public static extern uint RobotRaconteurNode__GetEndpointInactivityTimeout(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__SetEndpointInactivityTimeout")]
  public static extern void RobotRaconteurNode__SetEndpointInactivityTimeout(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__GetMemoryMaxTransferSize")]
  public static extern uint RobotRaconteurNode__GetMemoryMaxTransferSize(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__SetMemoryMaxTransferSize")]
  public static extern void RobotRaconteurNode__SetMemoryMaxTransferSize(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__GetNodeDiscoveryMaxCacheCount")]
  public static extern uint RobotRaconteurNode__GetNodeDiscoveryMaxCacheCount(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__SetNodeDiscoveryMaxCacheCount")]
  public static extern void RobotRaconteurNode__SetNodeDiscoveryMaxCacheCount(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode_UnregisterServiceType")]
  public static extern void RobotRaconteurNode_UnregisterServiceType(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__ConnectService__SWIG_0")]
  public static extern global::System.IntPtr RobotRaconteurNode__ConnectService__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3, global::System.Runtime.InteropServices.HandleRef jarg4, global::System.Runtime.InteropServices.HandleRef jarg5, string jarg6);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__ConnectService__SWIG_1")]
  public static extern global::System.IntPtr RobotRaconteurNode__ConnectService__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3, global::System.Runtime.InteropServices.HandleRef jarg4, global::System.Runtime.InteropServices.HandleRef jarg5);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__ConnectService__SWIG_2")]
  public static extern global::System.IntPtr RobotRaconteurNode__ConnectService__SWIG_2(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3, global::System.Runtime.InteropServices.HandleRef jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__ConnectService__SWIG_3")]
  public static extern global::System.IntPtr RobotRaconteurNode__ConnectService__SWIG_3(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__ConnectService__SWIG_4")]
  public static extern global::System.IntPtr RobotRaconteurNode__ConnectService__SWIG_4(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__ConnectService__SWIG_5")]
  public static extern global::System.IntPtr RobotRaconteurNode__ConnectService__SWIG_5(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, string jarg3, global::System.Runtime.InteropServices.HandleRef jarg4, global::System.Runtime.InteropServices.HandleRef jarg5, string jarg6);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__ConnectService__SWIG_6")]
  public static extern global::System.IntPtr RobotRaconteurNode__ConnectService__SWIG_6(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, string jarg3, global::System.Runtime.InteropServices.HandleRef jarg4, global::System.Runtime.InteropServices.HandleRef jarg5);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__ConnectService__SWIG_7")]
  public static extern global::System.IntPtr RobotRaconteurNode__ConnectService__SWIG_7(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, string jarg3, global::System.Runtime.InteropServices.HandleRef jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__ConnectService__SWIG_8")]
  public static extern global::System.IntPtr RobotRaconteurNode__ConnectService__SWIG_8(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, string jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__ConnectService__SWIG_9")]
  public static extern global::System.IntPtr RobotRaconteurNode__ConnectService__SWIG_9(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__AsyncConnectService__SWIG_0")]
  public static extern void RobotRaconteurNode__AsyncConnectService__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3, global::System.Runtime.InteropServices.HandleRef jarg4, global::System.Runtime.InteropServices.HandleRef jarg5, string jarg6, int jarg7, global::System.Runtime.InteropServices.HandleRef jarg8, int jarg9);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__AsyncConnectService__SWIG_1")]
  public static extern void RobotRaconteurNode__AsyncConnectService__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, string jarg3, global::System.Runtime.InteropServices.HandleRef jarg4, global::System.Runtime.InteropServices.HandleRef jarg5, string jarg6, int jarg7, global::System.Runtime.InteropServices.HandleRef jarg8, int jarg9);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__DisconnectService")]
  public static extern void RobotRaconteurNode__DisconnectService(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__AsyncDisconnectService")]
  public static extern void RobotRaconteurNode__AsyncDisconnectService(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, global::System.Runtime.InteropServices.HandleRef jarg3, int jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode_SelectRemoteNodeURL")]
  public static extern string RobotRaconteurNode_SelectRemoteNodeURL(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__RegisterServiceType")]
  public static extern void RobotRaconteurNode__RegisterServiceType(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__RegisterServiceTypes")]
  public static extern void RobotRaconteurNode__RegisterServiceTypes(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__GetServiceType")]
  public static extern global::System.IntPtr RobotRaconteurNode__GetServiceType(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__GetPulledServiceType")]
  public static extern global::System.IntPtr RobotRaconteurNode__GetPulledServiceType(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, string jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode_IsServiceTypeRegistered")]
  public static extern bool RobotRaconteurNode_IsServiceTypeRegistered(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__GetRegisteredServiceTypes")]
  public static extern global::System.IntPtr RobotRaconteurNode__GetRegisteredServiceTypes(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__GetPulledServiceTypes")]
  public static extern global::System.IntPtr RobotRaconteurNode__GetPulledServiceTypes(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__get_s")]
  public static extern global::System.IntPtr RobotRaconteurNode__get_s();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__Shutdown")]
  public static extern void RobotRaconteurNode__Shutdown(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__RequestObjectLock")]
  public static extern string RobotRaconteurNode__RequestObjectLock(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__ReleaseObjectLock")]
  public static extern string RobotRaconteurNode__ReleaseObjectLock(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__MonitorEnter__SWIG_0")]
  public static extern void RobotRaconteurNode__MonitorEnter__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__MonitorEnter__SWIG_1")]
  public static extern void RobotRaconteurNode__MonitorEnter__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__MonitorExit")]
  public static extern void RobotRaconteurNode__MonitorExit(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__NowUTC")]
  public static extern long RobotRaconteurNode__NowUTC(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__NowTimeSpec")]
  public static extern global::System.IntPtr RobotRaconteurNode__NowTimeSpec(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__NowNodeTime")]
  public static extern long RobotRaconteurNode__NowNodeTime(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__NodeSyncTimeUTC")]
  public static extern long RobotRaconteurNode__NodeSyncTimeUTC(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__NodeSyncTimeSpec")]
  public static extern global::System.IntPtr RobotRaconteurNode__NodeSyncTimeSpec(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__AsyncRequestObjectLock")]
  public static extern void RobotRaconteurNode__AsyncRequestObjectLock(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int jarg3, int jarg4, global::System.Runtime.InteropServices.HandleRef jarg5, int jarg6);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__AsyncReleaseObjectLock")]
  public static extern void RobotRaconteurNode__AsyncReleaseObjectLock(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int jarg3, global::System.Runtime.InteropServices.HandleRef jarg4, int jarg5);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__GetServiceAttributes")]
  public static extern global::System.IntPtr RobotRaconteurNode__GetServiceAttributes(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__GetServiceNodeID")]
  public static extern global::System.IntPtr RobotRaconteurNode__GetServiceNodeID(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__GetServiceNodeName")]
  public static extern string RobotRaconteurNode__GetServiceNodeName(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__GetServiceName")]
  public static extern string RobotRaconteurNode__GetServiceName(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__GetObjectServicePath")]
  public static extern string RobotRaconteurNode__GetObjectServicePath(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__GetObjectType")]
  public static extern string RobotRaconteurNode__GetObjectType(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__RegisterService__SWIG_0")]
  public static extern global::System.IntPtr RobotRaconteurNode__RegisterService__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3, global::System.Runtime.InteropServices.HandleRef jarg4, global::System.Runtime.InteropServices.HandleRef jarg5);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__RegisterService__SWIG_1")]
  public static extern global::System.IntPtr RobotRaconteurNode__RegisterService__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3, global::System.Runtime.InteropServices.HandleRef jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode_CloseService")]
  public static extern void RobotRaconteurNode_CloseService(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__NodeID")]
  public static extern global::System.IntPtr RobotRaconteurNode__NodeID(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__SetNodeID")]
  public static extern void RobotRaconteurNode__SetNodeID(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__NodeName")]
  public static extern string RobotRaconteurNode__NodeName(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__SetNodeName")]
  public static extern void RobotRaconteurNode__SetNodeName(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__GetThreadPoolCount")]
  public static extern int RobotRaconteurNode__GetThreadPoolCount(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__SetThreadPoolCount")]
  public static extern void RobotRaconteurNode__SetThreadPoolCount(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__FindObjectType__SWIG_0")]
  public static extern string RobotRaconteurNode__FindObjectType__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, string jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__FindObjectType__SWIG_1")]
  public static extern string RobotRaconteurNode__FindObjectType__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, string jarg3, string jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__AsyncFindObjectType__SWIG_0")]
  public static extern void RobotRaconteurNode__AsyncFindObjectType__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, string jarg3, int jarg4, global::System.Runtime.InteropServices.HandleRef jarg5, int jarg6);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__AsyncFindObjectType__SWIG_1")]
  public static extern void RobotRaconteurNode__AsyncFindObjectType__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, string jarg3, string jarg4, int jarg5, global::System.Runtime.InteropServices.HandleRef jarg6, int jarg7);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__SetExceptionHandler")]
  public static extern void RobotRaconteurNode__SetExceptionHandler(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__ClearExceptionHandler")]
  public static extern void RobotRaconteurNode__ClearExceptionHandler(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode_Sleep")]
  public static extern void RobotRaconteurNode_Sleep(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__CreateTimer")]
  public static extern global::System.IntPtr RobotRaconteurNode__CreateTimer(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, bool jarg3, global::System.Runtime.InteropServices.HandleRef jarg4, int jarg5);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode_CreateRate")]
  public static extern global::System.IntPtr RobotRaconteurNode_CreateRate(global::System.Runtime.InteropServices.HandleRef jarg1, double jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode_CreateAutoResetEvent")]
  public static extern global::System.IntPtr RobotRaconteurNode_CreateAutoResetEvent(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__PostToThreadPool")]
  public static extern void RobotRaconteurNode__PostToThreadPool(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode__GetRobotRaconteurVersion")]
  public static extern string RobotRaconteurNode__GetRobotRaconteurVersion(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode_CompareLogLevel")]
  public static extern bool RobotRaconteurNode_CompareLogLevel(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode_LogMessage")]
  public static extern void RobotRaconteurNode_LogMessage(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2, string jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode_LogRecord")]
  public static extern void RobotRaconteurNode_LogRecord(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode_GetLogLevel")]
  public static extern int RobotRaconteurNode_GetLogLevel(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode_SetLogLevel")]
  public static extern void RobotRaconteurNode_SetLogLevel(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode_SetLogLevelFromString")]
  public static extern int RobotRaconteurNode_SetLogLevelFromString(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode_SetLogLevelFromEnvVariable__SWIG_0")]
  public static extern int RobotRaconteurNode_SetLogLevelFromEnvVariable__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode_SetLogLevelFromEnvVariable__SWIG_1")]
  public static extern int RobotRaconteurNode_SetLogLevelFromEnvVariable__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode_GetLogRecordHandler")]
  public static extern global::System.IntPtr RobotRaconteurNode_GetLogRecordHandler(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode_SetLogRecordHandler")]
  public static extern void RobotRaconteurNode_SetLogRecordHandler(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode_CheckConnection")]
  public static extern void RobotRaconteurNode_CheckConnection(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode_GetNodeDirectories")]
  public static extern global::System.IntPtr RobotRaconteurNode_GetNodeDirectories(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RobotRaconteurNode_SetNodeDirectories")]
  public static extern void RobotRaconteurNode_SetNodeDirectories(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_RobotRaconteurNode")]
  public static extern void delete_RobotRaconteurNode(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_CommandLineConfigParser__SWIG_0")]
  public static extern global::System.IntPtr new_CommandLineConfigParser__SWIG_0(uint jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_CommandLineConfigParser__SWIG_1")]
  public static extern global::System.IntPtr new_CommandLineConfigParser__SWIG_1(uint jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_CommandLineConfigParser_SetDefaults")]
  public static extern void CommandLineConfigParser_SetDefaults(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, ushort jarg3, uint jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_CommandLineConfigParser_AddStringOption")]
  public static extern void CommandLineConfigParser_AddStringOption(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_CommandLineConfigParser_AddBoolOption")]
  public static extern void CommandLineConfigParser_AddBoolOption(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_CommandLineConfigParser_AddIntOption")]
  public static extern void CommandLineConfigParser_AddIntOption(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_CommandLineConfigParser__ParseCommandLine")]
  public static extern void CommandLineConfigParser__ParseCommandLine(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_CommandLineConfigParser_GetOptionOrDefaultAsString__SWIG_0")]
  public static extern string CommandLineConfigParser_GetOptionOrDefaultAsString__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_CommandLineConfigParser_GetOptionOrDefaultAsString__SWIG_1")]
  public static extern string CommandLineConfigParser_GetOptionOrDefaultAsString__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, string jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_CommandLineConfigParser_GetOptionOrDefaultAsBool__SWIG_0")]
  public static extern bool CommandLineConfigParser_GetOptionOrDefaultAsBool__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_CommandLineConfigParser_GetOptionOrDefaultAsBool__SWIG_1")]
  public static extern bool CommandLineConfigParser_GetOptionOrDefaultAsBool__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, bool jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_CommandLineConfigParser_GetOptionOrDefaultAsInt__SWIG_0")]
  public static extern int CommandLineConfigParser_GetOptionOrDefaultAsInt__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_CommandLineConfigParser_GetOptionOrDefaultAsInt__SWIG_1")]
  public static extern int CommandLineConfigParser_GetOptionOrDefaultAsInt__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, int jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_CommandLineConfigParser")]
  public static extern void delete_CommandLineConfigParser(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedRobotRaconteurNodeSetup_GetLocalTransport")]
  public static extern global::System.IntPtr WrappedRobotRaconteurNodeSetup_GetLocalTransport(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedRobotRaconteurNodeSetup_GetIntraTransport")]
  public static extern global::System.IntPtr WrappedRobotRaconteurNodeSetup_GetIntraTransport(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedRobotRaconteurNodeSetup_GetTcpTransport")]
  public static extern global::System.IntPtr WrappedRobotRaconteurNodeSetup_GetTcpTransport(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedRobotRaconteurNodeSetup_GetHardwareTransport")]
  public static extern global::System.IntPtr WrappedRobotRaconteurNodeSetup_GetHardwareTransport(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedRobotRaconteurNodeSetup_GetCommandLineConfig")]
  public static extern global::System.IntPtr WrappedRobotRaconteurNodeSetup_GetCommandLineConfig(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedRobotRaconteurNodeSetup_ReleaseNode")]
  public static extern void WrappedRobotRaconteurNodeSetup_ReleaseNode(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_WrappedRobotRaconteurNodeSetup")]
  public static extern void delete_WrappedRobotRaconteurNodeSetup(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedRobotRaconteurNodeSetup__SWIG_0")]
  public static extern global::System.IntPtr new_WrappedRobotRaconteurNodeSetup__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, ushort jarg3, uint jarg4);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedRobotRaconteurNodeSetup__SWIG_1")]
  public static extern global::System.IntPtr new_WrappedRobotRaconteurNodeSetup__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_WrappedRobotRaconteurNodeSetup__SWIG_2")]
  public static extern global::System.IntPtr new_WrappedRobotRaconteurNodeSetup__SWIG_2(global::System.Runtime.InteropServices.HandleRef jarg1, string jarg2, ushort jarg3, uint jarg4, uint jarg5, global::System.Runtime.InteropServices.HandleRef jarg6);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_BroadcastDownsampler")]
  public static extern global::System.IntPtr new_BroadcastDownsampler();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_BroadcastDownsampler__Init__SWIG_0")]
  public static extern void BroadcastDownsampler__Init__SWIG_0(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2, uint jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_BroadcastDownsampler__Init__SWIG_1")]
  public static extern void BroadcastDownsampler__Init__SWIG_1(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_BroadcastDownsampler_GetClientDownsample")]
  public static extern uint BroadcastDownsampler_GetClientDownsample(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_BroadcastDownsampler_SetClientDownsample")]
  public static extern void BroadcastDownsampler_SetClientDownsample(global::System.Runtime.InteropServices.HandleRef jarg1, uint jarg2, uint jarg3);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_BroadcastDownsampler_BeginStep")]
  public static extern void BroadcastDownsampler_BeginStep(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_BroadcastDownsampler_EndStep")]
  public static extern void BroadcastDownsampler_EndStep(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_BroadcastDownsampler__AddPipeBroadcaster")]
  public static extern void BroadcastDownsampler__AddPipeBroadcaster(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_BroadcastDownsampler__AddWireBroadcaster")]
  public static extern void BroadcastDownsampler__AddWireBroadcaster(global::System.Runtime.InteropServices.HandleRef jarg1, global::System.Runtime.InteropServices.HandleRef jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_BroadcastDownsampler")]
  public static extern void delete_BroadcastDownsampler(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRNativeObjectHeapSupport_Set_Support")]
  public static extern void RRNativeObjectHeapSupport_Set_Support(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRNativeObjectHeapSupport_DeleteObject_i")]
  public static extern void RRNativeObjectHeapSupport_DeleteObject_i(global::System.Runtime.InteropServices.HandleRef jarg1, int jarg2);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRNativeObjectHeapSupport_DeleteObject")]
  public static extern void RRNativeObjectHeapSupport_DeleteObject(int jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_delete_RRNativeObjectHeapSupport")]
  public static extern void delete_RRNativeObjectHeapSupport(global::System.Runtime.InteropServices.HandleRef jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_new_RRNativeObjectHeapSupport")]
  public static extern global::System.IntPtr new_RRNativeObjectHeapSupport();

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRNativeObjectHeapSupport_director_connect")]
  public static extern void RRNativeObjectHeapSupport_director_connect(global::System.Runtime.InteropServices.HandleRef jarg1, RRNativeObjectHeapSupport.SwigDelegateRRNativeObjectHeapSupport_0 delegate0);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementData_SWIGSmartPtrUpcast")]
  public static extern global::System.IntPtr MessageElementData_SWIGSmartPtrUpcast(global::System.IntPtr jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_RRBaseArray_SWIGSmartPtrUpcast")]
  public static extern global::System.IntPtr RRBaseArray_SWIGSmartPtrUpcast(global::System.IntPtr jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_PropertyDefinition_SWIGSmartPtrUpcast")]
  public static extern global::System.IntPtr PropertyDefinition_SWIGSmartPtrUpcast(global::System.IntPtr jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_FunctionDefinition_SWIGSmartPtrUpcast")]
  public static extern global::System.IntPtr FunctionDefinition_SWIGSmartPtrUpcast(global::System.IntPtr jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_EventDefinition_SWIGSmartPtrUpcast")]
  public static extern global::System.IntPtr EventDefinition_SWIGSmartPtrUpcast(global::System.IntPtr jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_ObjRefDefinition_SWIGSmartPtrUpcast")]
  public static extern global::System.IntPtr ObjRefDefinition_SWIGSmartPtrUpcast(global::System.IntPtr jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_PipeDefinition_SWIGSmartPtrUpcast")]
  public static extern global::System.IntPtr PipeDefinition_SWIGSmartPtrUpcast(global::System.IntPtr jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_CallbackDefinition_SWIGSmartPtrUpcast")]
  public static extern global::System.IntPtr CallbackDefinition_SWIGSmartPtrUpcast(global::System.IntPtr jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WireDefinition_SWIGSmartPtrUpcast")]
  public static extern global::System.IntPtr WireDefinition_SWIGSmartPtrUpcast(global::System.IntPtr jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MemoryDefinition_SWIGSmartPtrUpcast")]
  public static extern global::System.IntPtr MemoryDefinition_SWIGSmartPtrUpcast(global::System.IntPtr jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_Message_SWIGSmartPtrUpcast")]
  public static extern global::System.IntPtr Message_SWIGSmartPtrUpcast(global::System.IntPtr jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageHeader_SWIGSmartPtrUpcast")]
  public static extern global::System.IntPtr MessageHeader_SWIGSmartPtrUpcast(global::System.IntPtr jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageEntry_SWIGSmartPtrUpcast")]
  public static extern global::System.IntPtr MessageEntry_SWIGSmartPtrUpcast(global::System.IntPtr jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElement_SWIGSmartPtrUpcast")]
  public static extern global::System.IntPtr MessageElement_SWIGSmartPtrUpcast(global::System.IntPtr jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_MessageElementNestedElementList_SWIGSmartPtrUpcast")]
  public static extern global::System.IntPtr MessageElementNestedElementList_SWIGSmartPtrUpcast(global::System.IntPtr jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_TcpTransport_SWIGSmartPtrUpcast")]
  public static extern global::System.IntPtr TcpTransport_SWIGSmartPtrUpcast(global::System.IntPtr jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_LocalTransport_SWIGSmartPtrUpcast")]
  public static extern global::System.IntPtr LocalTransport_SWIGSmartPtrUpcast(global::System.IntPtr jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_HardwareTransport_SWIGSmartPtrUpcast")]
  public static extern global::System.IntPtr HardwareTransport_SWIGSmartPtrUpcast(global::System.IntPtr jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_IntraTransport_SWIGSmartPtrUpcast")]
  public static extern global::System.IntPtr IntraTransport_SWIGSmartPtrUpcast(global::System.IntPtr jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WallTimer_SWIGSmartPtrUpcast")]
  public static extern global::System.IntPtr WallTimer_SWIGSmartPtrUpcast(global::System.IntPtr jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WallRate_SWIGSmartPtrUpcast")]
  public static extern global::System.IntPtr WallRate_SWIGSmartPtrUpcast(global::System.IntPtr jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedServiceStub_SWIGSmartPtrUpcast")]
  public static extern global::System.IntPtr WrappedServiceStub_SWIGSmartPtrUpcast(global::System.IntPtr jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedRRObject_SWIGSmartPtrUpcast")]
  public static extern global::System.IntPtr WrappedRRObject_SWIGSmartPtrUpcast(global::System.IntPtr jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_PasswordFileUserAuthenticator_SWIGSmartPtrUpcast")]
  public static extern global::System.IntPtr PasswordFileUserAuthenticator_SWIGSmartPtrUpcast(global::System.IntPtr jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_WrappedUserAuthenticator_SWIGSmartPtrUpcast")]
  public static extern global::System.IntPtr WrappedUserAuthenticator_SWIGSmartPtrUpcast(global::System.IntPtr jarg1);

  [global::System.Runtime.InteropServices.DllImport("RobotRaconteurNETNative", EntryPoint="CSharp_RobotRaconteur_UserLogRecordHandlerBase_SWIGSmartPtrUpcast")]
  public static extern global::System.IntPtr UserLogRecordHandlerBase_SWIGSmartPtrUpcast(global::System.IntPtr jarg1);
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class RobotRaconteurNET {
  public static byte MessageFlags_ROUTING_INFO {
    get {
      byte ret = RobotRaconteurNETPINVOKE.MessageFlags_ROUTING_INFO_get();
      return ret;
    } 
  }

  public static byte MessageFlags_ENDPOINT_INFO {
    get {
      byte ret = RobotRaconteurNETPINVOKE.MessageFlags_ENDPOINT_INFO_get();
      return ret;
    } 
  }

  public static byte MessageFlags_PRIORITY {
    get {
      byte ret = RobotRaconteurNETPINVOKE.MessageFlags_PRIORITY_get();
      return ret;
    } 
  }

  public static byte MessageFlags_UNRELIABLE {
    get {
      byte ret = RobotRaconteurNETPINVOKE.MessageFlags_UNRELIABLE_get();
      return ret;
    } 
  }

  public static byte MessageFlags_META_INFO {
    get {
      byte ret = RobotRaconteurNETPINVOKE.MessageFlags_META_INFO_get();
      return ret;
    } 
  }

  public static byte MessageFlags_STRING_TABLE {
    get {
      byte ret = RobotRaconteurNETPINVOKE.MessageFlags_STRING_TABLE_get();
      return ret;
    } 
  }

  public static byte MessageFlags_MULTIPLE_ENTRIES {
    get {
      byte ret = RobotRaconteurNETPINVOKE.MessageFlags_MULTIPLE_ENTRIES_get();
      return ret;
    } 
  }

  public static byte MessageFlags_EXTENDED {
    get {
      byte ret = RobotRaconteurNETPINVOKE.MessageFlags_EXTENDED_get();
      return ret;
    } 
  }

  public static byte MessageFlags_Version2Compat {
    get {
      byte ret = RobotRaconteurNETPINVOKE.MessageFlags_Version2Compat_get();
      return ret;
    } 
  }

  public static byte MessageEntryFlags_SERVICE_PATH_STR {
    get {
      byte ret = RobotRaconteurNETPINVOKE.MessageEntryFlags_SERVICE_PATH_STR_get();
      return ret;
    } 
  }

  public static byte MessageEntryFlags_SERVICE_PATH_CODE {
    get {
      byte ret = RobotRaconteurNETPINVOKE.MessageEntryFlags_SERVICE_PATH_CODE_get();
      return ret;
    } 
  }

  public static byte MessageEntryFlags_MEMBER_NAME_STR {
    get {
      byte ret = RobotRaconteurNETPINVOKE.MessageEntryFlags_MEMBER_NAME_STR_get();
      return ret;
    } 
  }

  public static byte MessageEntryFlags_MEMBER_NAME_CODE {
    get {
      byte ret = RobotRaconteurNETPINVOKE.MessageEntryFlags_MEMBER_NAME_CODE_get();
      return ret;
    } 
  }

  public static byte MessageEntryFlags_REQUEST_ID {
    get {
      byte ret = RobotRaconteurNETPINVOKE.MessageEntryFlags_REQUEST_ID_get();
      return ret;
    } 
  }

  public static byte MessageEntryFlags_ERROR {
    get {
      byte ret = RobotRaconteurNETPINVOKE.MessageEntryFlags_ERROR_get();
      return ret;
    } 
  }

  public static byte MessageEntryFlags_META_INFO {
    get {
      byte ret = RobotRaconteurNETPINVOKE.MessageEntryFlags_META_INFO_get();
      return ret;
    } 
  }

  public static byte MessageEntryFlags_EXTENDED {
    get {
      byte ret = RobotRaconteurNETPINVOKE.MessageEntryFlags_EXTENDED_get();
      return ret;
    } 
  }

  public static byte MessageEntryFlags_Version2Compat {
    get {
      byte ret = RobotRaconteurNETPINVOKE.MessageEntryFlags_Version2Compat_get();
      return ret;
    } 
  }

  public static byte MessageElementFlags_ELEMENT_NAME_STR {
    get {
      byte ret = RobotRaconteurNETPINVOKE.MessageElementFlags_ELEMENT_NAME_STR_get();
      return ret;
    } 
  }

  public static byte MessageElementFlags_ELEMENT_NAME_CODE {
    get {
      byte ret = RobotRaconteurNETPINVOKE.MessageElementFlags_ELEMENT_NAME_CODE_get();
      return ret;
    } 
  }

  public static byte MessageElementFlags_ELEMENT_NUMBER {
    get {
      byte ret = RobotRaconteurNETPINVOKE.MessageElementFlags_ELEMENT_NUMBER_get();
      return ret;
    } 
  }

  public static byte MessageElementFlags_ELEMENT_TYPE_NAME_STR {
    get {
      byte ret = RobotRaconteurNETPINVOKE.MessageElementFlags_ELEMENT_TYPE_NAME_STR_get();
      return ret;
    } 
  }

  public static byte MessageElementFlags_ELEMENT_TYPE_NAME_CODE {
    get {
      byte ret = RobotRaconteurNETPINVOKE.MessageElementFlags_ELEMENT_TYPE_NAME_CODE_get();
      return ret;
    } 
  }

  public static byte MessageElementFlags_META_INFO {
    get {
      byte ret = RobotRaconteurNETPINVOKE.MessageElementFlags_META_INFO_get();
      return ret;
    } 
  }

  public static byte MessageElementFlags_EXTENDED {
    get {
      byte ret = RobotRaconteurNETPINVOKE.MessageElementFlags_EXTENDED_get();
      return ret;
    } 
  }

  public static byte MessageElementFlags_Version2Compat {
    get {
      byte ret = RobotRaconteurNETPINVOKE.MessageElementFlags_Version2Compat_get();
      return ret;
    } 
  }

  public static uint TranspartCapabilityCode_PAGE_MASK {
    get {
      uint ret = RobotRaconteurNETPINVOKE.TranspartCapabilityCode_PAGE_MASK_get();
      return ret;
    } 
  }

  public static uint TransportCapabilityCode_MESSAGE2_BASIC_PAGE {
    get {
      uint ret = RobotRaconteurNETPINVOKE.TransportCapabilityCode_MESSAGE2_BASIC_PAGE_get();
      return ret;
    } 
  }

  public static uint TransportCapabilityCode_MESSAGE2_BASIC_ENABLE {
    get {
      uint ret = RobotRaconteurNETPINVOKE.TransportCapabilityCode_MESSAGE2_BASIC_ENABLE_get();
      return ret;
    } 
  }

  public static uint TransportCapabilityCode_MESSAGE2_BASIC_CONNECTCOMBINED {
    get {
      uint ret = RobotRaconteurNETPINVOKE.TransportCapabilityCode_MESSAGE2_BASIC_CONNECTCOMBINED_get();
      return ret;
    } 
  }

  public static uint TransportCapabilityCode_MESSAGE4_BASIC_PAGE {
    get {
      uint ret = RobotRaconteurNETPINVOKE.TransportCapabilityCode_MESSAGE4_BASIC_PAGE_get();
      return ret;
    } 
  }

  public static uint TransportCapabilityCode_MESSAGE4_BASIC_ENABLE {
    get {
      uint ret = RobotRaconteurNETPINVOKE.TransportCapabilityCode_MESSAGE4_BASIC_ENABLE_get();
      return ret;
    } 
  }

  public static uint TransportCapabilityCode_MESSAGE4_BASIC_CONNECTCOMBINED {
    get {
      uint ret = RobotRaconteurNETPINVOKE.TransportCapabilityCode_MESSAGE4_BASIC_CONNECTCOMBINED_get();
      return ret;
    } 
  }

  public static uint TransportCapabilityCode_MESSAGE4_STRINGTABLE_PAGE {
    get {
      uint ret = RobotRaconteurNETPINVOKE.TransportCapabilityCode_MESSAGE4_STRINGTABLE_PAGE_get();
      return ret;
    } 
  }

  public static uint TransportCapabilityCode_MESSAGE4_STRINGTABLE_ENABLE {
    get {
      uint ret = RobotRaconteurNETPINVOKE.TransportCapabilityCode_MESSAGE4_STRINGTABLE_ENABLE_get();
      return ret;
    } 
  }

  public static uint TransportCapabilityCode_MESSAGE4_STRINGTABLE_MESSAGE_LOCAL {
    get {
      uint ret = RobotRaconteurNETPINVOKE.TransportCapabilityCode_MESSAGE4_STRINGTABLE_MESSAGE_LOCAL_get();
      return ret;
    } 
  }

  public static uint TransportCapabilityCode_MESSAGE4_STRINGTABLE_STANDARD_TABLE {
    get {
      uint ret = RobotRaconteurNETPINVOKE.TransportCapabilityCode_MESSAGE4_STRINGTABLE_STANDARD_TABLE_get();
      return ret;
    } 
  }

  public static RobotRaconteurExceptionHelper robotRaconteurExceptionHelper {
    set {
      RobotRaconteurNETPINVOKE.robotRaconteurExceptionHelper_set(RobotRaconteurExceptionHelper.getCPtr(value));
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    } 
    get {
      global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.robotRaconteurExceptionHelper_get();
      RobotRaconteurExceptionHelper ret = (cPtr == global::System.IntPtr.Zero) ? null : new RobotRaconteurExceptionHelper(cPtr, false);
      if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
      return ret;
    } 
  }

  public static string GetRRDataTypeString(DataTypes type) {
    string ret = RobotRaconteurNETPINVOKE.GetRRDataTypeString((int)type);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static bool IsTypeRRArray(DataTypes type) {
    bool ret = RobotRaconteurNETPINVOKE.IsTypeRRArray((int)type);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static bool IsTypeNumeric(DataTypes type) {
    bool ret = RobotRaconteurNETPINVOKE.IsTypeNumeric((int)type);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static RRBaseArray AllocateRRArrayByType(DataTypes type, uint length) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.AllocateRRArrayByType((int)type, length);
    RRBaseArray ret = (cPtr == global::System.IntPtr.Zero) ? null : new RRBaseArray(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static string EncodeServicePathIndex(string index) {
    string ret = RobotRaconteurNETPINVOKE.EncodeServicePathIndex(index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static string DecodeServicePathIndex(string index) {
    string ret = RobotRaconteurNETPINVOKE.DecodeServicePathIndex(index);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static ServicePathSegments ParseServicePath(string path) {
    ServicePathSegments ret = new ServicePathSegments(RobotRaconteurNETPINVOKE.ParseServicePath(path), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static string BuildServicePath(ServicePathSegments segments) {
    string ret = RobotRaconteurNETPINVOKE.BuildServicePath(ServicePathSegments.getCPtr(segments));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static bool IsStringName(SWIGTYPE_p_boost__string_ref str) {
    bool ret = RobotRaconteurNETPINVOKE.IsStringName(SWIGTYPE_p_boost__string_ref.getCPtr(str));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static bool IsStringScopedName(SWIGTYPE_p_boost__string_ref str) {
    bool ret = RobotRaconteurNETPINVOKE.IsStringScopedName(SWIGTYPE_p_boost__string_ref.getCPtr(str));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static bool IsStringUUID(SWIGTYPE_p_boost__string_ref str) {
    bool ret = RobotRaconteurNETPINVOKE.IsStringUUID(SWIGTYPE_p_boost__string_ref.getCPtr(str));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static bool IsStringIdentifier(SWIGTYPE_p_boost__string_ref str) {
    bool ret = RobotRaconteurNETPINVOKE.IsStringIdentifier(SWIGTYPE_p_boost__string_ref.getCPtr(str));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static MultiDimArray_CalculateCopyIndicesIter MultiDimArray_CalculateCopyIndicesBeginIter(vectoruint32 mema_dims, vectoruint32 mema_pos, vectoruint32 memb_dims, vectoruint32 memb_pos, vectoruint32 count) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.MultiDimArray_CalculateCopyIndicesBeginIter(vectoruint32.getCPtr(mema_dims), vectoruint32.getCPtr(mema_pos), vectoruint32.getCPtr(memb_dims), vectoruint32.getCPtr(memb_pos), vectoruint32.getCPtr(count));
    MultiDimArray_CalculateCopyIndicesIter ret = (cPtr == global::System.IntPtr.Zero) ? null : new MultiDimArray_CalculateCopyIndicesIter(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static bool RobotRaconteurVersion_eq(RobotRaconteurVersion v1, RobotRaconteurVersion v2) {
    bool ret = RobotRaconteurNETPINVOKE.RobotRaconteurVersion_eq(RobotRaconteurVersion.getCPtr(v1), RobotRaconteurVersion.getCPtr(v2));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static bool RobotRaconteurVersion_ne(RobotRaconteurVersion v1, RobotRaconteurVersion v2) {
    bool ret = RobotRaconteurNETPINVOKE.RobotRaconteurVersion_ne(RobotRaconteurVersion.getCPtr(v1), RobotRaconteurVersion.getCPtr(v2));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static bool RobotRaconteurVersion_gt(RobotRaconteurVersion v1, RobotRaconteurVersion v2) {
    bool ret = RobotRaconteurNETPINVOKE.RobotRaconteurVersion_gt(RobotRaconteurVersion.getCPtr(v1), RobotRaconteurVersion.getCPtr(v2));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static bool RobotRaconteurVersion_ge(RobotRaconteurVersion v1, RobotRaconteurVersion v2) {
    bool ret = RobotRaconteurNETPINVOKE.RobotRaconteurVersion_ge(RobotRaconteurVersion.getCPtr(v1), RobotRaconteurVersion.getCPtr(v2));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static bool RobotRaconteurVersion_lt(RobotRaconteurVersion v1, RobotRaconteurVersion v2) {
    bool ret = RobotRaconteurNETPINVOKE.RobotRaconteurVersion_lt(RobotRaconteurVersion.getCPtr(v1), RobotRaconteurVersion.getCPtr(v2));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static bool RobotRaconteurVersion_le(RobotRaconteurVersion v1, RobotRaconteurVersion v2) {
    bool ret = RobotRaconteurNETPINVOKE.RobotRaconteurVersion_le(RobotRaconteurVersion.getCPtr(v1), RobotRaconteurVersion.getCPtr(v2));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static vectorserviceinfo2wrapped WrappedFindServiceByType(RobotRaconteurNode node, string servicetype, vectorstring transportschemes) {
    vectorserviceinfo2wrapped ret = new vectorserviceinfo2wrapped(RobotRaconteurNETPINVOKE.WrappedFindServiceByType(RobotRaconteurNode.getCPtr(node), servicetype, vectorstring.getCPtr(transportschemes)), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static void AsyncWrappedFindServiceByType(RobotRaconteurNode node, string servicetype, vectorstring transportschemes, int timeout, AsyncServiceInfo2VectorReturnDirector handler, int id) {
    RobotRaconteurNETPINVOKE.AsyncWrappedFindServiceByType(RobotRaconteurNode.getCPtr(node), servicetype, vectorstring.getCPtr(transportschemes), timeout, AsyncServiceInfo2VectorReturnDirector.getCPtr(handler), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static vectornodeinfo2 WrappedFindNodeByID(RobotRaconteurNode node, NodeID id, vectorstring transportschemes) {
    vectornodeinfo2 ret = new vectornodeinfo2(RobotRaconteurNETPINVOKE.WrappedFindNodeByID(RobotRaconteurNode.getCPtr(node), NodeID.getCPtr(id), vectorstring.getCPtr(transportschemes)), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static vectornodeinfo2 WrappedFindNodeByName(RobotRaconteurNode node, string name, vectorstring transportschemes) {
    vectornodeinfo2 ret = new vectornodeinfo2(RobotRaconteurNETPINVOKE.WrappedFindNodeByName(RobotRaconteurNode.getCPtr(node), name, vectorstring.getCPtr(transportschemes)), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static void AsyncWrappedFindNodeByID(RobotRaconteurNode node, NodeID id, vectorstring transportschemes, int timeout, AsyncNodeInfo2VectorReturnDirector handler, int id1) {
    RobotRaconteurNETPINVOKE.AsyncWrappedFindNodeByID(RobotRaconteurNode.getCPtr(node), NodeID.getCPtr(id), vectorstring.getCPtr(transportschemes), timeout, AsyncNodeInfo2VectorReturnDirector.getCPtr(handler), id1);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static void AsyncWrappedFindNodeByName(RobotRaconteurNode node, string name, vectorstring transportschemes, int timeout, AsyncNodeInfo2VectorReturnDirector handler, int id) {
    RobotRaconteurNETPINVOKE.AsyncWrappedFindNodeByName(RobotRaconteurNode.getCPtr(node), name, vectorstring.getCPtr(transportschemes), timeout, AsyncNodeInfo2VectorReturnDirector.getCPtr(handler), id);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static void WrappedUpdateDetectedNodes(RobotRaconteurNode node, vectorstring schemes) {
    RobotRaconteurNETPINVOKE.WrappedUpdateDetectedNodes(RobotRaconteurNode.getCPtr(node), vectorstring.getCPtr(schemes));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static void AsyncWrappedUpdateDetectedNodes(RobotRaconteurNode node, vectorstring schemes, int timeout, AsyncVoidNoErrReturnDirector handler, int id1) {
    RobotRaconteurNETPINVOKE.AsyncWrappedUpdateDetectedNodes(RobotRaconteurNode.getCPtr(node), vectorstring.getCPtr(schemes), timeout, AsyncVoidNoErrReturnDirector.getCPtr(handler), id1);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
  }

  public static vectorstring WrappedGetDetectedNodes(RobotRaconteurNode node) {
    vectorstring ret = new vectorstring(RobotRaconteurNETPINVOKE.WrappedGetDetectedNodes(RobotRaconteurNode.getCPtr(node)), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static WrappedNodeInfo2 WrappedGetDetectedNodeCacheInfo(RobotRaconteurNode node, NodeID nodeid) {
    WrappedNodeInfo2 ret = new WrappedNodeInfo2(RobotRaconteurNETPINVOKE.WrappedGetDetectedNodeCacheInfo(RobotRaconteurNode.getCPtr(node), NodeID.getCPtr(nodeid)), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static bool WrappedTryGetDetectedNodeCacheInfo(RobotRaconteurNode node, NodeID nodeid, WrappedNodeInfo2 nodeinfo2) {
    bool ret = RobotRaconteurNETPINVOKE.WrappedTryGetDetectedNodeCacheInfo(RobotRaconteurNode.getCPtr(node), NodeID.getCPtr(nodeid), WrappedNodeInfo2.getCPtr(nodeinfo2));
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static ServiceSubscriptionFilterAttribute CreateServiceSubscriptionFilterAttributeRegex(string regex_value) {
    ServiceSubscriptionFilterAttribute ret = new ServiceSubscriptionFilterAttribute(RobotRaconteurNETPINVOKE.CreateServiceSubscriptionFilterAttributeRegex__SWIG_0(regex_value), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static ServiceSubscriptionFilterAttribute CreateServiceSubscriptionFilterAttributeRegex(string name, string regex_value) {
    ServiceSubscriptionFilterAttribute ret = new ServiceSubscriptionFilterAttribute(RobotRaconteurNETPINVOKE.CreateServiceSubscriptionFilterAttributeRegex__SWIG_1(name, regex_value), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static ServiceSubscriptionFilterAttribute CreateServiceSubscriptionFilterAttributeIdentifier(string identifier_name, string uuid_string) {
    ServiceSubscriptionFilterAttribute ret = new ServiceSubscriptionFilterAttribute(RobotRaconteurNETPINVOKE.CreateServiceSubscriptionFilterAttributeIdentifier__SWIG_0(identifier_name, uuid_string), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static ServiceSubscriptionFilterAttribute CreateServiceSubscriptionFilterAttributeIdentifier(string name, string identifier_name, string uuid_string) {
    ServiceSubscriptionFilterAttribute ret = new ServiceSubscriptionFilterAttribute(RobotRaconteurNETPINVOKE.CreateServiceSubscriptionFilterAttributeIdentifier__SWIG_1(name, identifier_name, uuid_string), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static ServiceSubscriptionFilterAttribute CreateServiceSubscriptionFilterAttributeCombinedIdentifier(string combined_identifier) {
    ServiceSubscriptionFilterAttribute ret = new ServiceSubscriptionFilterAttribute(RobotRaconteurNETPINVOKE.CreateServiceSubscriptionFilterAttributeCombinedIdentifier(combined_identifier), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static vectorptr_subscriptionclientid WrappedServiceInfo2SubscriptionServicesToVector(map_subscriptionserviceinfo2 infos) {
    vectorptr_subscriptionclientid ret = new vectorptr_subscriptionclientid(RobotRaconteurNETPINVOKE.WrappedServiceInfo2SubscriptionServicesToVector(map_subscriptionserviceinfo2.getCPtr(infos)), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static WrappedServiceInfo2Subscription WrappedSubscribeServiceInfo2(RobotRaconteurNode node, vectorstring service_types, WrappedServiceSubscriptionFilter filter) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedSubscribeServiceInfo2__SWIG_0(RobotRaconteurNode.getCPtr(node), vectorstring.getCPtr(service_types), WrappedServiceSubscriptionFilter.getCPtr(filter));
    WrappedServiceInfo2Subscription ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceInfo2Subscription(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static WrappedServiceInfo2Subscription WrappedSubscribeServiceInfo2(RobotRaconteurNode node, vectorstring service_types) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedSubscribeServiceInfo2__SWIG_1(RobotRaconteurNode.getCPtr(node), vectorstring.getCPtr(service_types));
    WrappedServiceInfo2Subscription ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceInfo2Subscription(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static vectorptr_subscriptionclientid WrappedServiceSubscriptionClientsToVector(map_subscriptionclients clients) {
    vectorptr_subscriptionclientid ret = new vectorptr_subscriptionclientid(RobotRaconteurNETPINVOKE.WrappedServiceSubscriptionClientsToVector(map_subscriptionclients.getCPtr(clients)), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static WrappedServiceSubscription WrappedSubscribeServiceByType(RobotRaconteurNode node, vectorstring service_types, WrappedServiceSubscriptionFilter filter) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedSubscribeServiceByType__SWIG_0(RobotRaconteurNode.getCPtr(node), vectorstring.getCPtr(service_types), WrappedServiceSubscriptionFilter.getCPtr(filter));
    WrappedServiceSubscription ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceSubscription(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static WrappedServiceSubscription WrappedSubscribeServiceByType(RobotRaconteurNode node, vectorstring service_types) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedSubscribeServiceByType__SWIG_1(RobotRaconteurNode.getCPtr(node), vectorstring.getCPtr(service_types));
    WrappedServiceSubscription ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceSubscription(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static WrappedServiceSubscription WrappedSubscribeService(RobotRaconteurNode node, vectorstring url, string username, MessageElementData credentials, string objecttype) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedSubscribeService__SWIG_0(RobotRaconteurNode.getCPtr(node), vectorstring.getCPtr(url), username, MessageElementData.getCPtr(credentials), objecttype);
    WrappedServiceSubscription ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceSubscription(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static WrappedServiceSubscription WrappedSubscribeService(RobotRaconteurNode node, vectorstring url, string username, MessageElementData credentials) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedSubscribeService__SWIG_1(RobotRaconteurNode.getCPtr(node), vectorstring.getCPtr(url), username, MessageElementData.getCPtr(credentials));
    WrappedServiceSubscription ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceSubscription(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static WrappedServiceSubscription WrappedSubscribeService(RobotRaconteurNode node, vectorstring url, string username) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedSubscribeService__SWIG_2(RobotRaconteurNode.getCPtr(node), vectorstring.getCPtr(url), username);
    WrappedServiceSubscription ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceSubscription(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static WrappedServiceSubscription WrappedSubscribeService(RobotRaconteurNode node, vectorstring url) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedSubscribeService__SWIG_3(RobotRaconteurNode.getCPtr(node), vectorstring.getCPtr(url));
    WrappedServiceSubscription ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceSubscription(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static WrappedServiceSubscription WrappedSubscribeService(RobotRaconteurNode node, string url, string username, MessageElementData credentials, string objecttype) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedSubscribeService__SWIG_4(RobotRaconteurNode.getCPtr(node), url, username, MessageElementData.getCPtr(credentials), objecttype);
    WrappedServiceSubscription ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceSubscription(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static WrappedServiceSubscription WrappedSubscribeService(RobotRaconteurNode node, string url, string username, MessageElementData credentials) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedSubscribeService__SWIG_5(RobotRaconteurNode.getCPtr(node), url, username, MessageElementData.getCPtr(credentials));
    WrappedServiceSubscription ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceSubscription(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static WrappedServiceSubscription WrappedSubscribeService(RobotRaconteurNode node, string url, string username) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedSubscribeService__SWIG_6(RobotRaconteurNode.getCPtr(node), url, username);
    WrappedServiceSubscription ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceSubscription(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static WrappedServiceSubscription WrappedSubscribeService(RobotRaconteurNode node, string url) {
    global::System.IntPtr cPtr = RobotRaconteurNETPINVOKE.WrappedSubscribeService__SWIG_7(RobotRaconteurNode.getCPtr(node), url);
    WrappedServiceSubscription ret = (cPtr == global::System.IntPtr.Zero) ? null : new WrappedServiceSubscription(cPtr, true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static GetUuidForNameAndLockResult GetUuidForNameAndLock(NodeDirectories node_dirs, string name, vectorstring scope) {
    GetUuidForNameAndLockResult ret = new GetUuidForNameAndLockResult(RobotRaconteurNETPINVOKE.GetUuidForNameAndLock(NodeDirectories.getCPtr(node_dirs), name, vectorstring.getCPtr(scope)), true);
    if (RobotRaconteurNETPINVOKE.SWIGPendingException.Pending) throw RobotRaconteurNETPINVOKE.SWIGPendingException.Retrieve();
    return ret;
  }

  public static readonly int RR_TIMEOUT_INFINITE = RobotRaconteurNETPINVOKE.RR_TIMEOUT_INFINITE_get();
  public static readonly int RR_VALUE_LIFESPAN_INFINITE = RobotRaconteurNETPINVOKE.RR_VALUE_LIFESPAN_INFINITE_get();
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class SWIGTYPE_p_boost__optionalT_std__string_t {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;

  internal SWIGTYPE_p_boost__optionalT_std__string_t(global::System.IntPtr cPtr, bool futureUse) {
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  protected SWIGTYPE_p_boost__optionalT_std__string_t() {
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(SWIGTYPE_p_boost__optionalT_std__string_t obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class SWIGTYPE_p_boost__string_ref {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;

  internal SWIGTYPE_p_boost__string_ref(global::System.IntPtr cPtr, bool futureUse) {
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  protected SWIGTYPE_p_boost__string_ref() {
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(SWIGTYPE_p_boost__string_ref obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }
}

}
namespace RobotRaconteur {

using global::System;
using global::System.Runtime.InteropServices;

public class SWIGTYPE_p_std__vectorT_RobotRaconteur__ServiceSubscriptionFilterAttributeGroup_t {
  private global::System.Runtime.InteropServices.HandleRef swigCPtr;

  internal SWIGTYPE_p_std__vectorT_RobotRaconteur__ServiceSubscriptionFilterAttributeGroup_t(global::System.IntPtr cPtr, bool futureUse) {
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(this, cPtr);
  }

  protected SWIGTYPE_p_std__vectorT_RobotRaconteur__ServiceSubscriptionFilterAttributeGroup_t() {
    swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
  }

  internal static global::System.Runtime.InteropServices.HandleRef getCPtr(SWIGTYPE_p_std__vectorT_RobotRaconteur__ServiceSubscriptionFilterAttributeGroup_t obj) {
    return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
  }
}

}
