text: ///////////////////////////////////////////////////////////////////////////////
  // BOSSA
  //
  // Copyright (c) 2011-2018, ShumaTech
  // All rights reserved.
  // 
  // Redistribution and use in source and binary forms, with or without
  // modification, are permitted provided that the following conditions are met:
  //     * Redistributions of source code must retain the above copyright
  //       notice, this list of conditions and the following disclaimer.
  //     * Redistributions in binary form must reproduce the above copyright
  //       notice, this list of conditions and the following disclaimer in the
  //       documentation and/or other materials provided with the distribution.
  //     * Neither the name of the <organization> nor the
  //       names of its contributors may be used to endorse or promote products
  //       derived from this software without specific prior written permission.
  // 
  // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
  // ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  // DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
  // DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
  // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  ///////////////////////////////////////////////////////////////////////////////
  #ifndef _BSDPORTFACTORY_H
  #define _BSDPORTFACTORY_H
  
  class BSDPortFactory;
  #include "PortFactory.h"
  
  #include <sys/types.h>
  #include <dirent.h>
  
  #include <string>
  
  
  class BSDPortFactory : public PortFactoryBase
  {
  public:
      BSDPortFactory();
      virtual ~BSDPortFactory();
  
      virtual std::string begin();
      virtual std::string end();
      virtual std::string next();
      virtual std::string def();
  
      virtual SerialPort::Ptr create(const std::string& name);
      virtual SerialPort::Ptr create(const std::string& name, bool isUsb);
  
  private:
      std::string _empty;
      DIR* _dir;
  };
  
  #endif // _BSDPORTFACTORY_H
  