/[gr2lib]/trunk/gr2lib/core/helpers/Helpers.cs
ViewVC logotype

Diff of /trunk/gr2lib/core/helpers/Helpers.cs

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

revision 83 by william, Fri Jul 16 21:26:08 2010 UTC revision 96 by william, Sat Jul 17 05:11:13 2010 UTC
# Line 4  using System.Text; Line 4  using System.Text;
4    
5  using gr2lib.core.coretypes.native;  using gr2lib.core.coretypes.native;
6  using System.Runtime.InteropServices;  using System.Runtime.InteropServices;
7    using System.Diagnostics;
8    
9  namespace gr2lib.core.helpers  namespace gr2lib.core.helpers
10  {  {
# Line 18  namespace gr2lib.core.helpers Line 19  namespace gr2lib.core.helpers
19                      throw new InvalidOperationException();                      throw new InvalidOperationException();
20                  }                  }
21    
22                  return (T)Marshal.PtrToStructure(pointer, typeof(T));                  T _object_implementation_ = (T)Marshal.PtrToStructure(pointer, typeof(T));
23    
24                    return _object_implementation_;
25              }              }
26              catch (Exception ex)              catch (Exception ex)
27              {              {
28                  Console.WriteLine(ex.ToString());                  StackTrace st = new StackTrace(true);
29                    Console.WriteLine(st.ToString() + "\n\n" + "Stack Trace: \n" + ex.ToString());
30                  return default(T);                  return default(T);
31              }              }
32          }          }
# Line 35  namespace gr2lib.core.helpers Line 39  namespace gr2lib.core.helpers
39              }              }
40              catch (Exception ex)              catch (Exception ex)
41              {              {
42                  Console.WriteLine(ex.ToString());                  StackTrace st = new StackTrace(true);
43                    Console.WriteLine(st.ToString() + "\n\n" + "Stack Trace: \n" + ex.ToString());
44                  return default(T[]);                  return default(T[]);
45              }              }
46          }          }
# Line 54  namespace gr2lib.core.helpers Line 59  namespace gr2lib.core.helpers
59              }              }
60              catch (Exception ex)              catch (Exception ex)
61              {              {
62                  Console.WriteLine(ex.ToString());                  StackTrace st = new StackTrace(true);
63                    Console.WriteLine(st.ToString() + "\n\n" + "Stack Trace: \n" + ex.ToString());
64                  return default(T[]);                  return default(T[]);
65              }              }
66          }          }
# Line 67  namespace gr2lib.core.helpers Line 73  namespace gr2lib.core.helpers
73              }              }
74              catch (Exception ex)              catch (Exception ex)
75              {              {
76                  Console.WriteLine(ex.ToString());                  StackTrace st = new StackTrace(true);
77                    Console.WriteLine(st.ToString() + "\n\n" + "Stack Trace: \n" + ex.ToString());
78                  return default(IntPtr[]);                  return default(IntPtr[]);
79              }              }
80          }          }
# Line 86  namespace gr2lib.core.helpers Line 93  namespace gr2lib.core.helpers
93              }              }
94              catch (Exception ex)              catch (Exception ex)
95              {              {
96                  Console.WriteLine(ex.ToString());                  StackTrace st = new StackTrace(true);
97                    Console.WriteLine(st.ToString() + "\n\n" + "Stack Trace: \n" + ex.ToString());
98                  return default(IntPtr[]);                  return default(IntPtr[]);
99              }              }
100          }          }
# Line 99  namespace gr2lib.core.helpers Line 107  namespace gr2lib.core.helpers
107              }              }
108              catch (Exception ex)              catch (Exception ex)
109              {              {
110                  Console.WriteLine(ex.ToString());                  StackTrace st = new StackTrace(true);
111                    Console.WriteLine(st.ToString() + "\n\n" + "Stack Trace: \n" + ex.ToString());
112                  return default(IntPtr[]);                  return default(IntPtr[]);
113              }              }
114          }          }
# Line 117  namespace gr2lib.core.helpers Line 126  namespace gr2lib.core.helpers
126              }              }
127              catch (Exception ex)              catch (Exception ex)
128              {              {
129                  Console.WriteLine(ex.ToString());                  StackTrace st = new StackTrace(true);
130                    Console.WriteLine(st.ToString() + "\n\n" + "Stack Trace: \n" + ex.ToString());
131                  return default(IntPtr[]);                  return default(IntPtr[]);
132              }              }
133          }          }
# Line 163  namespace gr2lib.core.helpers Line 173  namespace gr2lib.core.helpers
173    
174          public static int SizeOfStruct<T>() where T : struct          public static int SizeOfStruct<T>() where T : struct
175          {          {
176              object[] attributes = typeof(T).GetCustomAttributes(false);              try
             if (attributes == null || attributes.Length < 1) return 0;  
             int size = 0;  
             foreach (object attribute in attributes)  
177              {              {
178                  if (attribute is SizeAttribute)  
179                  {                  //object[] attributes = typeof(T).GetCustomAttributes(false);
180                      size = (attribute as SizeAttribute).Size;                  //if (attributes == null || attributes.Length < 1) return 0;
181                      break;                  int size = 0;
182                  }                  //foreach (object attribute in attributes)
183                    //{
184                    //    if (attribute is SizeAttribute)
185                    //    {
186                    //        size = (attribute as SizeAttribute).Size;
187                    //        break;
188                    //    }
189                    //}
190                    size = Marshal.SizeOf(typeof(T));
191                    return size;
192                }
193                catch (Exception ex)
194                {
195                    StackTrace st = new StackTrace(true);
196                    Console.WriteLine(st.ToString() + "\n\n" + "Stack Trace: \n" + ex.ToString());
197                    return 0;
198              }              }
             return size;  
199          }          }
200      }      }
201  }  }

Legend:
Removed from v.83  
changed lines
  Added in v.96

  ViewVC Help
Powered by ViewVC 1.1.22