osaf/services/saf/amf/amfd/comp.cc        |  24 ++++++++++++++----------
 osaf/services/saf/amf/amfd/include/comp.h |   1 +
 2 files changed, 15 insertions(+), 10 deletions(-)


Removes some code duplication.

diff --git a/osaf/services/saf/amf/amfd/comp.cc 
b/osaf/services/saf/amf/amfd/comp.cc
--- a/osaf/services/saf/amf/amfd/comp.cc
+++ b/osaf/services/saf/amf/amfd/comp.cc
@@ -247,9 +247,7 @@ static void comp_add_to_model(AVD_COMP *
        }
 
        /* Verify if the SUs preinstan value need to be changed */
-       if ((comp->comp_info.category == AVSV_COMP_TYPE_SA_AWARE) ||
-           (comp->comp_info.category == 
AVSV_COMP_TYPE_PROXIED_LOCAL_PRE_INSTANTIABLE) ||
-           (comp->comp_info.category == 
AVSV_COMP_TYPE_EXTERNAL_PRE_INSTANTIABLE)) {
+       if (comp_is_preinstantiable(comp) == true) {
                su->saAmfSUPreInstantiable = static_cast<SaBoolT>(true);
        }
 
@@ -1524,16 +1522,11 @@ static void comp_ccb_apply_delete_hdlr(s
        old_val = comp->su->saAmfSUPreInstantiable;
 
        /* Verify if the SUs preinstan value need to be changed */
-       if ((AVSV_COMP_TYPE_SA_AWARE == comp->comp_info.category) ||
-           (AVSV_COMP_TYPE_PROXIED_LOCAL_PRE_INSTANTIABLE == 
comp->comp_info.category) ||
-           (AVSV_COMP_TYPE_EXTERNAL_PRE_INSTANTIABLE == 
comp->comp_info.category)) {
+       if (comp_is_preinstantiable(comp) == true) {
                isPre = false;
                i_comp = comp->su->list_of_comp;
                while (i_comp) {
-                       if (((AVSV_COMP_TYPE_SA_AWARE == 
i_comp->comp_info.category) ||
-                            (AVSV_COMP_TYPE_PROXIED_LOCAL_PRE_INSTANTIABLE == 
i_comp->comp_info.category) ||
-                            (AVSV_COMP_TYPE_EXTERNAL_PRE_INSTANTIABLE == 
i_comp->comp_info.category))
-                           && (i_comp != comp)) {
+                       if ((comp_is_preinstantiable(i_comp) == true) && 
(i_comp != comp)) {
                                isPre = true;
                                break;
                        }
@@ -1639,3 +1632,14 @@ void avd_comp_constructor(void)
                comp_ccb_completed_cb, comp_ccb_apply_cb);
 }
 
+/**
+ * Returns true if the component is pre-instantiable
+ * @param comp
+ * @return
+ */
+bool comp_is_preinstantiable(const AVD_COMP *comp) {
+       AVSV_COMP_TYPE_VAL category = comp->comp_info.category;
+       return ((category == AVSV_COMP_TYPE_SA_AWARE) ||
+                       (category == 
AVSV_COMP_TYPE_PROXIED_LOCAL_PRE_INSTANTIABLE) ||
+                       (category == AVSV_COMP_TYPE_EXTERNAL_PRE_INSTANTIABLE));
+}
diff --git a/osaf/services/saf/amf/amfd/include/comp.h 
b/osaf/services/saf/amf/amfd/include/comp.h
--- a/osaf/services/saf/amf/amfd/include/comp.h
+++ b/osaf/services/saf/amf/amfd/include/comp.h
@@ -237,5 +237,6 @@ extern AVD_COMPCS_TYPE *avd_compcstype_g
 extern AVD_COMPCS_TYPE * avd_compcstype_find_match(const SaNameT *csi, const 
AVD_COMP *comp);
 extern void avd_compcstype_constructor(void);
 extern AVD_COMP *avd_comp_get_or_create(const SaNameT *dn);
+bool comp_is_preinstantiable(const AVD_COMP *comp);
 
 #endif

------------------------------------------------------------------------------
"Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.
Get unparalleled scalability from the best Selenium testing platform available
Simple to use. Nothing to install. Get started now for free."
http://p.sf.net/sfu/SauceLabs
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to