using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace NIDAQmx.Internal
{
    internal class Buffer
    {
        /// Return Type: int32->int
        ///taskHandle: TaskHandle->void*
        ///numSampsPerChan: uInt32->unsigned int
        [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
        public delegate NIDAQmx.DAQmxEnum.Result DAQmxCfgInputBuffer(System.IntPtr taskHandle, uint numSampsPerChan);


        /// Return Type: int32->int
        ///taskHandle: TaskHandle->void*
        ///numSampsPerChan: uInt32->unsigned int
        [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
        public delegate NIDAQmx.DAQmxEnum.Result DAQmxCfgOutputBuffer(System.IntPtr taskHandle, uint numSampsPerChan);

        /// Return Type: int32->int
        ///taskHandle: TaskHandle->void*
        ///data: uInt32*
        [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
        public delegate NIDAQmx.DAQmxEnum.Result DAQmxGetBufInputBufSize(System.IntPtr taskHandle, ref uint data);


        /// Return Type: int32->int
        ///taskHandle: TaskHandle->void*
        ///data: uInt32->unsigned int
        [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
        public delegate NIDAQmx.DAQmxEnum.Result DAQmxSetBufInputBufSize(System.IntPtr taskHandle, uint data);


        /// Return Type: int32->int
        ///taskHandle: TaskHandle->void*
        [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
        public delegate NIDAQmx.DAQmxEnum.Result DAQmxResetBufInputBufSize(System.IntPtr taskHandle);


        /// Return Type: int32->int
        ///taskHandle: TaskHandle->void*
        ///data: uInt32*
        [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
        public delegate NIDAQmx.DAQmxEnum.Result DAQmxGetBufInputOnbrdBufSize(System.IntPtr taskHandle, ref uint data);


        /// Return Type: int32->int
        ///taskHandle: TaskHandle->void*
        ///data: uInt32*
        [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
        public delegate NIDAQmx.DAQmxEnum.Result DAQmxGetBufOutputBufSize(System.IntPtr taskHandle, ref uint data);


        /// Return Type: int32->int
        ///taskHandle: TaskHandle->void*
        ///data: uInt32->unsigned int
        [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
        public delegate NIDAQmx.DAQmxEnum.Result DAQmxSetBufOutputBufSize(System.IntPtr taskHandle, uint data);


        /// Return Type: int32->int
        ///taskHandle: TaskHandle->void*
        [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
        public delegate NIDAQmx.DAQmxEnum.Result DAQmxResetBufOutputBufSize(System.IntPtr taskHandle);


        /// Return Type: int32->int
        ///taskHandle: TaskHandle->void*
        ///data: uInt32*
        [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
        public delegate NIDAQmx.DAQmxEnum.Result DAQmxGetBufOutputOnbrdBufSize(System.IntPtr taskHandle, ref uint data);


        /// Return Type: int32->int
        ///taskHandle: TaskHandle->void*
        ///data: uInt32->unsigned int
        [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
        public delegate NIDAQmx.DAQmxEnum.Result DAQmxSetBufOutputOnbrdBufSize(System.IntPtr taskHandle, uint data);


        /// Return Type: int32->int
        ///taskHandle: TaskHandle->void*
        [System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute(System.Runtime.InteropServices.CallingConvention.StdCall)]
        public delegate NIDAQmx.DAQmxEnum.Result DAQmxResetBufOutputOnbrdBufSize(System.IntPtr taskHandle);

    }
}
