/[RomCheater]/trunk/RomCheater.Logging/logger.cs
ViewVC logotype

Diff of /trunk/RomCheater.Logging/logger.cs

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

revision 268 by william, Sun Jun 3 19:47:47 2012 UTC revision 269 by william, Sun Jun 3 20:40:36 2012 UTC
# Line 61  namespace RomCheater.Logging Line 61  namespace RomCheater.Logging
61          public static implicit operator EnumNameValuePair<TValue>(loggerflagsbase<TValue> t) { return new loggerflagsbase<TValue>(t); }          public static implicit operator EnumNameValuePair<TValue>(loggerflagsbase<TValue> t) { return new loggerflagsbase<TValue>(t); }
62          public static implicit operator loggerflagsbase<TValue>(TValue t)          public static implicit operator loggerflagsbase<TValue>(TValue t)
63          {          {
64              foreach (KeyValuePair<TValue, EnumNameValuePair<TValue>> pair in value_pairs) { EnumNameValuePair<TValue> l = pair.Value; if (l.Value.Equals(t)) { return new loggerflagsbase<TValue>(l); } }              //foreach (KeyValuePair<TValue, EnumNameValuePair<TValue>> pair in value_pairs) { EnumNameValuePair<TValue> l = pair.Value; if (l.Value.Equals(t)) { return new loggerflagsbase<TValue>(l); } }
65              return loggerflagsbase<TValue>.NONE;              //return loggerflagsbase<TValue>.NONE;
66                List<string> pairs = new List<string>();
67                StringBuilder builder = new StringBuilder();
68                foreach (KeyValuePair<TValue, EnumNameValuePair<TValue>> pair in value_pairs)
69                {
70                    EnumNameValuePair<TValue> enum_pair = pair.Value;
71                    if (HasFlag(pair.Value, t) && enum_pair != NONE)
72                    {
73                        pairs.Add(enum_pair);
74                    }
75                }
76                if (pairs.Count == 0)
77                {
78                    return NONE;
79                }
80                else
81                {
82                    int count = 0;
83                    foreach (string pair in pairs)
84                    {
85                        if (count == 0)
86                        {
87                            builder.AppendLine(pair);
88                        }
89                        else
90                        {
91                            builder.AppendFormat(" | {0}",pair);
92                        }
93                        count++;
94                    }
95                    loggerflagsbase<TValue> rVal = new loggerflagsbase<TValue>(new EnumNameValuePair<TValue>(builder.ToString(), t));
96                    return rVal;
97                }
98          }          }
99          public static implicit operator TValue(loggerflagsbase<TValue> t) { return t.CurrentValue.Value; }          public static implicit operator TValue(loggerflagsbase<TValue> t) { return t.CurrentValue.Value; }
100          public static implicit operator string(loggerflagsbase<TValue> t) { return t.CurrentValue.Name; }          public static implicit operator string(loggerflagsbase<TValue> t) { return t.CurrentValue.Name; }
# Line 107  namespace RomCheater.Logging Line 139  namespace RomCheater.Logging
139          {          {
140              bool hasflag = false;              bool hasflag = false;
141              TValue value = this.CurrentValue;              TValue value = this.CurrentValue;
142              if (!(EnumNameValuePair<TValue>.bitwise_and(flag, value)).Equals(value))              if ((EnumNameValuePair<TValue>.bitwise_and(flag, value)).Equals(flag))
143                    hasflag = true;
144                return hasflag;
145            }
146            public static bool HasFlag(TValue flag, TValue compare)
147            {
148                bool hasflag = false;
149                TValue value = compare;
150                if ((EnumNameValuePair<TValue>.bitwise_and(flag, value)).Equals(flag))
151                  hasflag = true;                  hasflag = true;
152              return hasflag;              return hasflag;
153          }          }
   
154          public static List<TValue> GetValues() { return value_pairs.Keys.ToList(); }          public static List<TValue> GetValues() { return value_pairs.Keys.ToList(); }
155          public static List<string> GetNames() { return name_pairs.Keys.ToList(); }          public static List<string> GetNames() { return name_pairs.Keys.ToList(); }
156    

Legend:
Removed from v.268  
changed lines
  Added in v.269

  ViewVC Help
Powered by ViewVC 1.1.22