summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchristian mueller <christian.ei.mueller@bmw.de>2012-02-07 15:59:38 +0100
committerchristian mueller <christian.ei.mueller@bmw.de>2012-02-07 15:59:38 +0100
commitf00468f45b72e2693b79af30665f683967deb5a7 (patch)
treee60b273fd55e2c450b4321ebed2701dbd226a43a
parente6b739cc7e901ca8637bf3f5a72f5956cd764249 (diff)
downloadaudiomanager-f00468f45b72e2693b79af30665f683967deb5a7.tar.gz
* restructered document generation. Now only the functions of the daemon are generated
* sockethandler: take [0] instead of .front. added todo to make sockethandler faster * added test for local routing
-rw-r--r--AudioManagerDaemon/CMakeLists.txt16
-rw-r--r--AudioManagerDaemon/src/SocketHandler.cpp19
-rw-r--r--AudioManagerDaemon/test/routing/routingTest.cpp64
-rw-r--r--CHANGELOG11
-rw-r--r--CMakeLists.txt9
-rw-r--r--PluginCommandInterfaceDbus/CMakeLists.txt16
-rw-r--r--PluginControlInterface/CMakeLists.txt16
-rw-r--r--PluginRoutingInterfaceAsync/CMakeLists.txt16
-rw-r--r--PluginRoutingInterfaceDbus/CMakeLists.txt16
-rw-r--r--cmake/DoxyFile.in2
-rw-r--r--includes/config.h2
11 files changed, 133 insertions, 54 deletions
diff --git a/AudioManagerDaemon/CMakeLists.txt b/AudioManagerDaemon/CMakeLists.txt
index b10c8fb..e14f222 100644
--- a/AudioManagerDaemon/CMakeLists.txt
+++ b/AudioManagerDaemon/CMakeLists.txt
@@ -89,14 +89,14 @@ IF(WITH_TESTS)
add_subdirectory (test)
ENDIF(WITH_TESTS)
-IF(WITH_DOCUMENTATION)
- file(MAKE_DIRECTORY ${DOC_OUTPUT_PATH})
- configure_file(${DOXY_FILE} ${DOC_OUTPUT_PATH}/Doxyfile @ONLY IMMEDIATE)
- add_custom_target (Docs ALL
- COMMAND ${DOXYGEN_EXECUTABLE} ${DOC_OUTPUT_PATH}/Doxyfile WORKING_DIRECTORY ${DOC_OUTPUT_PATH}
- SOURCES ${PROJECT_BINARY_DIR} ${DOC_OUTPUT_PATH}/Doxyfile
- )
-ENDIF(WITH_DOCUMENTATION)
+#IF(WITH_DOCUMENTATION)
+# file(MAKE_DIRECTORY ${DOC_OUTPUT_PATH})
+# configure_file(${DOXY_FILE} ${DOC_OUTPUT_PATH}/Doxyfile @ONLY IMMEDIATE)
+# add_custom_target (Docs ALL
+# COMMAND ${DOXYGEN_EXECUTABLE} ${DOC_OUTPUT_PATH}/Doxyfile WORKING_DIRECTORY ${DOC_OUTPUT_PATH}
+# SOURCES ${PROJECT_BINARY_DIR} ${DOC_OUTPUT_PATH}/Doxyfile
+# )
+#ENDIF(WITH_DOCUMENTATION)
INSTALL(TARGETS AudioManager
RUNTIME
diff --git a/AudioManagerDaemon/src/SocketHandler.cpp b/AudioManagerDaemon/src/SocketHandler.cpp
index eb02db4..fa7fee4 100644
--- a/AudioManagerDaemon/src/SocketHandler.cpp
+++ b/AudioManagerDaemon/src/SocketHandler.cpp
@@ -35,6 +35,7 @@
#include "DLTWrapper.h"
//todo: implement time correction if timer was interrupted by call
+//todo: change hitlist to a list that holds all information, because entering and removing items will be cheaper than with std::vector
using namespace am;
@@ -85,7 +86,8 @@ void SocketHandler::start_listenting()
shPollPrepare *prep = NULL;
for (; prepIter != mListPoll.end(); ++prepIter)
{
- if ((prep = prepIter->prepareCB) != NULL) prep->Call(prepIter->handle, prepIter->userData);
+ if ((prep = prepIter->prepareCB) != NULL)
+ prep->Call(prepIter->handle, prepIter->userData);
}
if (mRecreatePollfds)
@@ -100,7 +102,7 @@ void SocketHandler::start_listenting()
#ifdef WITH_PPOLL
timespec buffertime;
- if ((pollStatus = ppoll(&mfdPollingArray.front(), mfdPollingArray.size(), insertTime(buffertime), &sigmask)) < 0)
+ if ((pollStatus = ppoll(&mfdPollingArray[0], mfdPollingArray.size(), insertTime(buffertime), &sigmask)) < 0)
{
if (errno == EINTR)
{
@@ -109,14 +111,14 @@ void SocketHandler::start_listenting()
}
else
{
- logError("SocketHandler::start_listenting ppoll returned with error",errno);
+ logError("SocketHandler::start_listenting ppoll returned with error", errno);
exit(0);
}
}
#else
//sigprocmask (SIG_SETMASK, &mask, &oldmask);
- if((pollStatus=poll(&mfdPollingArray.front(),mfdPollingArray.size(),timespec2ms(mTimeout)))<0)
+ if((pollStatus=poll(&mfdPollingArray[0],mfdPollingArray.size(),timespec2ms(mTimeout)))<0)
{
if(errno==EINTR)
@@ -144,7 +146,8 @@ void SocketHandler::start_listenting()
do
{
it = std::find_if(it, mfdPollingArray.end(), onlyFiredEvents);
- if (it != mfdPollingArray.end()) hitList.push_back(std::distance(mfdPollingArray.begin(), it++));
+ if (it != mfdPollingArray.end())
+ hitList.push_back(std::distance(mfdPollingArray.begin(), it++));
} while (it != mfdPollingArray.end());
@@ -153,7 +156,8 @@ void SocketHandler::start_listenting()
for (; hListIt != hitList.end(); ++hListIt)
{
shPollFired* fire = NULL;
- if ((fire = listPoll.at(*hListIt).firedCB) != NULL) fire->Call(mfdPollingArray.at(*hListIt), listPoll.at(*hListIt).handle, listPoll.at(*hListIt).userData);
+ if ((fire = listPoll.at(*hListIt).firedCB) != NULL)
+ fire->Call(mfdPollingArray.at(*hListIt), listPoll.at(*hListIt).handle, listPoll.at(*hListIt).userData);
}
//stage 2, lets ask around if some dispatching is necessary, if not, they are taken from the hitlist
@@ -217,7 +221,8 @@ void SocketHandler::stop_listening()
*/
am_Error_e SocketHandler::addFDPoll(const int fd, const int16_t event, shPollPrepare *prepare, shPollFired *fired, shPollCheck *check, shPollDispatch *dispatch, void* userData, sh_pollHandle_t& handle)
{
- if (!fdIsValid(fd)) return E_NON_EXISTENT;
+ if (!fdIsValid(fd))
+ return E_NON_EXISTENT;
sh_poll_s pollData;
pollData.pollfdValue.fd = fd;
diff --git a/AudioManagerDaemon/test/routing/routingTest.cpp b/AudioManagerDaemon/test/routing/routingTest.cpp
index 463bbfd..d160e1a 100644
--- a/AudioManagerDaemon/test/routing/routingTest.cpp
+++ b/AudioManagerDaemon/test/routing/routingTest.cpp
@@ -77,6 +77,70 @@ ACTION(returnConnectionFormat){
arg3=arg2;
}
+//test that checks just sinks and source in a domain
+TEST_F(routingTest,simpleRoute2withDomain)
+{
+ EXPECT_CALL(pMockInterface,cbNumberOfSourcesChanged()).Times(1);
+ EXPECT_CALL(pMockInterface,cbNumberOfSinksChanged()).Times(1);
+ EXPECT_CALL(pMockControlInterface,getConnectionFormatChoice(_,_,_,_)).WillRepeatedly(DoAll(returnConnectionFormat(), Return(E_OK)));
+
+ //initialize 2 domains
+ am_Domain_s domain1;
+ am_domainID_t domainID1;
+
+ domain1.domainID = 0;
+ domain1.name = "domain1";
+ domain1.busname = "domain1bus";
+ domain1.state = DS_CONTROLLED;
+
+ ASSERT_EQ(E_OK, pDatabaseHandler.enterDomainDB(domain1,domainID1));
+
+ am_Source_s source;
+ am_sourceID_t sourceID;
+
+ source.domainID = domainID1;
+ source.name = "source1";
+ source.sourceState = SS_ON;
+ source.sourceID = 0;
+ source.sourceClassID = 5;
+ source.listConnectionFormats.push_back(CF_ANALOG);
+
+ ASSERT_EQ(E_OK, pDatabaseHandler.enterSourceDB(source,sourceID));
+
+ am_Sink_s sink;
+ am_sinkID_t sinkID;
+
+ sink.domainID = domainID1;
+ sink.name = "sink1";
+ sink.sinkID = 0;
+ sink.sinkClassID = 5;
+ sink.muteState = MS_MUTED;
+ sink.listConnectionFormats.push_back(CF_ANALOG);
+
+ ASSERT_EQ(E_OK, pDatabaseHandler.enterSinkDB(sink,sinkID));
+
+ std::vector<am_Route_s> listRoutes;
+ std::vector<am_RoutingElement_s> listRoutingElements;
+ am_RoutingElement_s hopp1;
+
+ hopp1.sinkID = sinkID;
+ hopp1.sourceID = sourceID;
+ hopp1.domainID = domainID1;
+ hopp1.connectionFormat = source.listConnectionFormats[0];
+
+ listRoutingElements.push_back(hopp1);
+
+ am_Route_s compareRoute;
+ compareRoute.route = listRoutingElements;
+ compareRoute.sinkID = sinkID;
+ compareRoute.sourceID = sourceID;
+
+ ASSERT_EQ(E_OK, pRouter.getRoute(true,sourceID,sinkID,listRoutes));
+ ASSERT_EQ(1, listRoutes.size());
+ ASSERT_TRUE(pCF.compareRoute(compareRoute,listRoutes[0]));
+
+}
+
//test that checks just 2 domains, one sink one source with only one connection format each
TEST_F(routingTest,simpleRoute2DomainsOnlyFree)
{
diff --git a/CHANGELOG b/CHANGELOG
index fe9885d..ebd230c 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,14 @@
+commit e6b739cc7e901ca8637bf3f5a72f5956cd764249
+Author: christian mueller <christian.ei.mueller@bmw.de>
+
+ * added function to routing algorithm that takes care of the route in case source and sink are in the same domain...
+
+commit ba9e8ff6cfc7de6fadce914b356b6e4b398d5ab3
+Author: christian mueller <christian.ei.mueller@bmw.de>
+
+ * worked in feedback from Thomas Goering towards integration tests
+ * corrected startup sequence and modified the testplugin so that the startup sequences match
+
commit 74cf9b985164be8c28a3cd1b11076900792594f8
Author: christian mueller <christian.ei.mueller@bmw.de>
diff --git a/CMakeLists.txt b/CMakeLists.txt
index cafcf7a..e9db8e3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -114,11 +114,10 @@ pkg_check_modules(DLT REQUIRED automotive-dlt)
IF(WITH_DOCUMENTATION)
find_package(Doxygen)
- file(MAKE_DIRECTORY ${DOC_OUTPUT_PATH}/Interfaces)
- configure_file(${DOXY_FILE} ${DOC_OUTPUT_PATH}/Interfaces/Doxyfile @ONLY IMMEDIATE)
- add_custom_target (Interfaces ALL
- COMMAND ${DOXYGEN_EXECUTABLE} ${DOC_OUTPUT_PATH}/Interfaces/Doxyfile WORKING_DIRECTORY ${DOC_OUTPUT_PATH}/Interfaces
- SOURCES ${AUDIO_INCLUDES_FOLDER} ${DOC_OUTPUT_PATH}/Interfaces/Doxyfile
+ configure_file(${DOXY_FILE} ${DOC_OUTPUT_PATH}/Doxyfile @ONLY IMMEDIATE)
+ add_custom_target (AudioManangerDoku ALL
+ COMMAND ${DOXYGEN_EXECUTABLE} ${DOC_OUTPUT_PATH}/Doxyfile WORKING_DIRECTORY ${DOC_OUTPUT_PATH}
+ SOURCES ${AUDIO_INCLUDES_FOLDER} ${DOC_OUTPUT_PATH}/Doxyfile
)
ENDIF(WITH_DOCUMENTATION)
diff --git a/PluginCommandInterfaceDbus/CMakeLists.txt b/PluginCommandInterfaceDbus/CMakeLists.txt
index 372def5..841a740 100644
--- a/PluginCommandInterfaceDbus/CMakeLists.txt
+++ b/PluginCommandInterfaceDbus/CMakeLists.txt
@@ -41,14 +41,14 @@ IF(WITH_TESTS)
add_subdirectory (test)
ENDIF(WITH_TESTS)
-IF(WITH_DOCUMENTATION)
- file(MAKE_DIRECTORY ${DOC_OUTPUT_PATH})
- configure_file(${DOXY_FILE} ${DOC_OUTPUT_PATH}/Doxyfile @ONLY IMMEDIATE)
- add_custom_target (PluginInterfaceDBusDocs ALL
- COMMAND ${DOXYGEN_EXECUTABLE} ${DOC_OUTPUT_PATH}/Doxyfile WORKING_DIRECTORY ${DOC_OUTPUT_PATH}
- SOURCES ${PROJECT_BINARY_DIR} ${DOC_OUTPUT_PATH}/Doxyfile
- )
-ENDIF(WITH_DOCUMENTATION)
+#IF(WITH_DOCUMENTATION)
+# file(MAKE_DIRECTORY ${DOC_OUTPUT_PATH})
+# configure_file(${DOXY_FILE} ${DOC_OUTPUT_PATH}/Doxyfile @ONLY IMMEDIATE)
+# add_custom_target (PluginInterfaceDBusDocs ALL
+# COMMAND ${DOXYGEN_EXECUTABLE} ${DOC_OUTPUT_PATH}/Doxyfile WORKING_DIRECTORY ${DOC_OUTPUT_PATH}
+# SOURCES ${PROJECT_BINARY_DIR} ${DOC_OUTPUT_PATH}/Doxyfile
+# )
+#ENDIF(WITH_DOCUMENTATION)
INSTALL(TARGETS PluginCommandInterfaceDbus
DESTINATION "lib/${LIB_INSTALL_SUFFIX}/command"
diff --git a/PluginControlInterface/CMakeLists.txt b/PluginControlInterface/CMakeLists.txt
index d61bfdd..21612c5 100644
--- a/PluginControlInterface/CMakeLists.txt
+++ b/PluginControlInterface/CMakeLists.txt
@@ -35,14 +35,14 @@ IF(WITH_TESTS)
# add_subdirectory (test)
ENDIF(WITH_TESTS)
-IF(WITH_DOCUMENTATION)
- file(MAKE_DIRECTORY ${DOC_OUTPUT_PATH})
- configure_file(${DOXY_FILE} ${DOC_OUTPUT_PATH}/Doxyfile @ONLY IMMEDIATE)
- add_custom_target (PluginControlInterfaceDBusDocs ALL
- COMMAND ${DOXYGEN_EXECUTABLE} ${DOC_OUTPUT_PATH}/Doxyfile WORKING_DIRECTORY ${DOC_OUTPUT_PATH}
- SOURCES ${PROJECT_BINARY_DIR} ${DOC_OUTPUT_PATH}/Doxyfile
- )
-ENDIF(WITH_DOCUMENTATION)
+#IF(WITH_DOCUMENTATION)
+# file(MAKE_DIRECTORY ${DOC_OUTPUT_PATH})
+# configure_file(${DOXY_FILE} ${DOC_OUTPUT_PATH}/Doxyfile @ONLY IMMEDIATE)
+# add_custom_target (PluginControlInterfaceDBusDocs ALL
+# COMMAND ${DOXYGEN_EXECUTABLE} ${DOC_OUTPUT_PATH}/Doxyfile WORKING_DIRECTORY ${DOC_OUTPUT_PATH}
+# SOURCES ${PROJECT_BINARY_DIR} ${DOC_OUTPUT_PATH}/Doxyfile
+# )
+#ENDIF(WITH_DOCUMENTATION)
INSTALL(TARGETS PluginControlInterface
DESTINATION "lib/${LIB_INSTALL_SUFFIX}/control"
diff --git a/PluginRoutingInterfaceAsync/CMakeLists.txt b/PluginRoutingInterfaceAsync/CMakeLists.txt
index ebee65f..ac4f336 100644
--- a/PluginRoutingInterfaceAsync/CMakeLists.txt
+++ b/PluginRoutingInterfaceAsync/CMakeLists.txt
@@ -65,14 +65,14 @@ IF(WITH_TESTS)
add_subdirectory (test)
ENDIF(WITH_TESTS)
-IF(WITH_DOCUMENTATION)
- file(MAKE_DIRECTORY ${DOC_OUTPUT_PATH})
- configure_file(${DOXY_FILE} ${DOC_OUTPUT_PATH}/Doxyfile @ONLY IMMEDIATE)
- add_custom_target (PluginRoutingInterfaceAsyncDocs ALL
- COMMAND ${DOXYGEN_EXECUTABLE} ${DOC_OUTPUT_PATH}/Doxyfile WORKING_DIRECTORY ${DOC_OUTPUT_PATH}
- SOURCES ${PROJECT_BINARY_DIR} ${DOC_OUTPUT_PATH}/Doxyfile
- )
-ENDIF(WITH_DOCUMENTATION)
+#IF(WITH_DOCUMENTATION)
+# file(MAKE_DIRECTORY ${DOC_OUTPUT_PATH})
+# configure_file(${DOXY_FILE} ${DOC_OUTPUT_PATH}/Doxyfile @ONLY IMMEDIATE)
+# add_custom_target (PluginRoutingInterfaceAsyncDocs ALL
+# COMMAND ${DOXYGEN_EXECUTABLE} ${DOC_OUTPUT_PATH}/Doxyfile WORKING_DIRECTORY ${DOC_OUTPUT_PATH}
+# SOURCES ${PROJECT_BINARY_DIR} ${DOC_OUTPUT_PATH}/Doxyfile
+# )
+#ENDIF(WITH_DOCUMENTATION)
INSTALL(TARGETS PluginRoutingInterfaceAsync
diff --git a/PluginRoutingInterfaceDbus/CMakeLists.txt b/PluginRoutingInterfaceDbus/CMakeLists.txt
index 77a44db..4269e21 100644
--- a/PluginRoutingInterfaceDbus/CMakeLists.txt
+++ b/PluginRoutingInterfaceDbus/CMakeLists.txt
@@ -41,14 +41,14 @@ IF(WITH_TESTS)
# add_subdirectory (test)
ENDIF(WITH_TESTS)
-IF(WITH_DOCUMENTATION)
- file(MAKE_DIRECTORY ${DOC_OUTPUT_PATH})
- configure_file(${DOXY_FILE} ${DOC_OUTPUT_PATH}/Doxyfile @ONLY IMMEDIATE)
- add_custom_target (PluginRoutingInterfaceDBusDocs ALL
- COMMAND ${DOXYGEN_EXECUTABLE} ${DOC_OUTPUT_PATH}/Doxyfile WORKING_DIRECTORY ${DOC_OUTPUT_PATH}
- SOURCES ${PROJECT_BINARY_DIR} ${DOC_OUTPUT_PATH}/Doxyfile
- )
-ENDIF(WITH_DOCUMENTATION)
+#IF(WITH_DOCUMENTATION)
+# file(MAKE_DIRECTORY ${DOC_OUTPUT_PATH})
+# configure_file(${DOXY_FILE} ${DOC_OUTPUT_PATH}/Doxyfile @ONLY IMMEDIATE)
+# add_custom_target (PluginRoutingInterfaceDBusDocs ALL
+# COMMAND ${DOXYGEN_EXECUTABLE} ${DOC_OUTPUT_PATH}/Doxyfile WORKING_DIRECTORY ${DOC_OUTPUT_PATH}
+# SOURCES ${PROJECT_BINARY_DIR} ${DOC_OUTPUT_PATH}/Doxyfile
+# )
+#ENDIF(WITH_DOCUMENTATION)
INSTALL(TARGETS PluginRoutingInterfaceDbus
DESTINATION "lib/${LIB_INSTALL_SUFFIX}/routing"
diff --git a/cmake/DoxyFile.in b/cmake/DoxyFile.in
index bb1ef58..a885866 100644
--- a/cmake/DoxyFile.in
+++ b/cmake/DoxyFile.in
@@ -663,7 +663,7 @@ EXCLUDE_SYMLINKS = NO
# against the file with absolute path, so to exclude all test directories
# for example use the pattern */test/*
-EXCLUDE_PATTERNS =
+EXCLUDE_PATTERNS = */test/* */Plugin*/*
# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
# (namespaces, classes, functions, etc.) that should be excluded from the
diff --git a/includes/config.h b/includes/config.h
index 3e1542a..c9ed5b3 100644
--- a/includes/config.h
+++ b/includes/config.h
@@ -1,7 +1,7 @@
#ifndef _CONFIG_H
#define _CONFIG_H
-#define DAEMONVERSION "ver-0.0.1-24-gba9e8ff"
+#define DAEMONVERSION "ver-0.0.9-1-ge6b739c"
#define WITH_DBUS_WRAPPER
#define WITH_SOCKETHANDLER_LOOP