About ODesc

I can not understand the class of ODesc.

ODesc is used by Bro objects to describe themselves. An ODesc can associated
with a file, in which case the description is written to the file; or, if
no file is specified, then the description is built up in string internal
to the ODesc object, which can then be retireved using Description(),
Bytes(), or TakeBytes(). One way to figure this out by yourself is to search
on references in the source code to ODesc. You'll find that they're all
in Describe() and ValDescribe() methods.

Could you tell the detail of it :
each variable represent what, how does each function work?

The workings should be apparent with a bit of inspection to those with a
good familiarity with C++. Such familiarity is required at this point for
those who want to delve into the details of Bro's inner workings.