00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 #ifndef VCSN_AUTOMATA_IMPLEMENTATION_LISTG_LISTG_HANDLERS_HXX
00018 # define VCSN_AUTOMATA_IMPLEMENTATION_LISTG_LISTG_HANDLERS_HXX
00019 
00020 # include <vaucanson/misc/contract.hh>
00021 # include <vaucanson/automata/implementation/listg/listg_handlers.hh>
00022 
00023 namespace vcsn
00024 {
00025 
00026   template<typename Tag>
00027   handler<Tag, unsigned>::handler() : v_(UINT_MAX)
00028   {}
00029 
00030   template<typename Tag>
00031   handler<Tag, unsigned>::handler(unsigned h) : v_(h)
00032   {}
00033 
00034   template<typename Tag>
00035   handler<Tag, unsigned>::handler(const handler<Tag, unsigned>& h) : v_(h.v_)
00036   {}
00037 
00038   template<typename Tag>
00039   handler<Tag, unsigned>&
00040   handler<Tag, unsigned>::operator=(const handler<Tag, unsigned>& h)
00041   {
00042     v_ = h.v_;
00043     return *this;
00044   }
00045 
00046   template<typename Tag>
00047   unsigned handler<Tag, unsigned>::value() const
00048   {
00049     return v_;
00050   }
00051 
00052   template<typename Tag>
00053   handler<Tag, unsigned>::operator unsigned() const
00054   {
00055     return v_;
00056   }
00057 
00058   template<typename Tag>
00059   bool
00060   handler<Tag, unsigned>::is_valid() const
00061   {
00062     return v_ != UINT_MAX;
00063   }
00064 
00065 } 
00066 
00067 #endif
00068