Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes

TAO_Notify_QoSProperties Class Reference

#include <QoSProperties.h>

Inheritance diagram for TAO_Notify_QoSProperties:
Inheritance graph
[legend]
Collaboration diagram for TAO_Notify_QoSProperties:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 TAO_Notify_QoSProperties (void)
 Constructor.
virtual ~TAO_Notify_QoSProperties (void)
 Destructor.
int init (const CosNotification::PropertySeq &prop_seq, CosNotification::PropertyErrorSeq &err_seq)
 Return 0 on success, 1 if unsupported properties were detected and -1 on error.
void init ()
 This version initializes the base from our members.
int copy (TAO_Notify_QoSProperties &qos_properties)
 Populate qos_properties with all properties from this object. Returns -1 on error.
int transfer (TAO_Notify_QoSProperties &qos_properties)
 Populate qos_properties with properties that can be transfered.Returns -1 on error.
const
TAO_Notify_Property_ThreadPool
thread_pool (void) const
 = Accessors
const
TAO_Notify_Property_ThreadPoolLanes
thread_pool_lane (void) const
const TAO_Notify_Property_Shortevent_reliability (void) const
const TAO_Notify_Property_Shortconnection_reliability (void) const
const TAO_Notify_Property_Shortpriority (void) const
const TAO_Notify_Property_Timetimeout (void) const
const TAO_Notify_Property_Booleanstop_time_supported (void) const
const TAO_Notify_Property_Longmaximum_batch_size (void) const
const TAO_Notify_Property_Timepacing_interval (void) const
const TAO_Notify_Property_Longmax_events_per_consumer (void) const
const TAO_Notify_Property_Shortdiscard_policy (void) const
const TAO_Notify_Property_Shortorder_policy (void) const
const TAO_Notify_Property_Timeblocking_policy (void) const
TAO_Notify_Property_Shortevent_reliability (void)
TAO_Notify_Property_Shortconnection_reliability (void)
TAO_Notify_Property_Shortpriority (void)
TAO_Notify_Property_Timetimeout (void)
TAO_Notify_Property_Booleanstop_time_supported (void)
TAO_Notify_Property_Longmaximum_batch_size (void)
TAO_Notify_Property_Timepacing_interval (void)
TAO_Notify_Property_Longmax_events_per_consumer (void)
TAO_Notify_Property_Shortdiscard_policy (void)
TAO_Notify_Property_Shortorder_policy (void)
TAO_Notify_Property_Timeblocking_policy (void)

Protected Types

enum  { UNSUPPORTED_PROPERTY_COUNT = 1 }

Protected Member Functions

int unsupported (ACE_CString &name)
 Return 1 if is unsupported.

Protected Attributes

ACE_CString unsupported_ [UNSUPPORTED_PROPERTY_COUNT]
 = Unsupported Properties.
TAO_Notify_Property_Short event_reliability_
 = Supported standard properties
TAO_Notify_Property_Short connection_reliability_
TAO_Notify_Property_Short priority_
TAO_Notify_Property_Time timeout_
TAO_Notify_Property_Boolean stop_time_supported_
TAO_Notify_Property_Long maximum_batch_size_
TAO_Notify_Property_Time pacing_interval_
TAO_Notify_Property_Long max_events_per_consumer_
TAO_Notify_Property_Short discard_policy_
TAO_Notify_Property_Short order_policy_
TAO_Notify_Property_ThreadPool thread_pool_
 TAO Extensions.
TAO_Notify_Property_ThreadPoolLanes thread_pool_lane_
TAO_Notify_Property_Time blocking_policy_

Detailed Description

Definition at line 35 of file QoSProperties.h.


Member Enumeration Documentation

anonymous enum [protected]
Enumerator:
UNSUPPORTED_PROPERTY_COUNT 

Definition at line 89 of file QoSProperties.h.


Constructor & Destructor Documentation

TAO_Notify_QoSProperties::TAO_Notify_QoSProperties ( void   ) 
TAO_Notify_QoSProperties::~TAO_Notify_QoSProperties ( void   )  [virtual]

Destructor.

Definition at line 34 of file QoSProperties.cpp.

{
}


Member Function Documentation

const TAO_Notify_Property_Time & TAO_Notify_QoSProperties::blocking_policy ( void   )  const

Definition at line 89 of file QoSProperties.inl.

{
  return this->blocking_policy_;
}

TAO_Notify_Property_Time& TAO_Notify_QoSProperties::blocking_policy ( void   ) 
const TAO_Notify_Property_Short & TAO_Notify_QoSProperties::connection_reliability ( void   )  const

Definition at line 16 of file QoSProperties.inl.

{
  return this->connection_reliability_;
}

TAO_Notify_Property_Short & TAO_Notify_QoSProperties::connection_reliability ( void   ) 

Definition at line 105 of file QoSProperties.inl.

{
  return this->connection_reliability_;
}

int TAO_Notify_QoSProperties::copy ( TAO_Notify_QoSProperties qos_properties  ) 

Populate qos_properties with all properties from this object. Returns -1 on error.

Definition at line 178 of file QoSProperties.cpp.

{
  qos_properties.event_reliability_ = this->event_reliability_;
  qos_properties.connection_reliability_ = this->connection_reliability_;
  qos_properties.priority_ = this->priority_;
  qos_properties.timeout_ = this->timeout_;
  qos_properties.stop_time_supported_ = this->stop_time_supported_;
  qos_properties.maximum_batch_size_ = this->maximum_batch_size_;
  qos_properties.pacing_interval_ = this->pacing_interval_;
  qos_properties.max_events_per_consumer_ = this->max_events_per_consumer_;
  qos_properties.discard_policy_ = this->discard_policy_;
  qos_properties.order_policy_ = this->order_policy_;

  qos_properties.blocking_policy_ = this->blocking_policy_;

  PROPERTY_MAP::ITERATOR iter (this->property_map_);
  PROPERTY_MAP::ENTRY *entry;

  for (; iter.next (entry); iter.advance ())
    {
      if (qos_properties.property_map_.rebind (entry->ext_id_, entry->int_id_) == -1)
        return -1;
    }

  return 0;
}

TAO_Notify_Property_Short & TAO_Notify_QoSProperties::discard_policy ( void   ) 

Definition at line 151 of file QoSProperties.inl.

{
  return this->discard_policy_;
}

const TAO_Notify_Property_Short & TAO_Notify_QoSProperties::discard_policy ( void   )  const

Definition at line 63 of file QoSProperties.inl.

{
  return this->discard_policy_;
}

TAO_Notify_Property_Short & TAO_Notify_QoSProperties::event_reliability ( void   ) 

Definition at line 98 of file QoSProperties.inl.

{
  return this->event_reliability_;
}

const TAO_Notify_Property_Short & TAO_Notify_QoSProperties::event_reliability ( void   )  const

Definition at line 9 of file QoSProperties.inl.

{
  return this->event_reliability_;
}

void TAO_Notify_QoSProperties::init ( void   ) 

This version initializes the base from our members.

Definition at line 50 of file QoSProperties.cpp.

{
  if (this->event_reliability_.is_valid())
  {
    CORBA::Any a;
    a <<= this->event_reliability_.value();
    this->add(this->event_reliability_.name(), a);
  }
  if (this->connection_reliability_.is_valid())
  {
    CORBA::Any a;
    a <<= this->connection_reliability_.value();
    this->add(this->connection_reliability_.name(), a);
  }
  if (this->priority_.is_valid())
  {
    CORBA::Any a;
    a <<= this->priority_.value();
    this->add(this->priority_.name(), a);
  }
  if (this->timeout_.is_valid())
  {
    CORBA::Any a;
    a <<= this->timeout_.value();
    this->add(this->timeout_.name(), a);
  }
  if (this->stop_time_supported_.is_valid())
  {
    CORBA::Any a;
    a <<= CORBA::Any::from_boolean (this->stop_time_supported_.value());
    this->add(this->stop_time_supported_.name(), a);
  }
  if (this->maximum_batch_size_.is_valid())
  {
    CORBA::Any a;
    a <<= this->maximum_batch_size_.value();
    this->add(this->maximum_batch_size_.name(), a);
  }
  if (this->pacing_interval_.is_valid())
  {
    CORBA::Any a;
    a <<= this->pacing_interval_.value();
    this->add(this->pacing_interval_.name(), a);
  }
  if (this->max_events_per_consumer_.is_valid())
  {
    CORBA::Any a;
    a <<= this->max_events_per_consumer_.value();
    this->add(this->max_events_per_consumer_.name(), a);
  }
  if (this->discard_policy_.is_valid())
  {
    CORBA::Any a;
    a <<= this->discard_policy_.value();
    this->add(this->discard_policy_.name(), a);
  }
  if (this->order_policy_.is_valid())
  {
    CORBA::Any a;
    a <<= this->order_policy_.value();
    this->add(this->order_policy_.name(), a);
  }

  if (this->thread_pool_.is_valid())
  {
    CORBA::Any a;
    a <<= this->thread_pool_.value();
    this->add(this->thread_pool_.name(), a);
  }
  if (this->thread_pool_lane_.is_valid())
  {
    CORBA::Any a;
    a <<= this->thread_pool_lane_.value();
    this->add(this->thread_pool_lane_.name(), a);
  }
  if (this->blocking_policy_.is_valid())
  {
    CORBA::Any a;
    a <<= this->blocking_policy_.value();
    this->add(this->blocking_policy_.name(), a);
  }
}

int TAO_Notify_QoSProperties::init ( const CosNotification::PropertySeq prop_seq,
CosNotification::PropertyErrorSeq err_seq 
)

Return 0 on success, 1 if unsupported properties were detected and -1 on error.

Definition at line 134 of file QoSProperties.cpp.

{
  int err_index = -1;

  ACE_CString name;
  for (CORBA::ULong i = 0; i < prop_seq.length (); ++i)
    {
      name = prop_seq[i].name.in();

      if (this->unsupported (name))
        {
          err_index =  err_seq.length ();
          err_seq.length (err_seq.length () + 1);

          err_seq[err_index].code = CosNotification::UNSUPPORTED_PROPERTY;
          err_seq[err_index].name = CORBA::string_dup (prop_seq[i].name);
        }
      else if (this->property_map_.rebind (prop_seq[i].name.in (), prop_seq[i].value) == -1)
        return -1;
      // Note call to rebind. This allows to call <init> to set updates.
    }

  if (prop_seq.length () > 0)
    {
        this->event_reliability_.set (*this);
        this->connection_reliability_.set (*this);
        this->priority_.set (*this);
        this->timeout_.set (*this);
        this->stop_time_supported_.set (*this);
        this->maximum_batch_size_.set (*this);
        this->pacing_interval_.set (*this);
        this->max_events_per_consumer_.set (*this);
        this->discard_policy_.set (*this);
        this->order_policy_.set (*this);

        this->thread_pool_.set (*this);
        this->thread_pool_lane_.set (*this);
        this->blocking_policy_.set (*this);
  }

  return err_index == -1 ? 0 : 1;
}

const TAO_Notify_Property_Long & TAO_Notify_QoSProperties::max_events_per_consumer ( void   )  const

Definition at line 56 of file QoSProperties.inl.

{
  return this->max_events_per_consumer_;
}

TAO_Notify_Property_Long & TAO_Notify_QoSProperties::max_events_per_consumer ( void   ) 

Definition at line 144 of file QoSProperties.inl.

{
  return this->max_events_per_consumer_;
}

TAO_Notify_Property_Long & TAO_Notify_QoSProperties::maximum_batch_size ( void   ) 

Definition at line 132 of file QoSProperties.inl.

{
  return this->maximum_batch_size_;
}

const TAO_Notify_Property_Long & TAO_Notify_QoSProperties::maximum_batch_size ( void   )  const

Definition at line 43 of file QoSProperties.inl.

{
  return this->maximum_batch_size_;
}

const TAO_Notify_Property_Short & TAO_Notify_QoSProperties::order_policy ( void   )  const

Definition at line 70 of file QoSProperties.inl.

{
  return this->order_policy_;
}

TAO_Notify_Property_Short & TAO_Notify_QoSProperties::order_policy ( void   ) 

Definition at line 158 of file QoSProperties.inl.

{
  return this->order_policy_;
}

const TAO_Notify_Property_Time & TAO_Notify_QoSProperties::pacing_interval ( void   )  const

Definition at line 49 of file QoSProperties.inl.

{
  return this->pacing_interval_;
}

TAO_Notify_Property_Time & TAO_Notify_QoSProperties::pacing_interval ( void   ) 

Definition at line 138 of file QoSProperties.inl.

{
  return this->pacing_interval_;
}

const TAO_Notify_Property_Short & TAO_Notify_QoSProperties::priority ( void   )  const

Definition at line 23 of file QoSProperties.inl.

{
  return this->priority_;
}

TAO_Notify_Property_Short & TAO_Notify_QoSProperties::priority ( void   ) 

Definition at line 112 of file QoSProperties.inl.

{
  return this->priority_;
}

const TAO_Notify_Property_Boolean & TAO_Notify_QoSProperties::stop_time_supported ( void   )  const

Definition at line 37 of file QoSProperties.inl.

{
  return this->stop_time_supported_;
}

TAO_Notify_Property_Boolean & TAO_Notify_QoSProperties::stop_time_supported ( void   ) 

Definition at line 126 of file QoSProperties.inl.

{
  return this->stop_time_supported_;
}

const TAO_Notify_Property_ThreadPool & TAO_Notify_QoSProperties::thread_pool ( void   )  const

= Accessors

Definition at line 76 of file QoSProperties.inl.

{
  return this->thread_pool_;
}

const TAO_Notify_Property_ThreadPoolLanes & TAO_Notify_QoSProperties::thread_pool_lane ( void   )  const

Definition at line 82 of file QoSProperties.inl.

{
  return this->thread_pool_lane_;
}

TAO_Notify_Property_Time & TAO_Notify_QoSProperties::timeout ( void   ) 

Definition at line 119 of file QoSProperties.inl.

{
  return this->timeout_;
}

const TAO_Notify_Property_Time & TAO_Notify_QoSProperties::timeout ( void   )  const

Definition at line 30 of file QoSProperties.inl.

{
  return this->timeout_;
}

int TAO_Notify_QoSProperties::transfer ( TAO_Notify_QoSProperties qos_properties  ) 

Populate qos_properties with properties that can be transfered.Returns -1 on error.

Definition at line 206 of file QoSProperties.cpp.

{
  if (this->copy (qos_properties) == -1)
    return -1;

  // unbind the properties that we don't want to transfer.
  qos_properties.property_map_.unbind (NotifyExt::ThreadPool);
  qos_properties.property_map_.unbind (NotifyExt::ThreadPoolLanes);

  return 0;
}

int TAO_Notify_QoSProperties::unsupported ( ACE_CString name  )  [protected]

Return 1 if is unsupported.

Definition at line 39 of file QoSProperties.cpp.

{
  for (int i = 0; i < UNSUPPORTED_PROPERTY_COUNT; ++i)
    {
      if (this->unsupported_[i] == name)
        return 1;
    }

  return 0;
}


Member Data Documentation

Definition at line 109 of file QoSProperties.h.

Definition at line 96 of file QoSProperties.h.

Definition at line 103 of file QoSProperties.h.

= Supported standard properties

Definition at line 95 of file QoSProperties.h.

Definition at line 102 of file QoSProperties.h.

Definition at line 100 of file QoSProperties.h.

Definition at line 104 of file QoSProperties.h.

Definition at line 101 of file QoSProperties.h.

Definition at line 97 of file QoSProperties.h.

Definition at line 99 of file QoSProperties.h.

TAO Extensions.

Definition at line 107 of file QoSProperties.h.

Definition at line 108 of file QoSProperties.h.

Definition at line 98 of file QoSProperties.h.

ACE_CString TAO_Notify_QoSProperties::unsupported_[UNSUPPORTED_PROPERTY_COUNT] [protected]

= Unsupported Properties.

Definition at line 92 of file QoSProperties.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines