Jypeli  9
The simple game programming library
Assert.cs
Siirry tämän tiedoston dokumentaatioon.
1 using System;
2 
3 namespace Jypeli
4 {
5  public partial class FileManager
6  {
7  public event Action<Exception> ReadAccessDenied;
8  public event Action<Exception> WriteAccessDenied;
9 
10  protected virtual void Initialize()
11  {
12  }
13 
14  private void OnAccessDenied( Exception e, bool write )
15  {
16  if ( !write && ReadAccessDenied != null )
17  ReadAccessDenied( e );
18  if ( write && WriteAccessDenied != null )
19  WriteAccessDenied( e );
20  }
21 
22  protected void FMAssert( Action func, bool write )
23  {
24 #if DEBUG
25  func();
26 #else
27  try
28  {
29  func();
30  }
31  catch ( Exception e )
32  {
33  OnAccessDenied( e, write );
34  }
35 #endif
36  }
37 
38  protected void FMAssert<TP1>( Action<TP1> func, bool write, TP1 p1 )
39  {
40 #if DEBUG
41  func( p1 );
42 #else
43  try
44  {
45  func( p1 );
46  }
47  catch ( Exception e )
48  {
49  OnAccessDenied( e, write );
50  }
51 #endif
52  }
53 
54  protected TR FMAssert<TR>(Func<TR> func, bool write, TR defaultVal)
55  {
56 #if DEBUG
57  return func();
58 #else
59  try
60  {
61  return func();
62  }
63  catch ( Exception e )
64  {
65  OnAccessDenied( e, write );
66  }
67 
68  return defaultVal;
69 #endif
70  }
71 
72  protected TR FMAssert<TP1, TR>( Func<TP1, TR> func, bool write, TR defaultVal, TP1 p1 )
73  {
74 #if DEBUG
75  return func( p1 );
76 #else
77  try
78  {
79  return func( p1 );
80  }
81  catch ( Exception e )
82  {
83  OnAccessDenied( e, write );
84  }
85 
86  return defaultVal;
87 #endif
88  }
89 
90  protected TR FMAssert<TP1, TP2, TR>( Func<TP1, TP2, TR> func, bool write, TR defaultVal, TP1 p1, TP2 p2 )
91  {
92 #if DEBUG
93  return func( p1, p2 );
94 #else
95  try
96  {
97  return func( p1, p2 );
98  }
99  catch ( Exception e )
100  {
101  OnAccessDenied( e, write );
102  }
103 
104  return defaultVal;
105 #endif
106  }
107  }
108 }
Jypeli
Definition: Automobile.cs:5
Jypeli.FileManager.ReadAccessDenied
Action< Exception > ReadAccessDenied
Definition: Assert.cs:7
Jypeli.FileManager.FMAssert
void FMAssert(Action func, bool write)
Definition: Assert.cs:22
Jypeli.FileManager.OnAccessDenied
void OnAccessDenied(Exception e, bool write)
Definition: Assert.cs:14
Jypeli.FileManager.Initialize
virtual void Initialize()
Definition: Assert.cs:10
Jypeli.FileManager.FMAssert< TP1, TR >
TR FMAssert< TP1, TR >(Func< TP1, TR > func, bool write, TR defaultVal, TP1 p1)
Definition: Assert.cs:72
Jypeli.FileManager.FMAssert< TP1 >
void FMAssert< TP1 >(Action< TP1 > func, bool write, TP1 p1)
Definition: Assert.cs:38
Jypeli.FileManager.FMAssert< TP1, TP2, TR >
TR FMAssert< TP1, TP2, TR >(Func< TP1, TP2, TR > func, bool write, TR defaultVal, TP1 p1, TP2 p2)
Definition: Assert.cs:90
Jypeli.FileManager.FMAssert< TR >
TR FMAssert< TR >(Func< TR > func, bool write, TR defaultVal)
Definition: Assert.cs:54
System
Definition: CFFauxAttributes.cs:29
Jypeli.FileManager.WriteAccessDenied
Action< Exception > WriteAccessDenied
Definition: Assert.cs:8
Jypeli.FileManager
Definition: Assert.cs:6