1 #include "AliStorageAdministratorPanelSetStorageParams.h"
2 #include "AliStorageTypes.h"
13 AliStorageAdministratorPanelSetStorageParams *AliStorageAdministratorPanelSetStorageParams::fInstance=0;
15 ClassImp(AliStorageAdministratorPanelSetStorageParams);
17 #define WINDOWS_WIDTH 200
18 #define WINDOWS_HEIGHT 200
32 AliStorageAdministratorPanelSetStorageParams::AliStorageAdministratorPanelSetStorageParams() :
33 TGMainFrame(gClient->GetRoot(), 400, 400),
35 fMaxStorageSizeEntry(0),
36 fMaxOccupationEntry(0),
37 fRemoveEventsEntry(0),
38 fEventsInChunkEntry(0),
42 fEventManager = new AliStorageEventManager();
46 AliStorageAdministratorPanelSetStorageParams::~AliStorageAdministratorPanelSetStorageParams(){}
48 AliStorageAdministratorPanelSetStorageParams* AliStorageAdministratorPanelSetStorageParams::GetInstance()
50 if(!fInstance){fInstance = new AliStorageAdministratorPanelSetStorageParams();}
54 void AliStorageAdministratorPanelSetStorageParams::Setup(socket_t *socket, int maxStorageSize, int maxOccupation, int removeEvents, int eventsInChunk)
56 fClientSocket = socket;
57 fMaxStorageSizeEntry->SetIntNumber(maxStorageSize);
58 fMaxOccupationEntry->SetIntNumber(maxOccupation);
59 fRemoveEventsEntry->SetIntNumber(removeEvents);
60 fEventsInChunkEntry->SetIntNumber(eventsInChunk);
63 void AliStorageAdministratorPanelSetStorageParams::InitWindow()
65 SetCleanup(kDeepCleanup);
68 AddFrame(new TGLabel(this,"Max storage size (MB):"),new TGLayoutHints(kLHintsLeft));
70 fMaxStorageSizeEntry = new TGNumberEntry(this,
74 TGNumberFormat::kNESInteger,
75 TGNumberFormat::kNEAPositive,
76 TGNumberFormat::kNELNoLimits);
77 AddFrame(fMaxStorageSizeEntry,new TGLayoutHints(kLHintsLeft));
80 AddFrame(new TGLabel(this,"Max occupation percent (%):"),new TGLayoutHints(kLHintsLeft));
82 fMaxOccupationEntry = new TGNumberEntry(this,
86 TGNumberFormat::kNESInteger,
87 TGNumberFormat::kNEAPositive,
88 TGNumberFormat::kNELNoLimits);
89 AddFrame(fMaxOccupationEntry,new TGLayoutHints(kLHintsLeft));
91 // remove events percantage
92 AddFrame(new TGLabel(this,"Remove events percentage (%):"),new TGLayoutHints(kLHintsLeft));
94 fRemoveEventsEntry = new TGNumberEntry(this,
98 TGNumberFormat::kNESInteger,
99 TGNumberFormat::kNEAPositive,
100 TGNumberFormat::kNELNoLimits);
101 AddFrame(fRemoveEventsEntry,new TGLayoutHints(kLHintsLeft));
104 AddFrame(new TGLabel(this,"Number of events in file:"),new TGLayoutHints(kLHintsLeft));
106 fEventsInChunkEntry = new TGNumberEntry(this,
110 TGNumberFormat::kNESInteger,
111 TGNumberFormat::kNEAPositive,
112 TGNumberFormat::kNELNoLimits);
113 AddFrame(fEventsInChunkEntry,new TGLayoutHints(kLHintsLeft));
116 fStatusLabel = new TGLabel(this,"");
117 AddFrame(fStatusLabel,new TGLayoutHints(kLHintsExpandX | kLHintsLeft));
119 AddFrame(new TGTextButton(this,"Close",BUTTON_CLOSE),
120 new TGLayoutHints(kLHintsLeft));
122 AddFrame(new TGTextButton(this,"Set parameters",BUTTON_SET),
123 new TGLayoutHints(kLHintsRight));
126 SetWindowName("Set Storage Parameters");
128 Resize(WINDOWS_WIDTH,WINDOWS_HEIGHT);
135 void AliStorageAdministratorPanelSetStorageParams::onSetParamsButton()
138 struct clientRequestStruct *requestMessage = new struct clientRequestStruct;
139 //get run and event number from TGNumberEntries
140 requestMessage->messageType = REQUEST_SET_PARAMS;
141 requestMessage->maxStorageSize = fMaxStorageSizeEntry->GetIntNumber()*1000000;
142 requestMessage->maxOccupation = fMaxOccupationEntry->GetIntNumber();
143 requestMessage->removeEvents = fRemoveEventsEntry->GetIntNumber();
144 requestMessage->eventsInChunk = fEventsInChunkEntry->GetIntNumber();
146 fEventManager->Send(requestMessage,fClientSocket);
148 message_t *response = new message_t();
149 fClientSocket->recv(response);
150 char *result = (char*)response->data();
152 if(!strcmp("true",result))
154 fStatusLabel->SetText("Params set");
155 cout<<"ADMIN PANEL -- Params set succesfully"<<endl;
159 fStatusLabel->SetText("Couldn't set params");
160 cout<<"ADMIN PANEL -- Couldn't set params"<<endl;
164 void AliStorageAdministratorPanelSetStorageParams::onCloseButton(){onExit();}
165 void AliStorageAdministratorPanelSetStorageParams::CloseWindow(){onExit();}
167 void AliStorageAdministratorPanelSetStorageParams::onExit()
169 cout<<"Quiting set storage params";
170 if(fInstance){delete fInstance;fInstance=0;}
171 cout<<" -- OK"<<endl;
174 Bool_t AliStorageAdministratorPanelSetStorageParams::ProcessMessage(Long_t msg, Long_t parm1, Long_t)
176 switch (GET_MSG(msg))
179 switch (GET_SUBMSG(msg))
184 case BUTTON_CLOSE:onCloseButton();break;
185 case BUTTON_SET:onSetParamsButton();break;