summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/AdminSessionI.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IceGrid/AdminSessionI.h')
-rw-r--r--cpp/src/IceGrid/AdminSessionI.h36
1 files changed, 35 insertions, 1 deletions
diff --git a/cpp/src/IceGrid/AdminSessionI.h b/cpp/src/IceGrid/AdminSessionI.h
index ea03e1d3828..df7802cf960 100644
--- a/cpp/src/IceGrid/AdminSessionI.h
+++ b/cpp/src/IceGrid/AdminSessionI.h
@@ -13,6 +13,7 @@
#include <IceGrid/SessionI.h>
#include <IceGrid/Topics.h>
#include <IceGrid/ReapThread.h>
+#include <IceGrid/Internal.h>
namespace IceGrid
{
@@ -20,6 +21,9 @@ namespace IceGrid
class RegistryI;
typedef IceUtil::Handle<RegistryI> RegistryIPtr;
+class FileIteratorI;
+typedef IceUtil::Handle<FileIteratorI> FileIteratorIPtr;
+
class AdminSessionI : public BaseSessionI, public AdminSession
{
public:
@@ -37,24 +41,37 @@ public:
const AdapterObserverPrx&, const ObjectObserverPrx&, const Ice::Current&);
virtual void setObserversByIdentity(const Ice::Identity&, const Ice::Identity&, const Ice::Identity&,
- const Ice::Identity&, const Ice::Identity&, const Ice::Current&);
+ const Ice::Identity&, const Ice::Identity&, const Ice::Current&);
virtual int startUpdate(const Ice::Current&);
virtual void finishUpdate(const Ice::Current&);
virtual std::string getReplicaName(const Ice::Current&) const;
+ virtual FileIteratorPrx openServerStdOut(const std::string&, const Ice::Current&);
+ virtual FileIteratorPrx openServerStdErr(const std::string&, const Ice::Current&);
+
+ virtual FileIteratorPrx openNodeStdOut(const std::string&, const Ice::Current&);
+ virtual FileIteratorPrx openNodeStdErr(const std::string&, const Ice::Current&);
+
+ virtual FileIteratorPrx openRegistryStdOut(const std::string&, const Ice::Current&);
+ virtual FileIteratorPrx openRegistryStdErr(const std::string&, const Ice::Current&);
+
virtual void destroy(const Ice::Current&);
+ void removeFileIterator(const Ice::Identity&, const Ice::Current&);
+
private:
void setupObserverSubscription(TopicName, const Ice::ObjectPrx&);
Ice::ObjectPrx toProxy(const Ice::Identity&, const Ice::ConnectionPtr&);
+ FileIteratorPrx addFileIterator(const FileReaderPrx&, const std::string&, const Ice::Current&);
const int _timeout;
const AdminPrx _admin;
const std::string _replicaName;
std::map<TopicName, Ice::ObjectPrx> _observers;
+ std::set<Ice::Identity> _iterators;
};
typedef IceUtil::Handle<AdminSessionI> AdminSessionIPtr;
@@ -106,6 +123,23 @@ private:
const AdminSessionFactoryPtr _factory;
};
+class FileIteratorI : public FileIterator
+{
+public:
+
+ FileIteratorI(const AdminSessionIPtr&, const FileReaderPrx&, const std::string&);
+
+ virtual Ice::StringSeq read(int, const Ice::Current&);
+ virtual void destroy(const Ice::Current&);
+
+private:
+
+ AdminSessionIPtr _session;
+ FileReaderPrx _reader;
+ std::string _filename;
+ Ice::Long _offset;
+};
+
};
#endif