diff options
Diffstat (limited to 'cpp/src/IceGrid/AdminSessionI.h')
-rw-r--r-- | cpp/src/IceGrid/AdminSessionI.h | 36 |
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 |