14 #ifndef TGO4HTTPPROXY_H 15 #define TGO4HTTPPROXY_H 19 #include "TXMLEngine.h" 21 #include <QNetworkAccessManager> 22 #include <QNetworkReply> 36 QNetworkAccessManager
qnam;
66 XMLNodePointer_t fNode{
nullptr};
82 QNetworkReply *fReply{
nullptr};
86 void httpError(QNetworkReply::NetworkError);
94 Bool_t
IsRemote()
const override {
return kTRUE; }
98 Bool_t
GetObject(TObject *&obj, Bool_t &owner)
const override {
return kFALSE; }
100 TClass *GetObjectClass()
const override;
102 const char *GetObjectName()
const override;
104 const char *GetObjectClassName()
const override;
119 TXMLEngine *fXML{
nullptr};
120 XMLDocPointer_t fxHierarchy{
nullptr};
125 Bool_t fbAnalysisRunning{kFALSE};
128 Bool_t fConnected{kFALSE};
129 QNetworkReply *fRegularReq{
nullptr};
130 Int_t fShutdownCnt{0};
132 void GetHReply(QByteArray& res);
134 XMLNodePointer_t FindItem(
const char *name, XMLNodePointer_t curr =
nullptr)
const;
136 TString MakeUrlPath(XMLNodePointer_t item);
138 void ProcessUpdateTimer();
140 void ProcessRegularMultiRequest(Bool_t finished = kFALSE);
142 Bool_t ServerHasRestrict()
const;
144 Bool_t ServerHasMulti();
146 Bool_t SubmitURL(
const char *path, Int_t waitres = -1);
148 Bool_t PostObject(
const char *prefix, TObject *obj, Int_t waitres = -1, Bool_t destroy_after = kTRUE);
150 Bool_t CheckUserName(
const char *expects, Bool_t dflt = kFALSE)
const;
152 Bool_t CheckShutdown(Bool_t force = kFALSE);
154 TGo4HttpAccess* SubmitRequest(
const char *itemname, Int_t kind,
TGo4Slot *tgtslot,
const char *extra_arg =
nullptr);
160 void SetAccount(
const char *username,
const char *passwd);
162 Bool_t Connect(
const char *nodename);
163 Bool_t UpdateHierarchy(Bool_t sync = kTRUE);
165 void Initialize(
TGo4Slot *slot)
override;
168 Bool_t HasSublevels()
const override;
169 std::unique_ptr<TGo4Access> ProvideAccess(
const char *name)
override;
175 const char *GetContainedObjectInfo()
override;
178 void WriteData(
TGo4Slot *slot, TDirectory *dir, Bool_t onlyobjs)
override;
179 void ReadData(
TGo4Slot *slot, TDirectory *dir)
override;
181 void Update(
TGo4Slot *slot, Bool_t strong)
override;
183 TString FindCommand(
const char *name)
override;
184 Int_t NumCommandArgs(
const char *name)
override;
185 Bool_t SubmitCommand(
const char *name, Int_t waitres = -1,
const char *arg1 =
nullptr,
const char *arg2 =
nullptr,
const char *arg3 =
nullptr)
override;
187 const char *
GetUserName()
const override {
return fUserName.Data(); }
190 Bool_t IsGo4Analysis()
const override;
192 Bool_t
IsViewer()
const override {
return CheckUserName(
"observer", kFALSE); }
193 Bool_t
IsController()
const override {
return CheckUserName(
"controller", kFALSE); }
196 Bool_t CanSubmitObjects()
const override;
197 void RequestAnalysisSettings()
override;
198 void SubmitAnalysisSettings()
override;
199 void CloseAnalysisSettings()
override;
201 Bool_t NamesListReceived()
const override;
202 Bool_t RefreshNamesList()
override;
203 Bool_t DelayedRefreshNamesList(Int_t delay_sec)
override;
206 void StartAnalysis()
override;
207 void StopAnalysis()
override;
209 Bool_t RequestObjectStatus(
const char *objectname,
TGo4Slot *tgtslot)
override;
211 Bool_t UpdateAnalysisObject(
const char *objectname, TObject *obj)
override;
213 void ClearAllAnalysisObjects()
override;
214 void ClearAnalysisObject(
const char *fullpath)
override;
216 void RemoteTreeDraw(
const char *treename,
219 const char *hname)
override;
221 void RequestEventStatus(
const char *evname, Bool_t astree,
TGo4Slot *tgtslot)
override;
223 void RemotePrintEvent(
const char *evname,
227 Bool_t islong)
override;
229 void ChageObjectProtection(
const char *fullpath,
const char *flags)
override;
231 void RemoveObjectFromAnalysis(
const char *fullpath)
override;
233 void ExecuteLine(
const char *line)
override;
235 void PrintDynListEntry(
const char *fullpath)
override;
237 void LoadConfigFile(
const char *fname)
override;
238 void SaveConfigFile(
const char *fname)
override;
240 void WriteAutoSave(
const char *fname,
242 Bool_t overwrite)
override;
244 void ResetDebugOutputRequests()
override;
246 void DisconnectAnalysis(Int_t waittime = 30, Bool_t servershutdown = kFALSE)
override;
TGo4HttpProxy * fProxy
used only to receive hierarchy
TString fPassword
user name and password -
Bool_t IsRemote() const override
void Finalize(TGo4Slot *slot) override
QNetworkAccessManager qnam
Bool_t IsController() const override
Bool_t IsAnalysisRunning() const override
Bool_t IsAnalysisServer() const override
void authenticationRequiredSlot(QNetworkReply *, QAuthenticator *)
QHttpProxy(TGo4HttpProxy *p)
TObject * GetAssignedObject() override
Bool_t IsConnected() const override
Int_t GetObjectSizeInfo() const override
void StartRequest(const char *url)
virtual ~TGo4HttpAccess()
QHttpProxy fComm
pointer on dabc::Hierarchy class
void httpHReqError(QNetworkReply::NetworkError)
Bool_t GetObject(TObject *&obj, Bool_t &owner) const override
void regularRequestFinished()
QNetworkReply * fHReply
central manager of network requests
friend class TGo4HttpAccess
const char * GetContainedClassName() const override
friend class TGo4HttpProxy
Bool_t IsAdministrator() const override
Bool_t CanGetObject() const override
Bool_t IsViewer() const override
Int_t GetObjectKind() const override
const char * GetUserName() const override