summaryrefslogtreecommitdiff
path: root/TAO/orbsvcs/ImplRepo_Service/Iterator.h
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/orbsvcs/ImplRepo_Service/Iterator.h')
-rw-r--r--TAO/orbsvcs/ImplRepo_Service/Iterator.h26
1 files changed, 25 insertions, 1 deletions
diff --git a/TAO/orbsvcs/ImplRepo_Service/Iterator.h b/TAO/orbsvcs/ImplRepo_Service/Iterator.h
index db02e5f33b9..ff74eaee1ad 100644
--- a/TAO/orbsvcs/ImplRepo_Service/Iterator.h
+++ b/TAO/orbsvcs/ImplRepo_Service/Iterator.h
@@ -15,6 +15,7 @@
#define IMR_ITERATOR_H
#include "Locator_Repository.h"
+#include "AsyncListManager.h"
#include "tao/PortableServer/PortableServer.h"
#include "ImplRepoS.h"
@@ -22,6 +23,27 @@
# pragma once
#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+
+class ImR_AsyncIterator
+ : public POA_ImplementationRepository::AMH_ServerInformationIterator
+{
+public:
+ ImR_AsyncIterator (CORBA::ULong start,
+ AsyncListManager *lister);
+
+ virtual void next_n
+ (ImplementationRepository::AMH_ServerInformationIteratorResponseHandler_ptr _tao_rh,
+ CORBA::ULong how_many);
+
+ virtual void destroy
+ (ImplementationRepository::AMH_ServerInformationIteratorResponseHandler_ptr _tao_rh);
+
+private:
+ CORBA::ULong count_;
+ AsyncListManager_ptr lister_;
+};
+
/**
* @class ImR_Iterator
*
@@ -32,7 +54,9 @@ class ImR_Iterator
: public POA_ImplementationRepository::ServerInformationIterator
{
public:
- ImR_Iterator (CORBA::ULong n, Locator_Repository& repo, PortableServer::POA_ptr poa);
+ ImR_Iterator (CORBA::ULong start,
+ Locator_Repository& repo,
+ PortableServer::POA_ptr poa);
/// Returns the next list of up to <how_many> servers. If empty, will return
/// false.