Log of /trunk/net/net/inc/TMessage.h
Parent Directory
Revision
39696 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jun 13 21:35:34 2011 UTC (3 years, 7 months ago) by
pcanal
File length: 4649 byte(s)
Diff to
previous 35752
From David Dagenhart:
Implement an option to allow ROOT to use the LZMA compression
algorithm to compress data instead of the ZLIB compression algorithm.
LZMA compression typically results in smaller files, but takes more
CPU time to compress data. To use the new feature, the external XZ
package must be installed when ROOT is configured and built:
Download 5.0.3 from here http://tukaani.org/xz/
and make sure to configure with fPIC:
./configure CFLAGS='-fPIC'
Then the client C++ code must call routines to explicitly request LZMA
compression.
ZLIB compression is still the default.
Setting the Compression Level and Algorithm:
There are three equivalent ways to set the compression level and
algorithm. For example, to set the compression to the LZMA algorithm
and compression level 5.
1. TFile f(filename, option, title);
f.SetCompressionSettings(ROOT::CompressionSettings(ROOT::kLZMA, 5));
OR
2. TFile f(filename, option, title, ROOT::CompressionSettings(ROOT::kLZMA, 5));
OR
3. TFile f(filename, option, title);
f.SetCompressionAlgorithm(ROOT::kLZMA);
f.SetCompressionLevel(5);
These methods work for TFile, TBranch, TMessage, TSocket, and TBufferXML.
The compression algorithm and level settings only affect compression of
data after they have been set. TFile passes its settings to its branches
only at the time the branches are created. This can be overidden by
explicitly setting the level and algorithm for the branch. These classes
also have the following methods to access the algorithm and level for
compression.
Int_t GetCompressionAlgorithm() const;
Int_t GetCompressionLevel() const;
Int_t GetCompressionSettings() const;
If the compression level is set to 0, then no compression will be
done. All of the currently supported algorithms allow the level to be
set to any value from 1 to 9. The higher the level, the larger the
compression factors will be (smaller compressed data size). The
tradeoff is that for higher levels more CPU time is used for
compression and possibly more memory. The ZLIB algorithm takes less
CPU time during compression than the LZMA algorithm, but the LZMA
algorithm usually delivers higher compression factors.
The header file core/zip/inc/Compression.h declares the function
"CompressionSettings" and the enumeration for the algorithms.
Currently the following selections can be made for the algorithm:
kZLIB (1), kLZMA (2), kOldCompressionAlgo (3), and kUseGlobalSetting
(0). The last option refers to an older interface used to control the
algorithm that is maintained for backward compatibility. The following
function is defined in core/zip/inc/Bits.h and it set the global
variable.
R__SetZipMode(int algorithm)
If the algorithm is set to kUseGlobalSetting (0), the global variable
controls the algorithm for compression operations. This is the
default and the default value for the global variable is kZLIB.
Note that the LZMA algorithm will only be available if the LZMA
libraries from the XZ package were available when the ROOT executable
being used was configured and built. If you are building ROOT and want
LZMA then you must do something similar to the following if XZ is not
already installed on your system.
Download XZ version 5.0.3 from http://tukaani.org/xz/
unwind the tarball
cd xz-5.0.3
./configure CFLAGS='-fPIC'
make
ROOT was tested with version 5.0.3 of XZ. It might work with earlier
versions and will probably work with later versions of XZ.
Then either use "make install" to put the library and headers into
/usr/local/* so the scripts building ROOT can find them or use
arguments to the ROOT configure script to point to the proper
directories containing the XZ library and headers. These are the
library and the included header (lzma.h includes other headers in the
lzma subdirectory).
src/liblzma/.libs/liblzma.a
src/liblzma/api/lzma.h
WARNING: Data compressed with the LZMA algorithm cannot be read by
ROOT executables that were not built with LZMA support.
Revision
35752 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sun Sep 26 22:07:36 2010 UTC (4 years, 3 months ago) by
rdm
File length: 3944 byte(s)
Diff to
previous 35314
From Matevz:
attached a patch that allows buffer size to be specified as an
optional argument to TMessage constructor. The minimal size will still be
enforced to 128 bytes in TBuffer constructor, while the default remains 1024.
Revision
35314 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Sep 16 03:22:09 2010 UTC (4 years, 4 months ago) by
pcanal
File length: 3906 byte(s)
Diff to
previous 27689
Migrate the functionality of TStreamerInfo::TagFile to a new interface TBuffer::TagStreamerInfo
so that TMessage can customize the behavior. TMessage now relies on this new interface
instead of TBuffer::IncrementLevel which had the disadvantage of being called not only
during writing but also during reading (where there is no need to keep track of the StreamerInfo used).
[This change will also allow us to keep the calls to IncrementLevel/DecrementLevel only in the
case the buffer is a TBufferXML]
Fix the implementation of TSocket::RecvStreamerInfos to properly handle the case where there are
abstract classes (when GetStreamerInfo() can not be called on an abstract class until it has
been called for one of the concrete derived classes) and the case of STL containers.
Revision
24432 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jun 20 15:43:30 2008 UTC (6 years, 7 months ago) by
rdm
File length: 3875 byte(s)
Diff to
previous 24218
add local fEvolution flag in TMessage. It will be initialized by the value
of fgEvolution at the time of message creation. This to:
1) allow some message to have schema evolution while others not
2) to avoid that the changing of the global fgEvolution during the life-time
of a message to cause problems
Revision
24218 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Jun 11 15:39:32 2008 UTC (6 years, 7 months ago) by
brun
File length: 3605 byte(s)
Diff to
previous 24164
-implement the new function TMessage::ForceWriteInfo. The function adds the TStreamerInfo
objects to the list of streamed TStreamerInfos.
Revision
24164 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jun 6 12:20:34 2008 UTC (6 years, 7 months ago) by
brun
File length: 3507 byte(s)
Diff to
previous 23961
Protect TF1::ExecuteEvent in case fHistogram is null. This case may happen
in a multi-threaded application when one thread repaints the histogram while the mouse is over a pad containing a TF1.
Revision
23961 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu May 22 07:44:09 2008 UTC (6 years, 8 months ago) by
brun
File length: 3228 byte(s)
Diff to
previous 23956
Make the automatic schema evolution optional.
Add a new static function
TMessage::EnableSchemaEvolution(Bool_t enable=kFALSE)
Revision
23956 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed May 21 17:05:21 2008 UTC (6 years, 8 months ago) by
brun
File length: 3077 byte(s)
Diff to
previous 23091
In view of the coming TSocket schema evolution support, we extend TMessage with
a new TList* fInfos member that keeps track of all TStreamerInfo objects used when writing the object in the message.
Implement TMessage::WriteObject overloading TBufferFile::WriteObject.
Revision
23091 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Apr 9 15:04:27 2008 UTC (6 years, 9 months ago) by
rdm
File length: 2892 byte(s)
Copied from:
trunk/net/inc/TMessage.h revision 23090
Diff to
previous 20882
moving the follwing directories to "net":
alien, auth, glite, globusauth, krb5auth, ldap, monalisa, net, netx,
rootd, rpdutils, srputils, xrootd
Revision
17402 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Jan 19 16:48:00 2007 UTC (8 years ago) by
brun
Original Path:
trunk/net/inc/TMessage.h
File length: 2949 byte(s)
Diff to
previous 13588
CVs been changed into a pure abstract interface.
The concrete implementation is in the new class TBufferFile.
All classes previously deriving from TBuffer derive now from TBufferFile, ie
TBuffer <- TBufferFile <- TMessage
<- TBufferXML
<- TBufferSQL
<- TBufferSQL2
Because there are several problems with C++ operators overloading,
The I/O operators are defined in TBuffer. These are inline functions
calling C++ virtual functions defined in TBuffer and overloaded
by TBufferFile and all other derived classes when necessary.
The previous implementation of TBuffer.h included <vector> and Bytes.h.
The two include statements have been moved to TBufferFile.h. As a result the
compilation of the ROOT system is now slightly faster and a big bonus
is that changes in TBufferFile or Bytes.h will affect only TBufferFile
and will not force the recompilation of the entire system.
This change has some side-effects. If you assumed that include <vector>
was done by TBuffer.h, you may have to specify this include directly
in your class. This was the case for a few ROOT classes.
: ----------------------------------------------------------------------
Revision
13588 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Dec 9 15:12:19 2005 UTC (9 years, 1 month ago) by
rdm
Original Path:
trunk/net/inc/TMessage.h
File length: 2937 byte(s)
Diff to
previous 12337
From Gerri:
some small mods that prepare the ground for the new PROOF patch:
- TMessage.h, TMonitor.h: add friendship to new socket classes
- TSemaphose: support relative timeout in Wait()
- TUrl: in GetUrl() add option to also get default port numbers as part
of the url.
Revision
12337 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jul 18 16:20:53 2005 UTC (9 years, 6 months ago) by
rdm
Original Path:
trunk/net/inc/TMessage.h
File length: 2914 byte(s)
Diff to
previous 8795
From Gerri:
Big patch restructuring the authentication code so libCore does not depend
on libssl etc. anymore. Isolate the current authentication code behind a
plugin library to be loaded on demand.
Setup of a framework able to manage both sets of authentication modules
(the current one and the one based on xrdsec, coming soon).
Cleanup all direct reference to authentication in TSlave and TProofServ,
allowing for significant simplification for the forthcoming changes
in PROOF for XPD.
New module: auth
New files: base/inc/TVirtualAuth.h
auth/Module.Mk
auth/inc/LinkDefRoot.h
auth/inc/TRootAuth.h auth/inc/TRootSecContext.h
auth/src/TRootAuth.cxx auth/src/TRootSecContext.cxx
Moved files:
net/inc -> auth/inc : TAuthenticate.h THostAuth.h DaemonUtils.h AuthConst.h
net/src -> auth/src : TAuthenticate.cxx THostAuth.cxx DaemonUtils.cxx
Revision
8795 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed May 5 14:43:34 2004 UTC (10 years, 8 months ago) by
rdm
Original Path:
trunk/net/inc/TMessage.h
File length: 2886 byte(s)
Diff to
previous 7313
allow TMessages to be compressed before sending them. To have a specific
message compressed use TMessage::SetCompressionLevel(n) where 0 < n <= 9,
like for TFile::SetCompressionLevel(). To have all messages send over
a specific TSocket compressed, use TSocket::SetCompressionLevel().
When a compressed message is received it is automatically uncompressed.
See modified tutorials/hclient.C on how this feature is used.
Revision
1193 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Dec 12 18:20:02 2000 UTC (14 years, 1 month ago) by
rdm
Original Path:
trunk/net/inc/TMessage.h
File length: 2315 byte(s)
Diff to
previous 516
override TBuffer::WriteObject() and make sure gFile=0 so no streamer info
object will be attached to the currently open file. Also provide definition
of copy and assignment operators, but no implementation, so CINT does not
generate an automatic copy ctor that would call the not implemented TBuffer
copy ctor.
Revision
516 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Aug 21 10:37:30 2000 UTC (14 years, 5 months ago) by
rdm
Original Path:
trunk/net/inc/TMessage.h
File length: 2100 byte(s)
Diff to
previous 3
added new method TMessage::Forward() which allows a just received message
to be send out (forwarded). It switches the TMessage from read mode to write
mode and resets some internal pointers. Change also required change in way
private TMessage ctor is called by friend TSocket::Recv() method.
This form allows you to request diffs between any two revisions of this file.
For each of the two "sides" of the diff,
enter a numeric revision.