Opc.Ua.Com.Server.ComHdaProxy.CreateTransaction C# (CSharp) Method

CreateTransaction() private method

Creates and queues a new transaction.
private CreateTransaction ( TransationType transationType, int transactionId, ExtensionObject details, List requests, bool asyncReportErrors, int &cancelId ) : int[]
transationType TransationType
transactionId int
details ExtensionObject
requests List
asyncReportErrors bool
cancelId int
return int[]
        private int[] CreateTransaction(
            TransationType transationType,
            int transactionId,
            ExtensionObject details,
            List<HdaReadRequest> requests,
            bool asyncReportErrors,
            out int cancelId)
        {

            lock (Lock)
            {
                cancelId = ++m_lastCancelId;

                // create the transaction.
                ReadRequestTransaction transaction = new ReadRequestTransaction();

                transaction.TransationType = transationType;
                transaction.TransactionId = transactionId;
                transaction.CancelId = cancelId;
                transaction.Details = details;
                transaction.Requests = new List<HdaReadRequest>();

                // keep only the valid requests.
                int[] errors = new int[requests.Count];

                for (int ii = 0; ii < requests.Count; ii++)
                {
                    if (!asyncReportErrors)
                    {
                        errors[ii] = requests[ii].Error;

                        if (errors[ii] < 0)
                        {
                            continue;
                        }
                    }

                    transaction.Requests.Add(requests[ii]);
                }
                
                // queue the transaction.
                if (transaction.Requests.Count > 0)
                {
                    m_transactions.Add(transaction.CancelId, transaction);
                    ThreadPool.QueueUserWorkItem(DoRead, transaction);
                }

                // return the error list.
                return errors;
            }
        }

Same methods

ComHdaProxy::CreateTransaction ( TransationType transationType, int transactionId, List requests, int &cancelId ) : int[]