00001 /*************************************************************************** 00002 l1394_phynode.h - description 00003 ------------------- 00004 begin : Fri Jul 21 2000 00005 copyright : (C) 2000-2004 by Michael Repplinger 00006 email : repplinger@cs.uni-sb.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 L1394PHYNODE_H 00019 #define L1394PHYNODE_H 00020 00021 #include "l1394_node.h" 00022 00023 namespace L1394{ 00024 /**\class PhyNode 00025 *\ingroup L1394_Node 00026 *\brief This class represents a node with physical layer only(like hubs) 00027 * 00028 * FireWire nodes with a physical layer only are normally hubs. 00029 * The read, write and lock functions are disabled for these nodes because the 00030 * asynchrone transactions need a transaction layer. 00031 * The GUID is set to 0 for these nodes. 00032 * 00033 * A PhyNode is deleted after every bus rest and create new if it's still 00034 * connected to the FireWire bus.(because there is no way to identify such a node) 00035 * 00036 *@author Michael Repplinger 00037 */ 00038 00039 class PhyNode : public Node { 00040 public: 00041 00042 /*! \name PhyNode constructor 00043 * These functions creates the PhyNode objects. 00044 */ 00045 //@{ 00046 /*! \fn PhyNode(const u_int32_t node_id, const Card* parent) 00047 * \brief constructor 00048 * \param node_id : the current node_id by creating this object 00049 * \param parent : pointer to the parent node 00050 */ 00051 PhyNode(const u_int32_t , const Card* parent ); 00052 00053 /*! \fn ~PhyNode() 00054 * \brief destructor 00055 */ 00056 ~PhyNode(); 00057 //@} 00058 00059 /*! \fn isPhyOnly() 00060 * \brief This method tests if a node has only a physical layer. 00061 * \return bool: return true 00062 */ 00063 virtual bool isPhyOnly(){return true;} 00064 00065 //!disabled read functions 00066 virtual int read(const u_int64_t , Quadlet*) {return L1394_FAILED;} 00067 //!disabled write functions 00068 virtual int write(const u_int64_t ,const Quadlet& ) {return L1394_FAILED;} 00069 // virtual int lock 00070 virtual Iso* getIsoObject() const {return 0;} 00071 private: 00072 00073 00074 }; 00075 } 00076 #endif