//---------------------------------------------------------------------
      String PeerContactProfile::getContactID() const
      {
        AutoRecursiveLock lock(mLock);
        if (!mDocument) return String();

        ElementPtr contactProfileElement = getContactProfileElement();
        if (!contactProfileElement) return String();
        return contactProfileElement->getAttributeValue("id");
      }
      //---------------------------------------------------------------------
      UINT PeerContactProfile::getVersionNumber() const
      {
        AutoRecursiveLock lock(mLock);
        if (!mDocument) return 0;

        ElementPtr contactProfileElement = getContactProfileElement();
        if (!contactProfileElement) return 0;
        String version = contactProfileElement->getAttributeValue("version");

        try {
          return (Numeric<UINT>(version));
        } catch(Numeric<UINT>::ValueOutOfRange &) {
        }
        return 0;
      }