Ejemplo n.º 1
0
 static bool is_unique(MultiPass const& mp)
 {
     return 0 == mp.shared() || 1 == mp.shared()->count;
 }
Ejemplo n.º 2
0
 static void clone(MultiPass& mp)
 {
     if (0 != mp.shared())
         ++mp.shared()->count;
 }
Ejemplo n.º 3
0
 static bool release(MultiPass& mp)
 {
     return 0 != mp.shared() && 0 == --mp.shared()->count;
 }
 static bool has_include_guards(MultiPass& mp, std::string& guard_name) 
 {
     return mp.shared()->ftor->has_include_guards(guard_name);
 }
 static void set_position(MultiPass& mp, position_type const &pos)
 {
     mp.shared()->ftor->set_position(pos);
 }
 static void destroy(MultiPass& mp)
 { 
     delete mp.shared()->ftor; 
 }
 static void clear_queue(MultiPass& mp)
 {
     ++mp.shared()->shared_buf_id;
     ++mp.buf_id;
 }
 static void check(MultiPass const& mp) 
 {
     if (mp.buf_id != mp.shared()->shared_buf_id)
         boost::throw_exception(illegal_backtracking());
 }