//------------------------------------------------------------------------------
// <auto-generated />
//
// This file was automatically generated by SWIG (http://www.swig.org).
// Version 3.0.12
//
// Do not make changes to this file unless you know what you are doing--modify
// the SWIG interface file instead.
//------------------------------------------------------------------------------
namespace ons {
public class OrderProducer : global::System.IDisposable {
private global::System.Runtime.InteropServices.HandleRef swigCPtr;
protected bool swigCMemOwn;
internal OrderProducer(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(OrderProducer obj) {
return (obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr;
}
~OrderProducer() {
Dispose();
}
public virtual void Dispose() {
lock(this) {
if (swigCPtr.Handle != global::System.IntPtr.Zero) {
if (swigCMemOwn) {
swigCMemOwn = false;
ONSClient4CPPPINVOKE.delete_OrderProducer(swigCPtr);
}
swigCPtr = new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero);
}
global::System.GC.SuppressFinalize(this);
}
}
public OrderProducer() : this(ONSClient4CPPPINVOKE.new_OrderProducer(), true) {
SwigDirectorConnect();
}
public virtual void start() {
ONSClient4CPPPINVOKE.OrderProducer_start(swigCPtr);
}
public virtual void shutdown() {
ONSClient4CPPPINVOKE.OrderProducer_shutdown(swigCPtr);
}
public virtual SendResultONS send(Message msg, string shardingKey) {
SendResultONS ret = new SendResultONS(ONSClient4CPPPINVOKE.OrderProducer_send(swigCPtr, Message.getCPtr(msg), shardingKey), true);
if (ONSClient4CPPPINVOKE.SWIGPendingException.Pending) throw ONSClient4CPPPINVOKE.SWIGPendingException.Retrieve();
return ret;
}
private void SwigDirectorConnect() {
if (SwigDerivedClassHasMethod("start", swigMethodTypes0))
swigDelegate0 = new SwigDelegateOrderProducer_0(SwigDirectorstart);
if (SwigDerivedClassHasMethod("shutdown", swigMethodTypes1))
swigDelegate1 = new SwigDelegateOrderProducer_1(SwigDirectorshutdown);
if (SwigDerivedClassHasMethod("send", swigMethodTypes2))
swigDelegate2 = new SwigDelegateOrderProducer_2(SwigDirectorsend);
ONSClient4CPPPINVOKE.OrderProducer_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(OrderProducer));
return hasDerivedMethod;
}
private void SwigDirectorstart() {
start();
}
private void SwigDirectorshutdown() {
shutdown();
}
private global::System.IntPtr SwigDirectorsend(global::System.IntPtr msg, string shardingKey) {
return SendResultONS.getCPtr(send(new Message(msg, false), shardingKey)).Handle;
}
public delegate void SwigDelegateOrderProducer_0();
public delegate void SwigDelegateOrderProducer_1();
public delegate global::System.IntPtr SwigDelegateOrderProducer_2(global::System.IntPtr msg, string shardingKey);
private SwigDelegateOrderProducer_0 swigDelegate0;
private SwigDelegateOrderProducer_1 swigDelegate1;
private SwigDelegateOrderProducer_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(Message), typeof(string) };
}
}