39 class XrdClientMessage;
 
   40 class XrdClientUnsolMsgSender;
 
   43 enum UnsolRespProcResult {
 
   51 class XrdClientAbsUnsolMsgHandler {
 
   54    virtual ~XrdClientAbsUnsolMsgHandler() { }
 
   56    virtual UnsolRespProcResult ProcessUnsolicitedMsg(XrdClientUnsolMsgSender *sender, 
 
   57                   XrdClientMessage *unsolmsg) = 0;
 
   63 class XrdClientUnsolMsgSender {
 
   67    virtual ~XrdClientUnsolMsgSender() { }
 
   70    XrdClientAbsUnsolMsgHandler *UnsolicitedMsgHandler;
 
   72    inline UnsolRespProcResult SendUnsolicitedMsg(XrdClientUnsolMsgSender *sender, XrdClientMessage *unsolmsg) {
 
   74       if (UnsolicitedMsgHandler)
 
   75     return (UnsolicitedMsgHandler->ProcessUnsolicitedMsg(sender, unsolmsg));
 
   77       return kUNSOL_CONTINUE;
 
   80    inline XrdClientUnsolMsgSender() { UnsolicitedMsgHandler = 0; }