From f2b9be20dc60b5086d2e1c8218669f0cb3d0fe0f Mon Sep 17 00:00:00 2001 From: "jyong2.kim" Date: Wed, 8 Jul 2015 14:09:59 +0900 Subject: [PATCH] Modify exception class and include guards of broker. add exception for subscribe presence. fix bug about Initialize of DevicePresence. Change-Id: I4588e213e7b8a56e06a280225d00ce4583909a37 Signed-off-by: jyong2.kim Reviewed-on: https://gerrit.iotivity.org/gerrit/1572 Tested-by: jenkins-iotivity Reviewed-by: Uze Choi --- .../modules/resourceBroker/include/BrokerTypes.h | 6 +++--- .../resourceBroker/include/DeviceAssociation.h | 6 +++--- .../resourceBroker/include/DevicePresence.h | 6 +++--- .../resourceBroker/include/ResourceBroker.h | 17 ++++++++++++----- .../resourceBroker/include/ResourcePresence.h | 6 +++--- .../modules/resourceBroker/src/DevicePresence.cpp | 9 ++++++--- .../modules/resourceBroker/src/ResourceBroker.cpp | 22 ++++++++++++++-------- .../resourceBroker/src/ResourcePresence.cpp | 10 ++++++++-- 8 files changed, 52 insertions(+), 30 deletions(-) diff --git a/service/resource-manipulation/modules/resourceBroker/include/BrokerTypes.h b/service/resource-manipulation/modules/resourceBroker/include/BrokerTypes.h index 2ff1303..6ff3cea 100755 --- a/service/resource-manipulation/modules/resourceBroker/include/BrokerTypes.h +++ b/service/resource-manipulation/modules/resourceBroker/include/BrokerTypes.h @@ -18,8 +18,8 @@ // //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -#ifndef BROKERTYPES_H_ -#define BROKERTYPES_H_ +#ifndef RB_BROKERTYPES_H_ +#define RB_BROKERTYPES_H_ #include #include @@ -113,4 +113,4 @@ namespace OIC } // namespace Service } // namespace OIC -#endif // BROKERTYPES_H_ +#endif // RB_BROKERTYPES_H_ diff --git a/service/resource-manipulation/modules/resourceBroker/include/DeviceAssociation.h b/service/resource-manipulation/modules/resourceBroker/include/DeviceAssociation.h index b173c36..703bab1 100755 --- a/service/resource-manipulation/modules/resourceBroker/include/DeviceAssociation.h +++ b/service/resource-manipulation/modules/resourceBroker/include/DeviceAssociation.h @@ -18,8 +18,8 @@ // //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -#ifndef DEVICEASSOCIATION_H_ -#define DEVICEASSOCIATION_H_ +#ifndef RB_DEVICEASSOCIATION_H_ +#define RB_DEVICEASSOCIATION_H_ #include #include @@ -54,4 +54,4 @@ namespace OIC } // namespace Service } // namespace OIC -#endif /* DEVICEASSOCIATION_H_ */ +#endif /* RB_DEVICEASSOCIATION_H_ */ diff --git a/service/resource-manipulation/modules/resourceBroker/include/DevicePresence.h b/service/resource-manipulation/modules/resourceBroker/include/DevicePresence.h index a215cc2..6a48357 100755 --- a/service/resource-manipulation/modules/resourceBroker/include/DevicePresence.h +++ b/service/resource-manipulation/modules/resourceBroker/include/DevicePresence.h @@ -18,8 +18,8 @@ // //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -#ifndef DEVICEPRESENCE_H_ -#define DEVICEPRESENCE_H_ +#ifndef RB_DEVICEPRESENCE_H_ +#define RB_DEVICEPRESENCE_H_ #include #include @@ -64,4 +64,4 @@ namespace OIC } // namespace Service } // namespace OIC -#endif /* DEVICEPRESENCE_H_ */ +#endif /* RB_DEVICEPRESENCE_H_ */ diff --git a/service/resource-manipulation/modules/resourceBroker/include/ResourceBroker.h b/service/resource-manipulation/modules/resourceBroker/include/ResourceBroker.h index 20992e8..e05673c 100755 --- a/service/resource-manipulation/modules/resourceBroker/include/ResourceBroker.h +++ b/service/resource-manipulation/modules/resourceBroker/include/ResourceBroker.h @@ -18,8 +18,8 @@ // //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -#ifndef RESOURCEBROKER_H_ -#define RESOURCEBROKER_H_ +#ifndef RB_RESOURCEBROKER_H_ +#define RB_RESOURCEBROKER_H_ #include #include @@ -38,10 +38,17 @@ namespace OIC class ResourceBroker { public: - class InvalidParameter: public PrimitiveException + class InvalidParameterException: public PrimitiveException { public: - InvalidParameter(std::string&& what) : PrimitiveException{ std::move(what) } {} + InvalidParameterException(std::string&& what) + : PrimitiveException{ std::move(what) } {} + }; + class FailedSubscribePresenceException: public PlatformException + { + public: + FailedSubscribePresenceException(OCStackResult reason) + : PlatformException{reason} {} }; static ResourceBroker * getInstance(); @@ -73,4 +80,4 @@ namespace OIC } // namespace Service } // namespace OIC -#endif /* RESOURCEBROKER_H_ */ +#endif /* RB_RESOURCEBROKER_H_ */ diff --git a/service/resource-manipulation/modules/resourceBroker/include/ResourcePresence.h b/service/resource-manipulation/modules/resourceBroker/include/ResourcePresence.h index f3e21be..d12416f 100755 --- a/service/resource-manipulation/modules/resourceBroker/include/ResourcePresence.h +++ b/service/resource-manipulation/modules/resourceBroker/include/ResourcePresence.h @@ -18,8 +18,8 @@ // //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= -#ifndef RESOURCEPRESENCE_H_ -#define RESOURCEPRESENCE_H_ +#ifndef RB_RESOURCEPRESENCE_H_ +#define RB_RESOURCEPRESENCE_H_ #include #include @@ -87,5 +87,5 @@ namespace OIC } // namespace Service } // namespace OIC -#endif /* RESOURCEPRESENCE_H_ */ +#endif /* RB_RESOURCEPRESENCE_H_ */ diff --git a/service/resource-manipulation/modules/resourceBroker/src/DevicePresence.cpp b/service/resource-manipulation/modules/resourceBroker/src/DevicePresence.cpp index 0f29102..2f45bbc 100755 --- a/service/resource-manipulation/modules/resourceBroker/src/DevicePresence.cpp +++ b/service/resource-manipulation/modules/resourceBroker/src/DevicePresence.cpp @@ -43,16 +43,19 @@ namespace OIC { OC_LOG_V(DEBUG, BROKER_TAG, "%s",pResource->getHost().c_str()); + address = pResource->getHost(); + try { presenceSubscriber = PresenceSubscriber(pResource->getHost(), BROKER_TRANSPORT, pSubscribeRequestCB); OC_LOG_V(DEBUG, BROKER_TAG, "subscribe Presence"); - } catch(PrimitiveException & e) + } catch(PlatformException &e) { - OC_LOG_V(DEBUG, BROKER_TAG, "exception in subscribe Presence %s",e.what()); - throw PrimitiveException(e); + OC_LOG_V(DEBUG, BROKER_TAG, + "exception in subscribe Presence %s", e.getReason().c_str()); + throw; } //TODO generate Timer(if(!isTimer)) } diff --git a/service/resource-manipulation/modules/resourceBroker/src/ResourceBroker.cpp b/service/resource-manipulation/modules/resourceBroker/src/ResourceBroker.cpp index 6bf7b83..b936044 100755 --- a/service/resource-manipulation/modules/resourceBroker/src/ResourceBroker.cpp +++ b/service/resource-manipulation/modules/resourceBroker/src/ResourceBroker.cpp @@ -65,7 +65,7 @@ namespace OIC { if(pResource == nullptr || cb == nullptr || cb == NULL) { - throw InvalidParameter("[hostResource] input PrimitiveResource is Invalid"); + throw InvalidParameterException("[hostResource] input PrimitiveResource is Invalid"); } BrokerID retID = generateBrokerID(); @@ -76,8 +76,14 @@ namespace OIC OC_LOG_V(DEBUG, BROKER_TAG, "Not found any Handled Resource."); OC_LOG_V(DEBUG, BROKER_TAG, "Create New Resource Presence Handler."); - presenceItem.reset(new ResourcePresence()); - presenceItem->initializeResourcePresence(pResource); + try + { + presenceItem.reset(new ResourcePresence()); + presenceItem->initializeResourcePresence(pResource); + }catch(PlatformException &e) + { + throw FailedSubscribePresenceException(e.getReasonCode()); + } if(s_presenceList != nullptr) { s_presenceList->push_back(presenceItem); @@ -98,14 +104,14 @@ namespace OIC { // input parameter is wrong. // hostResource never return value 0; - throw InvalidParameter("[cancelHostResource] input BrokerID is Invalid"); + throw InvalidParameterException("[cancelHostResource] input BrokerID is Invalid"); } BrokerIDMap::iterator it = s_brokerIDMap->find(brokerId); if(it == s_brokerIDMap->end()) { // not found requested brokerId in BrokerMap; - throw InvalidParameter("[cancelHostResource] input BrokerID is unknown ID"); + throw InvalidParameterException("[cancelHostResource] input BrokerID is unknown ID"); } else { @@ -127,7 +133,7 @@ namespace OIC { if(brokerId == 0) { - throw InvalidParameter("[getResourceState] input BrokerID is Invalid"); + throw InvalidParameterException("[getResourceState] input BrokerID is Invalid"); } BROKER_STATE retState = BROKER_STATE::NONE; @@ -136,7 +142,7 @@ namespace OIC if(it == s_brokerIDMap->end()) { // not found requested brokerId in BrokerMap; - throw InvalidParameter("[getResourceState] input BrokerID is unknown ID"); + throw InvalidParameterException("[getResourceState] input BrokerID is unknown ID"); } else { @@ -151,7 +157,7 @@ namespace OIC { if(pResource == nullptr) { - throw InvalidParameter("[getResourceState] input PrimitiveResource is Invalid"); + throw InvalidParameterException("[getResourceState] input PrimitiveResource is Invalid"); } BROKER_STATE retState = BROKER_STATE::NONE; diff --git a/service/resource-manipulation/modules/resourceBroker/src/ResourcePresence.cpp b/service/resource-manipulation/modules/resourceBroker/src/ResourcePresence.cpp index eccb990..62abd77 100755 --- a/service/resource-manipulation/modules/resourceBroker/src/ResourcePresence.cpp +++ b/service/resource-manipulation/modules/resourceBroker/src/ResourcePresence.cpp @@ -142,8 +142,14 @@ namespace OIC if(foundDevice == nullptr) { - foundDevice.reset(new DevicePresence()); - foundDevice->initializeDevicePresence(primitiveResource); + try + { + foundDevice.reset(new DevicePresence()); + foundDevice->initializeDevicePresence(primitiveResource); + }catch(...) + { + throw; + } DeviceAssociation::getInstance()->addDevice(foundDevice); } foundDevice->addPresenceResource(this); -- 2.7.4