You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@celix.apache.org by pn...@apache.org on 2015/11/05 16:12:40 UTC
celix git commit: CELIX-269: Refactoring of calculateNewState function
Repository: celix
Updated Branches:
refs/heads/develop 736af0e44 -> f119c346e
CELIX-269: Refactoring of calculateNewState function
Project: http://git-wip-us.apache.org/repos/asf/celix/repo
Commit: http://git-wip-us.apache.org/repos/asf/celix/commit/f119c346
Tree: http://git-wip-us.apache.org/repos/asf/celix/tree/f119c346
Diff: http://git-wip-us.apache.org/repos/asf/celix/diff/f119c346
Branch: refs/heads/develop
Commit: f119c346e5f41e7eb6a9660ce48aa1aa83a22db8
Parents: 736af0e
Author: Pepijn Noltes <pe...@gmail.com>
Authored: Thu Nov 5 16:11:39 2015 +0100
Committer: Pepijn Noltes <pe...@gmail.com>
Committed: Thu Nov 5 16:11:39 2015 +0100
----------------------------------------------------------------------
.../private/src/dm_component_impl.c | 71 ++++++++++----------
1 file changed, 34 insertions(+), 37 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/celix/blob/f119c346/dependency_manager/private/src/dm_component_impl.c
----------------------------------------------------------------------
diff --git a/dependency_manager/private/src/dm_component_impl.c b/dependency_manager/private/src/dm_component_impl.c
index 127d984..d08bc28 100644
--- a/dependency_manager/private/src/dm_component_impl.c
+++ b/dependency_manager/private/src/dm_component_impl.c
@@ -680,62 +680,59 @@ celix_status_t component_calculateNewState(dm_component_pt component, dm_compone
if (currentState == DM_CMP_STATE_INACTIVE) {
if (component->isStarted) {
*newState = DM_CMP_STATE_WAITING_FOR_REQUIRED;
- return status;
+ } else {
+ *newState = currentState;
}
- }
- if (currentState == DM_CMP_STATE_WAITING_FOR_REQUIRED) {
+ } else if (currentState == DM_CMP_STATE_WAITING_FOR_REQUIRED) {
if (!component->isStarted) {
*newState = DM_CMP_STATE_INACTIVE;
- return status;
- }
-
- bool available = false;
- component_allRequiredAvailable(component, &available);
+ } else {
+ bool available = false;
+ component_allRequiredAvailable(component, &available);
- if (available) {
- *newState = DM_CMP_STATE_INSTANTIATED_AND_WAITING_FOR_REQUIRED;
- return status;
+ if (available) {
+ *newState = DM_CMP_STATE_INSTANTIATED_AND_WAITING_FOR_REQUIRED;
+ } else {
+ *newState = currentState;
+ }
}
- }
- if (currentState == DM_CMP_STATE_INSTANTIATED_AND_WAITING_FOR_REQUIRED) {
- bool available = false;
- component_allRequiredAvailable(component, &available);
+ } else if (currentState == DM_CMP_STATE_INSTANTIATED_AND_WAITING_FOR_REQUIRED) {
+ if (!component->isStarted) {
+ *newState = DM_CMP_STATE_WAITING_FOR_REQUIRED;
+ } else {
+ bool available = false;
+ component_allRequiredAvailable(component, &available);
- if (component->isStarted && available) {
- bool instanceBoundAvailable = false;
- component_allInstanceBoundAvailable(component, &instanceBoundAvailable);
+ if (available) {
+ bool instanceBoundAvailable = false;
+ component_allInstanceBoundAvailable(component, &instanceBoundAvailable);
- if (instanceBoundAvailable) {
- *newState = DM_CMP_STATE_TRACKING_OPTIONAL;
- return status;
+ if (instanceBoundAvailable) {
+ *newState = DM_CMP_STATE_TRACKING_OPTIONAL;
+ } else {
+ *newState = currentState;
+ }
+ } else {
+ *newState = currentState;
}
-
- *newState = currentState;
- return status;
}
-
- *newState = component->isStarted ? DM_CMP_STATE_INSTANTIATED_AND_WAITING_FOR_REQUIRED :
- DM_CMP_STATE_WAITING_FOR_REQUIRED;
- return status;
- }
- if (currentState == DM_CMP_STATE_TRACKING_OPTIONAL) {
+ } else if (currentState == DM_CMP_STATE_TRACKING_OPTIONAL) {
bool instanceBoundAvailable = false;
bool available = false;
component_allInstanceBoundAvailable(component, &instanceBoundAvailable);
component_allRequiredAvailable(component, &available);
- if (component->isStarted && available && instanceBoundAvailable) {
+ if (component->isStarted && available && instanceBoundAvailable) {
*newState = currentState;
- return status;
+ } else {
+ *newState = DM_CMP_STATE_INSTANTIATED_AND_WAITING_FOR_REQUIRED;
}
-
- *newState = DM_CMP_STATE_INSTANTIATED_AND_WAITING_FOR_REQUIRED;
- return status;
+ } else {
+ //should not reach
+ status = CELIX_BUNDLE_EXCEPTION;
}
- *newState = currentState;
-
return status;
}