VisSDStream.h
上传用户:weixiumei
上传日期:2008-05-15
资源大小:1769k
文件大小:13k
开发平台:

Visual C++

  1. ///////////////////////////////////////////////////////////////////////////
  2. //
  3. // NAME
  4. //  VisSDStream.h -- self-describing stream format for data input/output
  5. //
  6. // DESCRIPTION
  7. //  The CVisSDStream class is used to read and write ASCII descriptions of
  8. //  MSVisSDK objects.  The format for each class is printed at the top of
  9. //  the file.  This allows data files to remain somewhat forward and
  10. //  backward compatible, as fields are added/removed to/from classes.
  11. //
  12. //  The class declarations follow usual C++ syntax, with some restrictions:
  13. //  . exactly one field per line
  14. //  ...
  15. //
  16. //  Comments and whitespace can be interspersed with the declarations and data.
  17. //  The data itself uses the curly bracket and comma separated syntax
  18. //  of C/C++ data initialization.  Variable length lists and sets
  19. //  are supported.
  20. //
  21. //  Each class which wants to be printable is responsible for providing
  22. //  its own reading/writing routine.  Each class which wants to be described
  23. //  must provide a printable lists of fields currently supported.  These
  24. //  fields are accesses through the 
  25. //
  26. // SEE ALSO
  27. //  VisSDStream.cpp           implementation
  28. //
  29. //  Rick's research notes from Sept 13, 1997.
  30. //
  31. // BUGS
  32. //
  33. //
  34. // DESIGN
  35. //  The current input/output is written on top of the FILE <stdio.h>
  36. //  routines (fprintf, fscanf).  They could be re-written to operate
  37. //  on streams, if desired (however, separate internal input and output
  38. //  streams would be required).  This would enable output to strings,
  39. //  for debugging purposes.
  40. //
  41. //  To maintain backward compatibility, we can use one of two strategies:
  42. //  1. require newer software to recognize old field, even if these
  43. //      are discarded during the read process
  44. //  2. have some way to skip unrecognized fields.  This requires the
  45. //      syntax of data to be restricted, e.g., bracketed numbers,
  46. //      strings and characters.
  47. //  The second approach has the advantage that code is compatible both
  48. //  ways, i.e., old code can deal with newer data which has extra fields.
  49. //
  50. // Warning:  The format of these files may change in future releases.
  51. //
  52. // Copyright