/[RomCheater]/trunk/RomCheater/Docking/FloatingMemorySearcher.cs
ViewVC logotype

Diff of /trunk/RomCheater/Docking/FloatingMemorySearcher.cs

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 530 by william, Wed Jun 5 08:19:24 2013 UTC revision 532 by william, Wed Jun 5 09:01:44 2013 UTC
# Line 75  namespace RomCheater.Docking Line 75  namespace RomCheater.Docking
75              resultsprogress.Message = pm.Message;              resultsprogress.Message = pm.Message;
76          }          }
77    
78            private bool ShouldCancelAnySearchOperation() { return SearchWorkerThread.CancellationPending; }
79    
80          private void UpdateProgress(int progress, string message)          private void UpdateProgress(int progress, string message)
81          {          {            
82              // detach the progress update from execution within the current thread (so it does not block a cpu-intensive or long running sequence)              // detach the progress update from execution within the current thread (so it does not block a cpu-intensive or long running sequence)
83              Thread t = new Thread(new ParameterizedThreadStart(thread_UpdateProgress));              Thread t = new Thread(new ParameterizedThreadStart(thread_UpdateProgress));
84              t.SetApartmentState(ApartmentState.STA);              t.SetApartmentState(ApartmentState.STA);
# Line 1828  namespace RomCheater.Docking Line 1830  namespace RomCheater.Docking
1830                                      if (unsigned)                                      if (unsigned)
1831                                      {                                      {
1832                                          #region 8bits - unsigned                                          #region 8bits - unsigned
1833                                          var t_data = BitTools.ConvertByteArray<byte>(data);                                          var t_data = BitTools.ConvertByteArray<byte>(data, new Func<bool>(ShouldCancelAnySearchOperation));
1834                                          foreach (var Value in t_data)                                          foreach (var Value in t_data)
1835                                          {                                          {
1836                                              if (SearchWorkerThread.CancellationPending) { break; }                                              if (SearchWorkerThread.CancellationPending) { break; }
# Line 1869  namespace RomCheater.Docking Line 1871  namespace RomCheater.Docking
1871                                      else                                      else
1872                                      {                                      {
1873                                          #region 8bits - signed                                          #region 8bits - signed
1874                                          var t_data = BitTools.ConvertByteArray<sbyte>(data);                                          var t_data = BitTools.ConvertByteArray<sbyte>(data, new Func<bool>(ShouldCancelAnySearchOperation));
1875                                          foreach (var Value in t_data)                                          foreach (var Value in t_data)
1876                                          {                                          {
1877                                              if (SearchWorkerThread.CancellationPending) { break; }                                              if (SearchWorkerThread.CancellationPending) { break; }
# Line 1911  namespace RomCheater.Docking Line 1913  namespace RomCheater.Docking
1913                                      if (unsigned)                                      if (unsigned)
1914                                      {                                      {
1915                                          #region 16bits - unsigned                                          #region 16bits - unsigned
1916                                            var t_data = BitTools.ConvertByteArray<ushort>(data);                                          var t_data = BitTools.ConvertByteArray<ushort>(data, new Func<bool>(ShouldCancelAnySearchOperation));
1917                                            foreach (var Value in t_data)                                            foreach (var Value in t_data)
1918                                            {                                            {
1919                                                if (SearchWorkerThread.CancellationPending) { break; }                                                if (SearchWorkerThread.CancellationPending) { break; }
# Line 1952  namespace RomCheater.Docking Line 1954  namespace RomCheater.Docking
1954                                      else                                      else
1955                                      {                                      {
1956                                          #region 16bits - signed                                          #region 16bits - signed
1957                                           var t_data = BitTools.ConvertByteArray<short>(data);                                          var t_data = BitTools.ConvertByteArray<short>(data, new Func<bool>(ShouldCancelAnySearchOperation));
1958                                           foreach (var Value in t_data)                                           foreach (var Value in t_data)
1959                                           {                                           {
1960                                               if (SearchWorkerThread.CancellationPending) { break; }                                               if (SearchWorkerThread.CancellationPending) { break; }
# Line 1994  namespace RomCheater.Docking Line 1996  namespace RomCheater.Docking
1996                                      if (unsigned)                                      if (unsigned)
1997                                      {                                      {
1998                                          #region 32bits - unsigned                                          #region 32bits - unsigned
1999                                           var t_data = BitTools.ConvertByteArray<uint>(data);                                          var t_data = BitTools.ConvertByteArray<uint>(data, new Func<bool>(ShouldCancelAnySearchOperation));
2000                                           foreach (var Value in t_data)                                           foreach (var Value in t_data)
2001                                           {                                           {
2002                                               if (SearchWorkerThread.CancellationPending) { break; }                                               if (SearchWorkerThread.CancellationPending) { break; }
# Line 2035  namespace RomCheater.Docking Line 2037  namespace RomCheater.Docking
2037                                      else                                      else
2038                                      {                                      {
2039                                          #region 32bits - signed                                          #region 32bits - signed
2040                                           var t_data = BitTools.ConvertByteArray<int>(data);                                          var t_data = BitTools.ConvertByteArray<int>(data, new Func<bool>(ShouldCancelAnySearchOperation));
2041                                           foreach (var Value in t_data)                                           foreach (var Value in t_data)
2042                                           {                                           {
2043                                               if (SearchWorkerThread.CancellationPending) { break; }                                               if (SearchWorkerThread.CancellationPending) { break; }
# Line 2077  namespace RomCheater.Docking Line 2079  namespace RomCheater.Docking
2079                                      if (unsigned)                                      if (unsigned)
2080                                      {                                      {
2081                                          #region 64bits - unsigned                                          #region 64bits - unsigned
2082                                           var t_data = BitTools.ConvertByteArray<ulong>(data);                                          var t_data = BitTools.ConvertByteArray<ulong>(data, new Func<bool>(ShouldCancelAnySearchOperation));
2083                                           foreach (var Value in t_data)                                           foreach (var Value in t_data)
2084                                           {                                           {
2085                                               if (SearchWorkerThread.CancellationPending) { break; }                                               if (SearchWorkerThread.CancellationPending) { break; }
# Line 2118  namespace RomCheater.Docking Line 2120  namespace RomCheater.Docking
2120                                      else                                      else
2121                                      {                                      {
2122                                          #region 64bits - signed                                          #region 64bits - signed
2123                                           var t_data = BitTools.ConvertByteArray<long>(data);                                          var t_data = BitTools.ConvertByteArray<long>(data, new Func<bool>(ShouldCancelAnySearchOperation));
2124                                           foreach (var Value in t_data)                                           foreach (var Value in t_data)
2125                                           {                                           {
2126                                               if (SearchWorkerThread.CancellationPending) { break; }                                               if (SearchWorkerThread.CancellationPending) { break; }
# Line 2275  namespace RomCheater.Docking Line 2277  namespace RomCheater.Docking
2277                                  int index = 0;                                  int index = 0;
2278                                  foreach (var k in reader.GetResults(SearchArgs.IsUnsignedDataType, SearchArgs.DataType, new Action<int, string>(UpdateProgress)))                                  foreach (var k in reader.GetResults(SearchArgs.IsUnsignedDataType, SearchArgs.DataType, new Action<int, string>(UpdateProgress)))
2279                                  {                                  {
2280                                        if (SearchWorkerThread.CancellationPending)
2281                                        {
2282                                            provider_st.Stop();
2283                                            st.Stop();
2284                                            writer.CancelRequest();
2285                                            writer.Dispose();
2286                                            e.Result = true;
2287                                            return;
2288                                        }
2289                                      int Last_Whole_Percent_Done = 0;                                      int Last_Whole_Percent_Done = 0;
2290                                      provider.OpenProvider();                                      provider.OpenProvider();
2291                                      int bytesRead = 0;                                      int bytesRead = 0;
# Line 2287  namespace RomCheater.Docking Line 2298  namespace RomCheater.Docking
2298                                      string message = string.Format(" -> Reading Address 0x{0:x8} from index 0x{1}", k.Address, index.ToString("X"));                                      string message = string.Format(" -> Reading Address 0x{0:x8} from index 0x{1}", k.Address, index.ToString("X"));
2299                                      double double_percent_done = 100.0 * (double)((double)index / (double)reader.ResultCount);                                      double double_percent_done = 100.0 * (double)((double)index / (double)reader.ResultCount);
2300                                      int int_percent_done = (int)double_percent_done;                                      int int_percent_done = (int)double_percent_done;
2301                                      if ((int_percent_done != Last_Whole_Percent_Done) && (index % 10000) == 0)                                      if ((int_percent_done != Last_Whole_Percent_Done) && (index % 1000000) == 0)
2302                                      {                                      {
2303                                          UpdateProgress((int)double_percent_done, message);                                          UpdateProgress((int)double_percent_done, message);
2304                                          Last_Whole_Percent_Done = int_percent_done;                                          Last_Whole_Percent_Done = int_percent_done;
# Line 2300  namespace RomCheater.Docking Line 2311  namespace RomCheater.Docking
2311                                              if (unsigned)                                              if (unsigned)
2312                                              {                                              {
2313                                                  #region 8bits - unsigned                                                  #region 8bits - unsigned
2314                                                  var t_data = BitTools.ConvertByteArray<byte>(data);                                                  var t_data = BitTools.ConvertByteArray<byte>(data, new Func<bool>(ShouldCancelAnySearchOperation));
2315                                                  foreach (var Value in t_data)                                                  foreach (var Value in t_data)
2316                                                  {                                                  {
2317                                                      if (SearchWorkerThread.CancellationPending) { break; }                                                      if (SearchWorkerThread.CancellationPending) { break; }
# Line 2341  namespace RomCheater.Docking Line 2352  namespace RomCheater.Docking
2352                                              else                                              else
2353                                              {                                              {
2354                                                  #region 8bits - signed                                                  #region 8bits - signed
2355                                                  var t_data = BitTools.ConvertByteArray<sbyte>(data);                                                  var t_data = BitTools.ConvertByteArray<sbyte>(data, new Func<bool>(ShouldCancelAnySearchOperation));
2356                                                  foreach (var Value in t_data)                                                  foreach (var Value in t_data)
2357                                                  {                                                  {
2358                                                      if (SearchWorkerThread.CancellationPending) { break; }                                                      if (SearchWorkerThread.CancellationPending) { break; }
# Line 2383  namespace RomCheater.Docking Line 2394  namespace RomCheater.Docking
2394                                              if (unsigned)                                              if (unsigned)
2395                                              {                                              {
2396                                                  #region 16bits - unsigned                                                  #region 16bits - unsigned
2397                                                  var t_data = BitTools.ConvertByteArray<ushort>(data);                                                  var t_data = BitTools.ConvertByteArray<ushort>(data, new Func<bool>(ShouldCancelAnySearchOperation));
2398                                                  foreach (var Value in t_data)                                                  foreach (var Value in t_data)
2399                                                  {                                                  {
2400                                                      if (SearchWorkerThread.CancellationPending) { break; }                                                      if (SearchWorkerThread.CancellationPending) { break; }
# Line 2424  namespace RomCheater.Docking Line 2435  namespace RomCheater.Docking
2435                                              else                                              else
2436                                              {                                              {
2437                                                  #region 16bits - signed                                                  #region 16bits - signed
2438                                                  var t_data = BitTools.ConvertByteArray<short>(data);                                                  var t_data = BitTools.ConvertByteArray<short>(data, new Func<bool>(ShouldCancelAnySearchOperation));
2439                                                  foreach (var Value in t_data)                                                  foreach (var Value in t_data)
2440                                                  {                                                  {
2441                                                      if (SearchWorkerThread.CancellationPending) { break; }                                                      if (SearchWorkerThread.CancellationPending) { break; }
# Line 2466  namespace RomCheater.Docking Line 2477  namespace RomCheater.Docking
2477                                              if (unsigned)                                              if (unsigned)
2478                                              {                                              {
2479                                                  #region 32bits - unsigned                                                  #region 32bits - unsigned
2480                                                  var t_data = BitTools.ConvertByteArray<uint>(data);                                                  var t_data = BitTools.ConvertByteArray<uint>(data, new Func<bool>(ShouldCancelAnySearchOperation));
2481                                                  foreach (var Value in t_data)                                                  foreach (var Value in t_data)
2482                                                  {                                                  {
2483                                                      if (SearchWorkerThread.CancellationPending) { break; }                                                      if (SearchWorkerThread.CancellationPending) { break; }
# Line 2507  namespace RomCheater.Docking Line 2518  namespace RomCheater.Docking
2518                                              else                                              else
2519                                              {                                              {
2520                                                  #region 32bits - signed                                                  #region 32bits - signed
2521                                                  var t_data = BitTools.ConvertByteArray<int>(data);                                                  var t_data = BitTools.ConvertByteArray<int>(data, new Func<bool>(ShouldCancelAnySearchOperation));
2522                                                  foreach (var Value in t_data)                                                  foreach (var Value in t_data)
2523                                                  {                                                  {
2524                                                      if (SearchWorkerThread.CancellationPending) { break; }                                                      if (SearchWorkerThread.CancellationPending) { break; }
# Line 2549  namespace RomCheater.Docking Line 2560  namespace RomCheater.Docking
2560                                              if (unsigned)                                              if (unsigned)
2561                                              {                                              {
2562                                                  #region 64bits - unsigned                                                  #region 64bits - unsigned
2563                                                  var t_data = BitTools.ConvertByteArray<ulong>(data);                                                  var t_data = BitTools.ConvertByteArray<ulong>(data, new Func<bool>(ShouldCancelAnySearchOperation));
2564                                                  foreach (var Value in t_data)                                                  foreach (var Value in t_data)
2565                                                  {                                                  {
2566                                                      if (SearchWorkerThread.CancellationPending) { break; }                                                      if (SearchWorkerThread.CancellationPending) { break; }
# Line 2590  namespace RomCheater.Docking Line 2601  namespace RomCheater.Docking
2601                                              else                                              else
2602                                              {                                              {
2603                                                  #region 64bits - signed                                                  #region 64bits - signed
2604                                                  var t_data = BitTools.ConvertByteArray<long>(data);                                                  var t_data = BitTools.ConvertByteArray<long>(data, new Func<bool>(ShouldCancelAnySearchOperation));
2605                                                  foreach (var Value in t_data)                                                  foreach (var Value in t_data)
2606                                                  {                                                  {
2607                                                      if (SearchWorkerThread.CancellationPending) { break; }                                                      if (SearchWorkerThread.CancellationPending) { break; }

Legend:
Removed from v.530  
changed lines
  Added in v.532

  ViewVC Help
Powered by ViewVC 1.1.22