Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

79 lines
2.4 KiB

  1. //+-------------------------------------------------------------------------
  2. //
  3. // Microsoft Windows
  4. //
  5. // Copyright (C) Microsoft Corporation, 1997 - 1997
  6. //
  7. // File: mbnflags.h
  8. //
  9. //--------------------------------------------------------------------------
  10. //
  11. // mbnflags.h:
  12. //
  13. // This inclusion generates names and constant strings
  14. // or a table of strings, depending upon the setting of
  15. // of the preprocessor manifest MBN_GENBFLAGS.
  16. //
  17. // Botk belief networks (MBNET) and named belief network
  18. // objects (GOBJMBN) have arrays of bit flags in them.
  19. //
  20. #if (!defined(_MBNFLAGS_H_)) || defined(MBN_GEN_BFLAGS_TABLE)
  21. #ifndef _MBNFLAGS_H_
  22. #define _MBNFLAGS_H_
  23. #endif
  24. /*******************************************************************
  25. ********************************************************************
  26. Belief network flag declarations.
  27. There is a set of predefined flag names which are recorded into
  28. the symbol table of every constructed belief network. These
  29. names are globally available as members of the enumeration EMBFLAGS;
  30. for example, "EIBF_Topology".
  31. Other flag definitions can be created at run-time and used in any
  32. bit vector (type VFLAGS).
  33. ********************************************************************
  34. ********************************************************************/
  35. #ifdef MBN_GEN_BFLAGS_TABLE
  36. // Allow building of string name table in outer scope
  37. #define MBFLAGS_START static SZC MBN_GEN_BFLAGS_TABLE [] = {
  38. #define MBFLAG(name) #name,
  39. #define MBFLAGS_END NULL };
  40. #else
  41. // Generate enumerated values
  42. #define MBFLAGS_START enum EMBFLAGS {
  43. #define MBFLAG(name) EIBF_##name,
  44. #define MBFLAGS_END EIBF_max };
  45. #endif
  46. //
  47. // Statically predefined belief network bit flags.
  48. //
  49. // Open the declaration set
  50. MBFLAGS_START
  51. // Network has probabilistic topology arcs
  52. MBFLAG(Topology) // EIBF_Topology
  53. // Distributions have been bound
  54. MBFLAG(Distributions)
  55. // Network or node has been expanded
  56. MBFLAG(Expanded) // EIBF_Expanded
  57. // Node is an expansion by-product
  58. MBFLAG(Expansion) // EIBF_Expansion
  59. // Node is leak term
  60. MBFLAG(Leak) // EIBF_Leak
  61. // Terminate the declaration set
  62. MBFLAGS_END
  63. // Rescind the declaration of the bidirectional macro
  64. #undef MBFLAGS_START
  65. #undef MBFLAG
  66. #undef MBFLAGS_END
  67. #undef MBN_GEN_BFLAGS_TABLE
  68. #endif _MBNFLAGS_H_