ClientUser::Message( Error * )
Output information or errors.
Virtual? |
Yes |
|
Class |
||
Arguments |
|
an |
Returns |
|
Notes
Message()
is used by
2002.1 and later servers to display information or errors resulting from
Helix Core Server
commands. Earlier versions of the Helix Core Server call OutputInfo()
to
display information, and HandleError()
to
display errors.
The default implementation of Message()
makes calls
to OutputInfo()
or
HandleError()
as
appropriate. If you want your application to be compatible with
pre-2002.1 servers, use this default implementation of Message()
- newer
servers will call Message()
, and older
servers will call OutputInfo()
and HandleError()
directly.
If you re-implement Message()
to handle
errors and information in a different way, be advised that older servers
will still call OutputInfo()
and HandleError()
rather than your Message()
method.
Example
> p4 files //depot/proj/... //depot/proj/file.c#1 - add change 456 (text)
In this example, the server passes a single Error
object to
the ClientUser
's Message()
method, with
a severity of E_INFO
and text "//depot/proj/file.c#1 - add
change 456 (text)". The default Message()
method
detects that this was an "info" message, and passes the text to OutputInfo()
, which
by default sends the text to stdout
.
To handle messages differently, subclass ClientUser
and
re-implement the Message()
method (see
the preceding note on interoperability with old servers if you do
this).
For example, to take all server messages and load them into a
StrBuf
that is a member of your ClientUser
class, use the following:
void MyClientUser::Message( Error *err ) { StrBuf buf; err->Fmt( buf, EF_PLAIN ); myBuf.Append( buf ); }