
Public Member Functions | |
| ACE_TLI_Request_Queue (void) | |
| ACE_HANDLE | open (ACE_HANDLE fd, int size) | 
| int | close (void) | 
| int | enqueue (const char device[], int restart, int rwflag) | 
| int | dequeue (ACE_TLI_Request *&ptr) | 
| int | remove (int sequence_number) | 
| int | is_empty (void) const | 
| int | is_full (void) const | 
| ACE_TLI_Request * | alloc (void) | 
| void | free (ACE_TLI_Request *node) | 
| void | dump (void) const | 
Public Attributes | |
| ACE_ALLOC_HOOK_DECLARE | |
Private Attributes | |
| ACE_HANDLE | handle_ | 
| int | size_ | 
| int | current_count_ | 
| ACE_TLI_Request * | base_ | 
| ACE_TLI_Request * | tail_ | 
| ACE_TLI_Request * | free_list_ | 
      
  | 
  
| 
 
 Definition at line 226 of file TLI_Acceptor.cpp. References ACE_TRACE. 
 00227 : size_ (0), 00228 current_count_ (0), 00229 base_ (0), 00230 tail_ (0), 00231 free_list_ (0) 00232 { 00233 ACE_TRACE ("ACE_TLI_Request_Queue::ACE_TLI_Request_Queue"); 00234 }  | 
  
      
  | 
  
| 
 
 Definition at line 95 of file TLI_Acceptor.cpp. References ACE_TRACE, and ACE_TLI_Request::next_. Referenced by ACE_TLI_Acceptor::accept(), enqueue(), and open(). 
 00096 {
00097   ACE_TRACE ("ACE_TLI_Request_Queue::alloc");
00098   ACE_TLI_Request *temp = this->free_list_;
00099   this->free_list_ = this->free_list_->next_;
00100   return temp;
00101 }
 | 
  
      
  | 
  
| 
 
 Definition at line 175 of file TLI_Acceptor.cpp. References ACE_TRACE, ACE_TLI_Request::callp_, ACE_TLI_Request::handle_, and ACE_OS::t_free(). Referenced by ACE_TLI_Acceptor::close(). 
 00176 {
00177   ACE_TRACE ("ACE_TLI_Request_Queue::close");
00178   int res = 0;
00179 
00180   for (int i = 0; i < this->size_; i++)
00181     {
00182       ACE_TLI_Request &item = this->base_[i];
00183 
00184       item.handle_ = ACE_INVALID_HANDLE;
00185       if (ACE_OS::t_free ((char *) item.callp_,
00186                           T_CALL) != 0)
00187         res = -1;
00188     }
00189 
00190   delete [] this->base_;
00191   this->base_ = 0;
00192   return res;
00193 }
 | 
  
      
  | 
  
| 
 
 Definition at line 120 of file TLI_Acceptor.cpp. References ACE_TRACE, and ACE_TLI_Request::next_. Referenced by ACE_TLI_Acceptor::accept(). 
  | 
  
      
  | 
  
| 
 
 Definition at line 61 of file TLI_Acceptor.cpp. References ACE_TRACE. 
 00062 {
00063 #if defined (ACE_HAS_DUMP)
00064   ACE_TRACE ("ACE_TLI_Request_Queue::dump");
00065 #endif /* ACE_HAS_DUMP */
00066 }
 | 
  
      
  | 
  ||||||||||||||||
| 
 
 Definition at line 240 of file TLI_Acceptor.cpp. References ACE_TRACE, alloc(), ACE_TLI_Request::callp_, free(), ACE_TLI_Request::handle_, ACE_TLI_Request::next_, open_new_endpoint(), and ACE_OS::t_listen(). Referenced by ACE_TLI_Acceptor::handle_async_event(). 
 00242 {
00243   ACE_TRACE ("ACE_TLI_Request_Queue::enqueue");
00244   ACE_TLI_Request *temp = this->alloc ();
00245   ACE_TLI_Request &req  = *this->tail_;
00246   int res;
00247 
00248   do
00249     res = ACE_OS::t_listen (this->handle_, req.callp_);
00250   while (res == -1
00251          && restart
00252          && t_errno == TSYSERR
00253          && errno == EINTR);
00254 
00255   if (res != -1)
00256     {
00257       req.handle_ = open_new_endpoint (this->handle_,
00258                                        device,
00259                                        req.callp_,
00260                                        rwflag);
00261       if (req.handle_ != ACE_INVALID_HANDLE)
00262         {
00263           temp->next_ = this->tail_->next_;
00264           this->tail_->next_ = temp;
00265           this->tail_ = temp;
00266           this->current_count_++;
00267           return 0;
00268         }
00269     }
00270 
00271   // Something must have gone wrong, so free up allocated space.
00272   this->free (temp);
00273   return -1;
00274 }
 | 
  
      
  | 
  
| 
 
 Definition at line 85 of file TLI_Acceptor.cpp. References ACE_TRACE, and ACE_TLI_Request::next_. Referenced by ACE_TLI_Acceptor::accept(), enqueue(), open(), and remove(). 
 00086 {
00087   ACE_TRACE ("ACE_TLI_Request_Queue::free");
00088   node->next_ = this->free_list_;
00089   this->free_list_ = node;
00090 }
 | 
  
      
  | 
  
| 
 
 Definition at line 69 of file TLI_Acceptor.cpp. References ACE_TRACE. Referenced by ACE_TLI_Acceptor::accept(). 
 00070 {
00071   ACE_TRACE ("ACE_TLI_Request_Queue::is_empty");
00072   return this->current_count_ == 0;
00073 }
 | 
  
      
  | 
  
| 
 
 Definition at line 76 of file TLI_Acceptor.cpp. References ACE_TRACE. 
 00077 {
00078   ACE_TRACE ("ACE_TLI_Request_Queue::is_full");
00079   return this->current_count_ + 1 == this->size_; // Add 1 for the dummy.
00080 }
 | 
  
      
  | 
  ||||||||||||
| 
 
 Definition at line 196 of file TLI_Acceptor.cpp. References ACE_NEW_RETURN, ACE_TRACE, alloc(), ACE_TLI_Request::callp_, free(), ACE_TLI_Request::handle_, ACE_TLI_Request::next_, and ACE_OS::t_alloc(). Referenced by ACE_TLI_Acceptor::open(). 
 00197 {
00198   ACE_TRACE ("ACE_TLI_Request_Queue::open");
00199   this->handle_   = f;
00200   this->size_ = sz + 1; // Add one more for the dummy node.
00201 
00202   ACE_NEW_RETURN (this->base_,
00203                   ACE_TLI_Request[this->size_],
00204                   ACE_INVALID_HANDLE);
00205 
00206   // Initialize the ACE_Queue and the free list.
00207 
00208   for (int i = 0; i < this->size_; i++)
00209     {
00210       ACE_TLI_Request *item = &this->base_[i];
00211       this->free (item);
00212 
00213       item->handle_ = ACE_INVALID_HANDLE;
00214       item->callp_ = (t_call *) ACE_OS::t_alloc (this->handle_,
00215                                                  T_CALL,
00216                                                  T_ALL);
00217       if (item->callp_ == 0)
00218         return ACE_INVALID_HANDLE;
00219     }
00220 
00221   this->tail_ = this->alloc ();
00222   this->tail_->next_ = this->tail_;
00223   return 0;
00224 }
 | 
  
      
  | 
  
| 
 
 Definition at line 280 of file TLI_Acceptor.cpp. References ACE_TRACE, ACE_TLI_Request::callp_, free(), ACE_TLI_Request::next_, and ACE_OS::t_close(). Referenced by ACE_TLI_Acceptor::handle_async_event(). 
 00281 {
00282   ACE_TRACE ("ACE_TLI_Request_Queue::remove");
00283   ACE_TLI_Request *prev = this->tail_;
00284 
00285   // Put the sequence # in the dummy node to simply the search...
00286   prev->callp_->sequence = sequence_number;
00287 
00288   ACE_TLI_Request *temp;
00289 
00290   for (temp = this->tail_->next_;
00291        temp->callp_->sequence != sequence_number;
00292        temp = temp->next_)
00293     prev = temp;
00294 
00295   if (temp == this->tail_)
00296     // Sequence # was not found, since we're back at the dummy node!
00297     return -1;
00298   else
00299     {
00300       prev->next_ = temp->next_;
00301       ACE_OS::t_close (temp->handle_);
00302       this->current_count_--;
00303       this->free (temp);
00304       return 0;
00305     }
00306 }
 | 
  
      
  | 
  
| 
 
 Definition at line 46 of file TLI_Acceptor.cpp.  | 
  
      
  | 
  
| 
 
 Definition at line 53 of file TLI_Acceptor.cpp.  | 
  
      
  | 
  
| 
 
 Definition at line 52 of file TLI_Acceptor.cpp.  | 
  
      
  | 
  
| 
 
 Definition at line 55 of file TLI_Acceptor.cpp.  | 
  
      
  | 
  
| 
 
 Definition at line 50 of file TLI_Acceptor.cpp.  | 
  
      
  | 
  
| 
 
 Definition at line 51 of file TLI_Acceptor.cpp.  | 
  
      
  | 
  
| 
 
 Definition at line 54 of file TLI_Acceptor.cpp.  | 
  
 
1.3.6