47void fastMergeServer(
bool cache =
false) {
64 merger.SetPrintLevel(0);
79 if (s->IsA() == TServerSocket::Class()) {
80 if (clientCount > 100) {
81 printf(
"only accept 100 clients connections\n");
86 client->
Send(clientCount, kStartConnection);
87 client->
Send(kProtocolVersion, kProtocol);
90 printf(
"Accept %d connections\n",clientCount);
98 Error(
"fastMergeServer",
"The client did not send a message\n");
102 printf(
"Client %d: %s\n", clientCount, str);
104 printf(
"Client %d: bytes recv = %d, bytes sent = %d\n", clientCount, s->
GetBytesRecv(),
108 if (mon->
GetActive() == 0 || clientCount == 0) {
109 printf(
"No more active clients... stopping\n");
121 Info(
"fastMergeServer",
"Receive input from client %d for %s",clientId,filename.
Data());
126 merger.OutputFile(filename,
"UPDATE");
127 merger.AddAdoptFile(transient);
134 printf(
"*** Unexpected message ***\n");
void Info(const char *location, const char *msgfmt,...)
Use this function for informational messages.
void Error(const char *location, const char *msgfmt,...)
Use this function in case an error occurred.
void ReadTString(TString &s) override
Read TString from TBuffer.
char * ReadString(char *s, Int_t max) override
Read string from I/O buffer.
void ReadInt(Int_t &i) override
void ReadLong64(Long64_t &l) override
void SetBufferOffset(Int_t offset=0)
A cache when writing files over the network.
This class provides file copy and merging services.
@ kAllIncremental
Merge incrementally all type of objects.
A TMemFile is like a normal TFile except that it reads and writes only from memory.
TClass * GetClass() const
TSocket * Select()
Return pointer to socket for which an event is waiting.
virtual void Add(TSocket *sock, Int_t interest=kRead)
Add socket to the monitor's active list.
Int_t GetActive(Long_t timeout=-1) const
Return number of sockets in the active list.
virtual void Remove(TSocket *sock)
Remove a socket from the monitor.
virtual const char * GetName() const
Returns name of object.
UInt_t GetBytesRecv() const
virtual Int_t Recv(TMessage *&mess)
Receive a TMessage object.
UInt_t GetBytesSent() const
virtual void Close(Option_t *opt="")
Close the socket.
virtual Bool_t IsValid() const
virtual Int_t Send(const TMessage &mess)
Send a TMessage object.
const char * Data() const