EthercatMaster.cpp

Go to the documentation of this file.
00001 /****************************************************************
00002  *
00003  * Copyright (c) 2011
00004  * All rights reserved.
00005  *
00006  * Hochschule Bonn-Rhein-Sieg
00007  * University of Applied Sciences
00008  * Computer Science Department
00009  *
00010  * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00011  *
00012  * Author:
00013  * Jan Paulus, Nico Hochgeschwender, Michael Reckhaus, Azamat Shakhimardanov
00014  * Supervised by:
00015  * Gerhard K. Kraetzschmar
00016  *
00017  * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00018  *
00019  * This sofware is published under a dual-license: GNU Lesser General Public 
00020  * License LGPL 2.1 and BSD license. The dual-license implies that users of this
00021  * code may choose which terms they prefer.
00022  *
00023  * +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
00024  *
00025  * Redistribution and use in source and binary forms, with or without
00026  * modification, are permitted provided that the following conditions are met:
00027  *
00028  *     * Redistributions of source code must retain the above copyright
00029  *       notice, this list of conditions and the following disclaimer.
00030  *     * Redistributions in binary form must reproduce the above copyright
00031  *       notice, this list of conditions and the following disclaimer in the
00032  *       documentation and/or other materials provided with the distribution.
00033  *     * Neither the name of the Hochschule Bonn-Rhein-Sieg nor the names of its
00034  *       contributors may be used to endorse or promote products derived from
00035  *       this software without specific prior written permission.
00036  *
00037  * This program is free software: you can redistribute it and/or modify
00038  * it under the terms of the GNU Lesser General Public License LGPL as
00039  * published by the Free Software Foundation, either version 2.1 of the
00040  * License, or (at your option) any later version or the BSD license.
00041  *
00042  * This program is distributed in the hope that it will be useful,
00043  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00044  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00045  * GNU Lesser General Public License LGPL and the BSD license for more details.
00046  *
00047  * You should have received a copy of the GNU Lesser General Public
00048  * License LGPL and BSD license along with this program.
00049  *
00050  ****************************************************************/
00051 #include "youbot/EthercatMaster.hpp"
00052 
00053 namespace youbot {
00054 
00055 EthercatMasterInterface* EthercatMaster::instance = 0;
00056 ///creates a instance of the singleton EthercatMaster if there is none and returns a reference to it
00057 ///@param configFile configuration file name incl. the extension
00058 ///@param configFilePath the path where the configuration is located with a / at the end
00059 ///@param ethercatMasterWithThread set it to false if you want to deactivate the communication thread
00060 EthercatMasterInterface& EthercatMaster::getInstance(const std::string configFile, const std::string configFilePath, const bool ethercatMasterWithThread)
00061 {
00062   // Bouml preserved body begin 000E61F1
00063     if (instance == 0) {
00064       if(ethercatMasterWithThread){
00065         instance = new EthercatMasterWithThread(configFile, configFilePath);
00066       }else{
00067         instance = new EthercatMasterWithoutThread(configFile, configFilePath);
00068       }
00069     }
00070     return *instance;
00071   // Bouml preserved body end 000E61F1
00072 }
00073 
00074 /// destroy the singleton instance by calling the destructor
00075 void EthercatMaster::destroy()
00076 {
00077   // Bouml preserved body begin 000E6271
00078     if(instance != 0){
00079       delete instance;
00080       instance = 0;
00081     }
00082   // Bouml preserved body end 000E6271
00083 }
00084 
00085 
00086 } // namespace youbot
Generated by  doxygen 1.6.3