00001 /*************************************************************************** 00002 LOW_component.h - description 00003 ------------------- 00004 begin : Fri Jul 12 2002 00005 copyright : (C) 2002 by Harald Roelle 00006 email : roelle@informatik.uni-muenchen.de 00007 ***************************************************************************/ 00008 00009 /*************************************************************************** 00010 * * 00011 * This program is free software; you can redistribute it and/or modify * 00012 * it under the terms of the GNU General Public License as published by * 00013 * the Free Software Foundation; either version 2 of the License, or * 00014 * (at your option) any later version. * 00015 * * 00016 ***************************************************************************/ 00017 00018 #ifndef LOW_COMPONENT_H 00019 #define LOW_COMPONENT_H 00020 00021 00022 #include "LOW_exception.h" 00023 #include "LOW_objectSynchronizer.h" 00024 00025 00026 /** Abstract base class for 1-Wire components. 00027 00028 Any component class representing a concrete 1-Wire based component 00029 must inherit from this class. 00030 00031 This class is thread-safe. 00032 00033 @todo Add multi-link lock for simultanously lock devices on different 1-Wire links. 00034 00035 @author Harald Roelle 00036 */ 00037 class LOW_component { 00038 00039 //======================================================================================= 00040 public: 00041 00042 //===================================================================================== 00043 // 00044 // exceptions 00045 // 00046 00047 /** Exception base class for all exceptions thrown by LOW_component. */ 00048 class_DERIVE_FROM_EXCEPTION( component_error, LOW_exception); 00049 00050 00051 //===================================================================================== 00052 // 00053 // constructor 00054 // 00055 00056 /** Destructor. 00057 */ 00058 virtual ~LOW_component(); 00059 00060 00061 //======================================================================================= 00062 protected: 00063 00064 //===================================================================================== 00065 // 00066 // constructor 00067 // 00068 00069 /** Constructor. 00070 */ 00071 LOW_component(); 00072 00073 }; 00074 00075 #endif