1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
|
// **********************************************************************
//
// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved.
//
// This copy of Ice is licensed to you under the terms described in the
// ICE_LICENSE file included in this distribution.
//
// **********************************************************************
#ifndef ICEGRID_ADMINSESSIONI_H
#define ICEGRID_ADMINSESSIONI_H
#include <IceGrid/SessionI.h>
#include <IceGrid/Topics.h>
#include <IceGrid/ReapThread.h>
#include <IceGrid/Internal.h>
namespace IceGrid
{
class RegistryI;
typedef IceUtil::Handle<RegistryI> RegistryIPtr;
class FileIteratorI;
typedef IceUtil::Handle<FileIteratorI> FileIteratorIPtr;
class AdminSessionI : public BaseSessionI, public AdminSession
{
public:
AdminSessionI(const std::string&, const DatabasePtr&, int, const RegistryIPtr&);
virtual ~AdminSessionI();
Ice::ObjectPrx _register(const SessionServantManagerPtr&, const Ice::ConnectionPtr&);
virtual void keepAlive(const Ice::Current& current) { BaseSessionI::keepAlive(current); }
virtual AdminPrx getAdmin(const Ice::Current& = Ice::Current()) const;
virtual void setObservers(const RegistryObserverPrx&, const NodeObserverPrx&, const ApplicationObserverPrx&,
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&);
virtual int startUpdate(const Ice::Current&);
virtual void finishUpdate(const Ice::Current&);
virtual std::string getReplicaName(const Ice::Current&) const;
virtual FileIteratorPrx openServerLog(const std::string&, const std::string&, int, const Ice::Current&);
virtual FileIteratorPrx openServerStdOut(const std::string&, int, const Ice::Current&);
virtual FileIteratorPrx openServerStdErr(const std::string&, int, const Ice::Current&);
virtual FileIteratorPrx openNodeStdOut(const std::string&, int, const Ice::Current&);
virtual FileIteratorPrx openNodeStdErr(const std::string&, int, const Ice::Current&);
virtual FileIteratorPrx openRegistryStdOut(const std::string&, int, const Ice::Current&);
virtual FileIteratorPrx openRegistryStdErr(const std::string&, int, 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&, int, const Ice::Current&);
virtual void destroyImpl(bool);
const int _timeout;
const std::string _replicaName;
AdminPrx _admin;
std::map<TopicName, Ice::ObjectPrx> _observers;
RegistryIPtr _registry;
};
typedef IceUtil::Handle<AdminSessionI> AdminSessionIPtr;
class AdminSessionFactory : virtual public IceUtil::Shared
{
public:
AdminSessionFactory(const SessionServantManagerPtr&, const DatabasePtr&, const ReapThreadPtr&, const RegistryIPtr&);
Glacier2::SessionPrx createGlacier2Session(const std::string&, const Glacier2::SessionControlPrx&);
AdminSessionIPtr createSessionServant(const std::string&);
const TraceLevelsPtr& getTraceLevels() const;
private:
const SessionServantManagerPtr _servantManager;
const DatabasePtr _database;
const int _timeout;
const ReapThreadPtr _reaper;
const RegistryIPtr _registry;
const bool _filters;
};
typedef IceUtil::Handle<AdminSessionFactory> AdminSessionFactoryPtr;
class AdminSessionManagerI : virtual public Glacier2::SessionManager
{
public:
AdminSessionManagerI(const AdminSessionFactoryPtr&);
virtual Glacier2::SessionPrx create(const std::string&, const Glacier2::SessionControlPrx&, const Ice::Current&);
private:
const AdminSessionFactoryPtr _factory;
};
class AdminSSLSessionManagerI : virtual public Glacier2::SSLSessionManager
{
public:
AdminSSLSessionManagerI(const AdminSessionFactoryPtr&);
virtual Glacier2::SessionPrx create(const Glacier2::SSLInfo&, const Glacier2::SessionControlPrx&,
const Ice::Current&);
private:
const AdminSessionFactoryPtr _factory;
};
class FileIteratorI : public FileIterator
{
public:
FileIteratorI(const AdminSessionIPtr&, const FileReaderPrx&, const std::string&, Ice::Long, int);
virtual bool read(int, Ice::StringSeq&, const Ice::Current&);
virtual void destroy(const Ice::Current&);
private:
const AdminSessionIPtr _session;
const FileReaderPrx _reader;
const std::string _filename;
Ice::Long _offset;
const int _messageSizeMax;
};
};
#endif
|