Cisco Cisco Prime Optical 9.6 Entwickleranleitung

Seite von 818
Cisco Prime Optical 9.6.3 GateWay/CORBA Programmer Reference Guide 
OL-28047-01
 
 
494
 
The element management layer (EML) can return fewer objects than specified in the 
how_many value under either of the following conditions: 
•  Fewer objects than the number specified in the how_many value actually exist. 
•  The EML determines that the how_many value exceeds the server's stated performance 
restrictions. 
For example, the EML can have 100 objects to return, the network management layer (NML) 
may request 50 through the how_many parameter and the EML may return 20 along with an 
iteratorReference. 
The NMS uses the iteratorReference parameter to request further batches. This reference can 
be used to query how many objects can be returned by the getLength method. The NMS can 
subsequently start retrieving or removing the iterator. If all objects are specified in the list, it is 
a reference to a CORBA::Object::_nil object.  
Each entry is returned only once, so you must use the next_n method to retrieve the additional 
entries in the selected set.  
The EML may not get the total number of elements returned by the iterator in the following 
instances: 
•  The EML has to fetch all of the data that has been requested and then count the number of 
elements. This may not produce the desired results.  
•  The EML may be able to get a count of the number of elements, but due to concurrent 
modifications, the actual number may vary over the time of the iteration. 
The interface client can determine when all data has been collected by repeatedly fetching 
chunks of data until the iterator indicates that no further data remains. If the EMS is unable to 
determine the length, the getLength method returns the EXCPT_CAPACITY_EXCEEDED 
exception. 
The EXCPT_TOO_MANY_OPEN_ITERATORS exception is returned if the EMS has reached an 
implementation limitation. An EMS supports a minimum of 10 iterators. 
In this interface, the iterators have the following operations: 
•  getLength—Returns the total number of elements in the iterator. For example, if the EML 
has 100 objects and 10 are returned in the initial list, the getLength method should return 
90, regardless of how many objects are or are not retrieved using the next_n method. The 
EXCPT_CAPACITY_EXCEEDED exception is returned if the EMS cannot efficiently provide a 
value for the number of elements on this occasion. The next_n method may still be 
performed. 
•  next_n—Returns no more than the “n” entries, but it may return fewer. Returns true if 
there are more entries to be returned. If there are fewer entries, it returns false, removes 
the iterator, and releases the memory being used. The EML may choose to limit the number 
of objects returned in a single request to prevent performance issues. 
•  destroy—If you decide not to access the remaining objects, you can invoke the destroy 
operation to delete the iterator object.