exceptions.h
上传用户:psq1974
上传日期:2007-01-06
资源大小:1195k
文件大小:2k
源码类别:

mpeg/mp3

开发平台:

C/C++

  1. /* Copyright (C) 1998, 1999 State University of New York at Stony Brook
  2.    Author: Andrew V. Shuvalov ( andrew@ecsl.cs.sunysb.edu )
  3.    Software license is located in file "COPYING"
  4. */
  5. #ifndef exceptions_h
  6. #define exceptions_h
  7. #include <string>
  8. #ifdef _WIN32
  9. # define vsnprintf _vsnprintf
  10. #endif
  11. /** generic exception
  12.  */
  13. class BasicException {
  14.   std::string text;
  15. public:
  16.   BasicException() {}
  17.   void init( const char *format, ... );
  18.   void init( const char *format, va_list ap );
  19.   const std::string &getText() { return text; }
  20. };
  21. /** subclass of basic exceptions 
  22.  */
  23. class NetworkException : public BasicException {
  24.   /** for example, in video_thread method broadcast_target::send may 
  25.       raise this exception if it can't send data to broadcast target.
  26.       This pointer will point to broadcast_target that should be removed from
  27.       the queue
  28.   */
  29.   void *some_pointer;
  30. public:
  31.   NetworkException( void *some_pointer, const char *format, ... );
  32.   void *get_pointer() const { return some_pointer; }
  33. };
  34. /** subclass of basic exceptions 
  35.  */
  36. class ProtocolException : public BasicException {
  37. public:
  38.   ProtocolException( const char *format, ... );
  39. };
  40. /** subclass of basic exceptions 
  41.  */
  42. class SyntaxException : public BasicException {
  43. public:
  44.   SyntaxException( const char *format, ... );
  45. };
  46. /** subclass of basic exceptions 
  47.  */
  48. class ShutdownException : public BasicException {
  49. public:
  50.   ShutdownException( const char *format, ... );
  51. };
  52. /** subclass of basic exceptions 
  53.  */
  54. class MutexErrorException : public BasicException {
  55. public:
  56.   MutexErrorException( const char *format, ... );
  57. };
  58. /** subclass of basic exceptions 
  59.  */
  60. class MutexTimeoutException : public BasicException {
  61. public:
  62.   MutexTimeoutException( const char *format, ... );
  63. };
  64. /** subclass of basic exceptions 
  65.  */
  66. class VideoException : public BasicException {
  67. public:
  68.   VideoException( const char *format, ... );
  69. };
  70. /** subclass of basic exceptions 
  71.  */
  72. class ComportException : public BasicException {
  73. public:
  74.   ComportException( const char *format, ... );
  75. };
  76. #endif //  exceptions_h