Beispiel #1
0
        private void Dispose(bool fDisposing)
        {
            if (fDisposing)
            {
                GC.SuppressFinalize((object)this);
            }
            StoreTransactionOperation[] transactionOperationArray = this._storeOps;
            this._storeOps = (StoreTransactionOperation[])null;
            if (transactionOperationArray == null)
            {
                return;
            }
            for (int index = 0; index != transactionOperationArray.Length; ++index)
            {
                StoreTransactionOperation transactionOperation = transactionOperationArray[index];
                if (transactionOperation.Data.DataPtr != IntPtr.Zero)
                {
                    switch (transactionOperation.Operation)
                    {
                    case StoreTransactionOperationType.SetCanonicalizationContext:
                        Marshal.DestroyStructure(transactionOperation.Data.DataPtr, typeof(StoreOperationSetCanonicalizationContext));
                        break;

                    case StoreTransactionOperationType.StageComponent:
                        Marshal.DestroyStructure(transactionOperation.Data.DataPtr, typeof(StoreOperationStageComponent));
                        break;

                    case StoreTransactionOperationType.PinDeployment:
                        Marshal.DestroyStructure(transactionOperation.Data.DataPtr, typeof(StoreOperationPinDeployment));
                        break;

                    case StoreTransactionOperationType.UnpinDeployment:
                        Marshal.DestroyStructure(transactionOperation.Data.DataPtr, typeof(StoreOperationUnpinDeployment));
                        break;

                    case StoreTransactionOperationType.StageComponentFile:
                        Marshal.DestroyStructure(transactionOperation.Data.DataPtr, typeof(StoreOperationStageComponentFile));
                        break;

                    case StoreTransactionOperationType.InstallDeployment:
                        Marshal.DestroyStructure(transactionOperation.Data.DataPtr, typeof(StoreOperationInstallDeployment));
                        break;

                    case StoreTransactionOperationType.UninstallDeployment:
                        Marshal.DestroyStructure(transactionOperation.Data.DataPtr, typeof(StoreOperationUninstallDeployment));
                        break;

                    case StoreTransactionOperationType.SetDeploymentMetadata:
                        Marshal.DestroyStructure(transactionOperation.Data.DataPtr, typeof(StoreOperationSetDeploymentMetadata));
                        break;

                    case StoreTransactionOperationType.Scavenge:
                        Marshal.DestroyStructure(transactionOperation.Data.DataPtr, typeof(StoreOperationScavenge));
                        break;
                    }
                    Marshal.FreeCoTaskMem(transactionOperation.Data.DataPtr);
                }
            }
        }
        private void Dispose(bool fDisposing)
        {
            if (fDisposing)
            {
                GC.SuppressFinalize(this);
            }
            StoreTransactionOperation[] storeOps = this._storeOps;
            this._storeOps = null;
            if (storeOps != null)
            {
                for (int num = 0; num != storeOps.Length; num++)
                {
                    StoreTransactionOperation storeTransactionOperation = storeOps[num];
                    if (storeTransactionOperation.Data.DataPtr != IntPtr.Zero)
                    {
                        switch (storeTransactionOperation.Operation)
                        {
                        case StoreTransactionOperationType.SetCanonicalizationContext:
                            Marshal.DestroyStructure(storeTransactionOperation.Data.DataPtr, typeof(StoreOperationSetCanonicalizationContext));
                            break;

                        case StoreTransactionOperationType.StageComponent:
                            Marshal.DestroyStructure(storeTransactionOperation.Data.DataPtr, typeof(StoreOperationStageComponent));
                            break;

                        case StoreTransactionOperationType.PinDeployment:
                            Marshal.DestroyStructure(storeTransactionOperation.Data.DataPtr, typeof(StoreOperationPinDeployment));
                            break;

                        case StoreTransactionOperationType.UnpinDeployment:
                            Marshal.DestroyStructure(storeTransactionOperation.Data.DataPtr, typeof(StoreOperationUnpinDeployment));
                            break;

                        case StoreTransactionOperationType.StageComponentFile:
                            Marshal.DestroyStructure(storeTransactionOperation.Data.DataPtr, typeof(StoreOperationStageComponentFile));
                            break;

                        case StoreTransactionOperationType.InstallDeployment:
                            Marshal.DestroyStructure(storeTransactionOperation.Data.DataPtr, typeof(StoreOperationInstallDeployment));
                            break;

                        case StoreTransactionOperationType.UninstallDeployment:
                            Marshal.DestroyStructure(storeTransactionOperation.Data.DataPtr, typeof(StoreOperationUninstallDeployment));
                            break;

                        case StoreTransactionOperationType.SetDeploymentMetadata:
                            Marshal.DestroyStructure(storeTransactionOperation.Data.DataPtr, typeof(StoreOperationSetDeploymentMetadata));
                            break;

                        case StoreTransactionOperationType.Scavenge:
                            Marshal.DestroyStructure(storeTransactionOperation.Data.DataPtr, typeof(StoreOperationScavenge));
                            break;
                        }
                        Marshal.FreeCoTaskMem(storeTransactionOperation.Data.DataPtr);
                    }
                }
            }
        }
Beispiel #3
0
 private StoreTransactionOperation[] GenerateStoreOpsList()
 {
     StoreTransactionOperation[] operationArray = new StoreTransactionOperation[this._list.Count];
     for (int i = 0; i != this._list.Count; i++)
     {
         object structure = this._list[i];
         Type   type      = structure.GetType();
         operationArray[i].Data.DataPtr = Marshal.AllocCoTaskMem(Marshal.SizeOf(structure));
         Marshal.StructureToPtr(structure, operationArray[i].Data.DataPtr, false);
         if (type == typeof(StoreOperationSetCanonicalizationContext))
         {
             operationArray[i].Operation = StoreTransactionOperationType.SetCanonicalizationContext;
         }
         else if (type == typeof(StoreOperationStageComponent))
         {
             operationArray[i].Operation = StoreTransactionOperationType.StageComponent;
         }
         else if (type == typeof(StoreOperationPinDeployment))
         {
             operationArray[i].Operation = StoreTransactionOperationType.PinDeployment;
         }
         else if (type == typeof(StoreOperationUnpinDeployment))
         {
             operationArray[i].Operation = StoreTransactionOperationType.UnpinDeployment;
         }
         else if (type == typeof(StoreOperationStageComponentFile))
         {
             operationArray[i].Operation = StoreTransactionOperationType.StageComponentFile;
         }
         else if (type == typeof(StoreOperationInstallDeployment))
         {
             operationArray[i].Operation = StoreTransactionOperationType.InstallDeployment;
         }
         else if (type == typeof(StoreOperationUninstallDeployment))
         {
             operationArray[i].Operation = StoreTransactionOperationType.UninstallDeployment;
         }
         else if (type == typeof(StoreOperationSetDeploymentMetadata))
         {
             operationArray[i].Operation = StoreTransactionOperationType.SetDeploymentMetadata;
         }
         else
         {
             if (type != typeof(StoreOperationScavenge))
             {
                 throw new Exception("How did you get here?");
             }
             operationArray[i].Operation = StoreTransactionOperationType.Scavenge;
         }
     }
     return(operationArray);
 }
 private StoreTransactionOperation[] GenerateStoreOpsList()
 {
     StoreTransactionOperation[] array = new StoreTransactionOperation[this._list.Count];
     for (int num = 0; num != this._list.Count; num++)
     {
         object obj  = this._list[num];
         Type   type = obj.GetType();
         array[num].Data.DataPtr = Marshal.AllocCoTaskMem(Marshal.SizeOf(obj));
         Marshal.StructureToPtr(obj, array[num].Data.DataPtr, false);
         if (type == typeof(StoreOperationSetCanonicalizationContext))
         {
             array[num].Operation = StoreTransactionOperationType.SetCanonicalizationContext;
         }
         else if (type == typeof(StoreOperationStageComponent))
         {
             array[num].Operation = StoreTransactionOperationType.StageComponent;
         }
         else if (type == typeof(StoreOperationPinDeployment))
         {
             array[num].Operation = StoreTransactionOperationType.PinDeployment;
         }
         else if (type == typeof(StoreOperationUnpinDeployment))
         {
             array[num].Operation = StoreTransactionOperationType.UnpinDeployment;
         }
         else if (type == typeof(StoreOperationStageComponentFile))
         {
             array[num].Operation = StoreTransactionOperationType.StageComponentFile;
         }
         else if (type == typeof(StoreOperationInstallDeployment))
         {
             array[num].Operation = StoreTransactionOperationType.InstallDeployment;
         }
         else if (type == typeof(StoreOperationUninstallDeployment))
         {
             array[num].Operation = StoreTransactionOperationType.UninstallDeployment;
         }
         else if (type == typeof(StoreOperationSetDeploymentMetadata))
         {
             array[num].Operation = StoreTransactionOperationType.SetDeploymentMetadata;
         }
         else
         {
             if (!(type == typeof(StoreOperationScavenge)))
             {
                 throw new Exception("How did you get here?");
             }
             array[num].Operation = StoreTransactionOperationType.Scavenge;
         }
     }
     return(array);
 }
 private StoreTransactionOperation[] GenerateStoreOpsList()
 {
     StoreTransactionOperation[] operationArray = new StoreTransactionOperation[this._list.Count];
     for (int i = 0; i != this._list.Count; i++)
     {
         object structure = this._list[i];
         Type type = structure.GetType();
         operationArray[i].Data.DataPtr = Marshal.AllocCoTaskMem(Marshal.SizeOf(structure));
         Marshal.StructureToPtr(structure, operationArray[i].Data.DataPtr, false);
         if (type == typeof(StoreOperationSetCanonicalizationContext))
         {
             operationArray[i].Operation = StoreTransactionOperationType.SetCanonicalizationContext;
         }
         else if (type == typeof(StoreOperationStageComponent))
         {
             operationArray[i].Operation = StoreTransactionOperationType.StageComponent;
         }
         else if (type == typeof(StoreOperationPinDeployment))
         {
             operationArray[i].Operation = StoreTransactionOperationType.PinDeployment;
         }
         else if (type == typeof(StoreOperationUnpinDeployment))
         {
             operationArray[i].Operation = StoreTransactionOperationType.UnpinDeployment;
         }
         else if (type == typeof(StoreOperationStageComponentFile))
         {
             operationArray[i].Operation = StoreTransactionOperationType.StageComponentFile;
         }
         else if (type == typeof(StoreOperationInstallDeployment))
         {
             operationArray[i].Operation = StoreTransactionOperationType.InstallDeployment;
         }
         else if (type == typeof(StoreOperationUninstallDeployment))
         {
             operationArray[i].Operation = StoreTransactionOperationType.UninstallDeployment;
         }
         else if (type == typeof(StoreOperationSetDeploymentMetadata))
         {
             operationArray[i].Operation = StoreTransactionOperationType.SetDeploymentMetadata;
         }
         else
         {
             if (type != typeof(StoreOperationScavenge))
             {
                 throw new Exception("How did you get here?");
             }
             operationArray[i].Operation = StoreTransactionOperationType.Scavenge;
         }
     }
     return operationArray;
 }
Beispiel #6
0
 public uint[] Transact(StoreTransactionOperation[] operations)
 {
     if ((operations == null) || (operations.Length == 0))
     {
         throw new ArgumentException("operations");
     }
     uint[] rgDispositions = new uint[operations.Length];
     int[] rgResults = new int[operations.Length];
     this._pStore.Transact(new IntPtr(operations.Length), operations, rgDispositions, rgResults);
     return rgDispositions;
 }
        [System.Security.SecuritySafeCritical]  // auto-generated
        private StoreTransactionOperation[] GenerateStoreOpsList()
        {
            StoreTransactionOperation[] txnList = new StoreTransactionOperation[_list.Count];

            for (int i = 0; i != _list.Count; i++)
            {
                object o = _list[i];
                System.Type t = o.GetType();

                txnList[i].Data.DataPtr = Marshal.AllocCoTaskMem(Marshal.SizeOf(o));
                Marshal.StructureToPtr(o, txnList[i].Data.DataPtr, false);


                if (t == typeof(StoreOperationSetCanonicalizationContext))
                {
                    txnList[i].Operation = StoreTransactionOperationType.SetCanonicalizationContext;
                }
                else if (t == typeof(StoreOperationStageComponent))
                {
                    txnList[i].Operation = StoreTransactionOperationType.StageComponent;
                }
                else if (t == typeof(StoreOperationPinDeployment))
                {
                    txnList[i].Operation = StoreTransactionOperationType.PinDeployment;
                }
                else if (t == typeof(StoreOperationUnpinDeployment))
                {
                    txnList[i].Operation = StoreTransactionOperationType.UnpinDeployment;
                }
                else if (t == typeof(StoreOperationStageComponentFile))
                {
                    txnList[i].Operation = StoreTransactionOperationType.StageComponentFile;
                }
                else if (t == typeof(StoreOperationInstallDeployment))
                {
                    txnList[i].Operation = StoreTransactionOperationType.InstallDeployment;
                }
                else if (t == typeof(StoreOperationUninstallDeployment))
                {
                    txnList[i].Operation = StoreTransactionOperationType.UninstallDeployment;
                }
                else if (t == typeof(StoreOperationSetDeploymentMetadata))
                {
                    txnList[i].Operation = StoreTransactionOperationType.SetDeploymentMetadata;
                }
                else if (t == typeof(StoreOperationScavenge))
                {
                    txnList[i].Operation = StoreTransactionOperationType.Scavenge;
                }
                else
                {
                    throw new Exception("How did you get here?");
                }
            }

            return txnList;
        }
        public void Transact(StoreTransactionOperation[] operations, uint[] rgDispositions, int[] rgResults)
        {
            if ((operations == null) || (operations.Length == 0))
                throw new ArgumentException("operations");

            _pStore.Transact(new IntPtr(operations.Length), operations, rgDispositions, rgResults);
        }