Clean up channel modes

Makes channel modes flags instead of a straight enum allowing us to check
properties directly.

BUG=none
TEST=BUILD

Review URL: http://codereview.chromium.org/6334061

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@73658 0039d316-1c4b-4281-b951-d872f2087c98


CrOS-Libchrome-Original-Commit: 1707726c90f2e3eca0c91e08586130988bd6edfd
diff --git a/ipc/ipc_channel.h b/ipc/ipc_channel.h
index 3b8afd8..91d9f2b 100644
--- a/ipc/ipc_channel.h
+++ b/ipc/ipc_channel.h
@@ -62,17 +62,26 @@
 #endif  // OS_POSIX
   };
 
+  // Flags to test modes
+  enum ModeFlags {
+    MODE_NO_FLAG = 0x0,
+    MODE_SERVER_FLAG = 0x1,
+    MODE_CLIENT_FLAG = 0x2,
+    MODE_NAMED_FLAG = 0x4
+  };
+
+  // Some Standard Modes
   enum Mode {
-    MODE_NONE,
-    MODE_SERVER,
-    MODE_CLIENT,
+    MODE_NONE = MODE_NO_FLAG,
+    MODE_SERVER = MODE_SERVER_FLAG,
+    MODE_CLIENT = MODE_CLIENT_FLAG,
     // Channels on Windows are named by default and accessible from other
     // processes. On POSIX channels are anonymous by default and not accessible
     // from other processes. Named channels work via named unix domain sockets.
-    // On Windows MODE_NAMED_SERVER == MODE_SERVER and
-    // MODE_NAMED_CLIENT == MODE_CLIENT.
-    MODE_NAMED_SERVER,
-    MODE_NAMED_CLIENT,
+    // On Windows MODE_NAMED_SERVER is equivalent to MODE_SERVER and
+    // MODE_NAMED_CLIENT is equivalent to MODE_CLIENT.
+    MODE_NAMED_SERVER = MODE_SERVER_FLAG | MODE_NAMED_FLAG,
+    MODE_NAMED_CLIENT = MODE_CLIENT_FLAG | MODE_NAMED_FLAG,
   };
 
   enum {