]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STORAGE/AliStorageAdministratorPanelMarkEvent.cxx
fixed include in AliStorageAdministratorPanel.cxx
[u/mrichter/AliRoot.git] / STORAGE / AliStorageAdministratorPanelMarkEvent.cxx
CommitLineData
5eb34a26 1#include "AliStorageAdministratorPanelMarkEvent.h"
2#include "AliStorageTypes.h"
3
4#include <iostream>
5#include "zmq.hpp"
6
7#include <TGFrame.h>
8#include <TGButton.h>
9
10using namespace std;
11using namespace zmq;
12
13AliStorageAdministratorPanelMarkEvent *AliStorageAdministratorPanelMarkEvent::fInstance=0;
14
15ClassImp(AliStorageAdministratorPanelMarkEvent);
16
17#define WINDOWS_WIDTH 200
18#define WINDOWS_HEIGHT 200
19
20enum BUTTON{
21 BUTTON_CLOSE=1,
22 BUTTON_MARK
23};
24
25enum TEXTENTRY{
26 TEXTENTRY_RUN=1,
27 TEXTENTRY_EVENT
28};
29
30AliStorageAdministratorPanelMarkEvent::AliStorageAdministratorPanelMarkEvent() :
31 TGMainFrame(gClient->GetRoot(), 400, 400),
32 fStatusLabel(0),
33 fRunNumberEntry(0),
34 fEventNumberEntry(0),
35 fServerSocket(0),
36 fEventManager(0)
37{
38 fEventManager = new AliStorageEventManager();
39 InitWindow();
40}
41
42AliStorageAdministratorPanelMarkEvent::~AliStorageAdministratorPanelMarkEvent()
43{
44 cout<<"ADMIN PANEL -- Mark Window descructor called";
45// if(fStatusLabel)delete fStatusLabel;
46// if(fRunNumberEntry)delete fRunNumberEntry;
47// if(fEventNumberEntry)delete fEventNumberEntry;
48 //if(fServerSocket)delete fServerSocket;
49// DestroyWindow();
50 cout<<" --- OK"<<endl;
51}
52
53AliStorageAdministratorPanelMarkEvent* AliStorageAdministratorPanelMarkEvent::GetInstance()
54{
55 if(!fInstance){fInstance = new AliStorageAdministratorPanelMarkEvent();}
56 return fInstance;
57}
58
59void AliStorageAdministratorPanelMarkEvent::SetSocket(socket_t *socket)
60{
61 fServerSocket = socket;
62}
63
64void AliStorageAdministratorPanelMarkEvent::InitWindow()
65{
66 SetCleanup(kDeepCleanup);
67
68 AddFrame(new TGLabel(this,"Run number:"),new TGLayoutHints(kLHintsLeft));
69
70 fRunNumberEntry = new TGNumberEntry(this,
71 0,
72 6,
73 TEXTENTRY_RUN,
74 TGNumberFormat::kNESInteger,
75 TGNumberFormat::kNEAPositive,
76 TGNumberFormat::kNELNoLimits);
77 AddFrame(fRunNumberEntry,new TGLayoutHints(kLHintsLeft));
78
79 AddFrame(new TGLabel(this,"Event number:"),new TGLayoutHints(kLHintsLeft));
80
81 fEventNumberEntry = new TGNumberEntry(this,
82 0,
83 6,
84 TEXTENTRY_EVENT,
85 TGNumberFormat::kNESInteger,
86 TGNumberFormat::kNEAPositive,
87 TGNumberFormat::kNELNoLimits);
88 AddFrame(fEventNumberEntry,new TGLayoutHints(kLHintsLeft));
89
90 fStatusLabel = new TGLabel(this,"");
91 AddFrame(fStatusLabel,new TGLayoutHints(kLHintsExpandX | kLHintsLeft));
92
93 AddFrame(new TGTextButton(this,"Close",BUTTON_CLOSE),
94 new TGLayoutHints(kLHintsLeft));
95
96 AddFrame(new TGTextButton(this,"Mark event",BUTTON_MARK),
97 new TGLayoutHints(kLHintsRight));
98
99
100 SetWindowName("Mark Event");
101 MapSubwindows();
102 Resize(WINDOWS_WIDTH,WINDOWS_HEIGHT);
103 MapWindow();
104}
105
106
107
108
109void AliStorageAdministratorPanelMarkEvent::onMarkButton()
110{
111 int runNumber;
112 int eventNumber;
113
114 //get run and event number from TGNumberEntries
115 runNumber=fRunNumberEntry->GetIntNumber();
116 eventNumber=fEventNumberEntry->GetIntNumber();
117
118 struct serverRequestStruct *requestMessage = new struct serverRequestStruct;
119 struct eventStruct mark;
120 mark.runNumber = runNumber;
121 mark.eventNumber = eventNumber;
122 requestMessage->messageType = REQUEST_MARK_EVENT;
123 requestMessage->event = mark;
124
125 fEventManager->Send(requestMessage,fServerSocket);
126
127 message_t *response = new message_t();
128 fServerSocket->recv(response);
129 char *result = (char*)response->data();
130
131 if(!strcmp("true",result))
132 {
133 fStatusLabel->SetText("Event marked");
134 cout<<"ADMIN PANEL -- Event marked succesfully"<<endl;
135 }
136 else
137 {
138 fStatusLabel->SetText("Couldn't mark this event");
139 cout<<"ADMIN PANEL -- Could not matk event"<<endl;
140 }
141}
142
143void AliStorageAdministratorPanelMarkEvent::onCloseButton(){onExit();}
144void AliStorageAdministratorPanelMarkEvent::CloseWindow(){onExit();}
145
146void AliStorageAdministratorPanelMarkEvent::onExit()
147{
148 cout<<"Quiting mark event";
149 if(fInstance){delete fInstance;fInstance=0;}
150 cout<<" -- OK"<<endl;
151}
152
153Bool_t AliStorageAdministratorPanelMarkEvent::ProcessMessage(Long_t msg, Long_t parm1, Long_t)
154{
155 switch (GET_MSG(msg))
156 {
157 case kC_COMMAND:
158 switch (GET_SUBMSG(msg))
159 {
160 case kCM_BUTTON:
161 switch(parm1)
162 {
163 case BUTTON_CLOSE:onCloseButton();break;
164 case BUTTON_MARK:onMarkButton();break;
165 default:break;
166 }
167 break;
168 default:break;
169 }
170 break;
171 default:break;
172 }
173
174 return false;
175}