Example #1
0
  std::pair<iterator, bool>
  insert (const value_type& x) {

    if (x.first < x.second) {       
      if (empty ()) {
	return m_set.insert (x);
      }

      iterator pos = find_first_touch (x);
      if (pos == end ()) {
	//nothing intersects x
	return m_set.insert (x);
      }

      const Key alpha = std::min (x.first, pos->first);
      Key beta = pos->second;
      while (pos != m_set.end () && touch (*pos, x)) {
	beta = pos->second;
	m_set.erase (pos++);
      }

      beta = std::max (beta, x.second);
      return m_set.insert (std::make_pair (alpha, beta));
    }
    
    return std::make_pair (m_set.end (), false);
  }
Example #2
0
// Let an object register its existence
void
object_registrar::register_object_imp
(
    object_id  obj
)
{
    if ( db_.count(obj) <= 0 )
    {
        db_.insert( obj );

        #if CONTROL_EXTRA_PRINTING
        std::cout << "Registered " << obj << '.' << std::endl;
        #endif
    }
    else
    {
        overeager_.push_back( obj );

        #if CONTROL_EXTRA_PRINTING
        std::cout << "Attempted to register a non-existant " << obj
         << '.' << std::endl;
        #endif
    }
}
Example #3
0
// Let an object un-register its use of another object
void
object_registrar::unregister_use_imp
(
    object_id  owner,
    object_id  owned
)
{
    if ( db_.count(owned) > 0 )
    {
        // We don't care to record usage un-registrations
    }
    else
    {
        defrauders_out_.push_back( std::make_pair(owner, owned) );

        #if CONTROL_EXTRA_PRINTING
        std::cout << "Attempted to disown a non-existant " << owned
         << " by " << owner << '.' << std::endl;
        #endif
    }
}
Example #4
0
		//-----------------------------------------------------------------//
		void clear() {
			erase_set_.clear();
			array_.clear();
			if(zero_handle_enable_) array_.push_back(T());
		}
Example #5
0
 inline void ObservableSettings::registerDeferredObservers(
     const Observable::set_type& observers) {
     deferredObservers_.insert(observers.begin(), observers.end());
 }
Example #6
0
 inline
 Size Observer::unregisterWith(const ext::shared_ptr<Observable>& h) {
     if (h)
         h->unregisterObserver(this);
     return observables_.erase(h);
 }
Example #7
0
 inline Observer::Observer(const Observer& o)
 : observables_(o.observables_) {
     for (iterator i=observables_.begin(); i!=observables_.end(); ++i)
         (*i)->registerObserver(this);
 }
Example #8
0
 inline void ObservableSettings::registerDeferredObservers(
     const boost::unordered_set<Observer*>& observers) {
     if (updatesDeferred()) {
         deferredObservers_.insert(observers.begin(), observers.end());
     }
 }
Example #9
0
 bool empty () const {
   return m_set.empty ();
 }
Example #10
0
 size_type count (const key_type& k) const {
   return m_set.count (k);
 }
Example #11
0
 iterator find (const key_type& k) const {
   return m_set.find (k);
 }
Example #12
0
 void erase (iterator f, iterator l) {
   m_set.erase (f, l);
 }
Example #13
0
 void erase (iterator pos) {
   m_set.erase (pos);
 }
Example #14
0
		//-----------------------------------------------------------------//
		void clear() {
			erase_set_.clear();
			current_ = start_;
		}
Example #15
0
		//-----------------------------------------------------------------//
		handle_type size() const { return current_ - 1 - erase_set_.size(); }
Example #16
0
 size_type size () const {
   return m_set.size ();
 }
Example #17
0
 size_type max_size () const {
   return m_set.max_size ();
 }
Example #18
0
 iterator lower_bound (const key_type& k) const {
   return m_set.lower_bound (k);
 }
Example #19
0
 void swap (interval_set& is) {
   if (this != &is) {
     m_set.swap (is.m_set);
   }
 }
Example #20
0
 iterator upper_bound (const key_type& k) const {
   return m_set.upper_bound (k);
 }
Example #21
0
 std::pair<iterator, iterator>
 equal_range (const key_type& k) const {
   return m_set.equal_range (k);
 }
Example #22
0
 iterator begin () const {
   return m_set.begin ();
 }
Example #23
0
 inline void ObservableSettings::unregisterDeferredObserver(Observer* o) {
     deferredObservers_.erase(o);
 }
Example #24
0
 iterator end () const {
   return m_set.end ();
 }
Example #25
0
 inline Observer::~Observer() {
     for (iterator i=observables_.begin(); i!=observables_.end(); ++i)
         (*i)->unregisterObserver(this);
 }
Example #26
0
 reverse_iterator rbegin () const {
   return m_set.rbegin ();
 }
Example #27
0
 inline void Observer::unregisterWithAll() {
     for (iterator i=observables_.begin(); i!=observables_.end(); ++i)
         (*i)->unregisterObserver(this);
     observables_.clear();
 }
Example #28
0
 reverse_iterator rend () const {
   return m_set.rend ();
 }
Example #29
0
 inline void ObservableSettings::unregisterDeferredObserver(
     const ext::shared_ptr<Observer::Proxy>& o) {
     deferredObservers_.erase(o);
 }
Example #30
0
 bool disjoint(const set_type& a, const set_type& b) {
     counting_output_iterator out;
     return std::set_intersection(a.begin(), a.end(),
                                  b.begin(), b.end(), out).count() == 0;
 }