コード例 #1
0
ファイル: LockboxAccessResult.cpp プロジェクト: Yoko2012/op
        //---------------------------------------------------------------------
        LockboxAccessResultPtr LockboxAccessResult::create(
                                                           ElementPtr rootEl,
                                                           IMessageSourcePtr messageSource
                                                           )
        {
          LockboxAccessResultPtr ret(new LockboxAccessResult);
          IMessageHelper::fill(*ret, rootEl, messageSource);

          ret->mLockboxInfo = MessageHelper::createLockbox(rootEl->findFirstChildElement("lockbox"));
          ret->mNamespaceGrantChallengeInfo = MessageHelper::createNamespaceGrantChallenge(rootEl->findFirstChildElement("namespaceGrantChallenge"));

          ElementPtr identitiesEl = rootEl->findFirstChildElement("identities");
          if (identitiesEl) {
            ElementPtr identityEl = identitiesEl->findFirstChildElement("identity");
            while (identityEl) {
              IdentityInfo info = MessageHelper::createIdentity(identityEl);
              if (info.hasData()) {
                ret->mIdentities.push_back(info);
              }
              identityEl = identityEl->findNextSiblingElement("identity");
            }
          }

          return ret;
        }
コード例 #2
0
        //---------------------------------------------------------------------
        NamespaceGrantCompleteNotifyPtr NamespaceGrantCompleteNotify::create(
                                                                             ElementPtr rootEl,
                                                                             IMessageSourcePtr messageSource
                                                                             )
        {
          NamespaceGrantCompleteNotifyPtr ret(new NamespaceGrantCompleteNotify);
          IMessageHelper::fill(*ret, rootEl, messageSource);

          ElementPtr namespaceGranthallengeBundlesEl = rootEl->findFirstChildElement("namespaceGrantChallengeBundles");
          if (namespaceGranthallengeBundlesEl) {
            ElementPtr namespaceGranthallengeBundleEl = namespaceGranthallengeBundlesEl->findFirstChildElement("namespaceGrantChallengeBundle");
            while (namespaceGranthallengeBundleEl) {
              ret->mBundles.push_back(namespaceGranthallengeBundleEl->clone()->toElement());
              namespaceGranthallengeBundleEl = namespaceGranthallengeBundleEl->findNextSiblingElement("namespaceGrantChallengeBundle");
            }
          }

          return ret;
        }
コード例 #3
0
        //---------------------------------------------------------------------
        LockboxIdentitiesUpdateResultPtr LockboxIdentitiesUpdateResult::create(
                                                                               ElementPtr root,
                                                                               IMessageSourcePtr messageSource
                                                                               )
        {
          LockboxIdentitiesUpdateResultPtr ret(new LockboxIdentitiesUpdateResult);
          IMessageHelper::fill(*ret, root, messageSource);

          ElementPtr identitiesEl = root->findFirstChildElement("identities");
          if (identitiesEl) {
            ElementPtr identityEl = identitiesEl->findFirstChildElement("identity");
            while (identityEl) {
              IdentityInfo info = MessageHelper::createIdentity(identityEl);
              if (info.hasData()) {
                ret->mIdentities.push_back(info);
              }
              identityEl = identityEl->findNextSiblingElement("identity");
            }
          }

          return ret;
        }
コード例 #4
0
        //---------------------------------------------------------------------
        RolodexContactsGetResultPtr RolodexContactsGetResult::create(
                                                                     ElementPtr rootEl,
                                                                     IMessageSourcePtr messageSource
                                                                     )
        {
          RolodexContactsGetResultPtr ret(new RolodexContactsGetResult);
          IMessageHelper::fill(*ret, rootEl, messageSource);

          ElementPtr identitiesEl = rootEl->findFirstChildElement("identities");
          if (identitiesEl) {
            ElementPtr identityEl = identitiesEl->findFirstChildElement("identity");
            while (identityEl) {
              IdentityInfo info = MessageHelper::createIdentity(identityEl);
              if (info.hasData()) {

#define OPENPEER_STACK_MESSAGE_ROLODEX_IMPROPER_FACEBOOK_URL "identity://facebook/"
#define OPENPEER_STACK_MESSAGE_ROLODEX_ROPER_FACEBOOK_URL "identity://facebook.com/"

#define HORRIBLE_HACK_TO_PREVENT_INVALID_FORMED_FACEBOOK_URIS 1
                if (info.mURI.hasData()) {
                  if (0 == info.mURI.compare(0, strlen(OPENPEER_STACK_MESSAGE_ROLODEX_IMPROPER_FACEBOOK_URL), OPENPEER_STACK_MESSAGE_ROLODEX_IMPROPER_FACEBOOK_URL)) {
                    ZS_LOG_WARNING(Detail, String("RolodexContactsGetResult [") + ret->mID + "] Fixed imporer facebook identity URI. Please contact rolodex admin to repair rolodex service. URI=" + info.mURI)
                    info.mURI = OPENPEER_STACK_MESSAGE_ROLODEX_ROPER_FACEBOOK_URL + info.mURI.substr(strlen(OPENPEER_STACK_MESSAGE_ROLODEX_IMPROPER_FACEBOOK_URL));
                  }
                }
#define HORRIBLE_HACK_TO_PREVENT_INVALID_FORMED_FACEBOOK_URIS 2

                ret->mIdentities.push_back(info);
              }
              identityEl = identityEl->findNextSiblingElement("identity");
            }
          }

          ret->mRolodexInfo = MessageHelper::createRolodex(rootEl->findFirstChildElement("rolodex"));

          return ret;
        }
コード例 #5
0
ファイル: ServicesGetResult.cpp プロジェクト: Yoko2012/op
        //---------------------------------------------------------------------
        ServicesGetResultPtr ServicesGetResult::create(
                                                       ElementPtr root,
                                                       IMessageSourcePtr messageSource
                                                       )
        {
          ServicesGetResultPtr ret(new ServicesGetResult);
          IMessageHelper::fill(*ret, root, messageSource);

          ElementPtr servicesEl = root->findFirstChildElement("services");
          if (!servicesEl) return ret;

          ElementPtr serviceEl = servicesEl->findFirstChildElement("service");
          while (serviceEl) {
            Service service = MessageHelper::createService(serviceEl);
            if (service.hasData()) {
              ret->mServices[service.mID] = service;
              ret->mServicesByType[service.mType] = service;
            }

            serviceEl = serviceEl->findNextSiblingElement("service");
          }

          return ret;
        }