Repository: xbmc/xbmc
File: xbmc/FileItem.h (C/C++)

Code before:
  explicit CFileItem(const CVideoInfoTag& movie);
  explicit CFileItem(const std::shared_ptr<PVR::CPVREpgInfoTag>& tag);
  explicit CFileItem(const std::shared_ptr<PVR::CPVREpgSearchFilter>& filter);
  explicit CFileItem(const std::shared_ptr<PVR::CPVRChannelGroupMember>& channelGroupMember);
  explicit CFileItem(const std::shared_ptr<PVR::CPVRRecording>& record);
  explicit CFileItem(const std::shared_ptr<PVR::CPVRTimerInfoTag>& timer);
  explicit CFileItem(const CMediaSource& share);
  explicit CFileItem(std::shared_ptr<const ADDON::IAddon> addonInfo);
  explicit CFileItem(const EventPtr& eventLogEntry);

  ~CFileItem(void) override;
  CGUIListItem* Clone() const override { return new CFileItem(*this); }

  const CURL GetURL() const;
  void SetURL(const CURL& url);
  bool IsURL(const CURL& url) const;
  const std::string& GetPath() const { return m_strPath; }
  void SetPath(const std::string& path) { m_strPath = path; }
  bool IsPath(const std::string& path, bool ignoreURLOptions = false) const;

  const CURL GetDynURL() const;
  void SetDynURL(const CURL& url);
  const std::string &GetDynPath() const;
  void SetDynPath(const std::string &path);

  const std::string GetBlurayPath() const;

  /*! \brief reset class to it's default values as per construction.
   Free's all allocated memory.
   \sa Initialize
   */
  void Reset();
  CFileItem& operator=(const CFileItem& item);
  void Archive(CArchive& ar) override;
  void Serialize(CVariant& value) const override;
  void ToSortable(SortItem &sortable, Field field) const override;
  void ToSortable(SortItem &sortable, const Fields &fields) const;
  bool IsFileItem() const override { return true; }

  bool Exists(bool bUseCache = true) const;

  /*!
   \brief Check whether an item is an optical media folder or its parent.
    This will return the non-empty path to the playable entry point of the media
    one or two levels down (VIDEO_TS.IFO for DVDs or index.bdmv for BDs).
    The returned path will be empty if folder does not meet this criterion.
   \return non-empty string if item is optical media folder, empty otherwise.
   */
  std::string GetOpticalMediaPath() const;
  /*!
   \brief Check whether an item is a video item. Note that this returns true for

Review comment (suggestion):
```suggestion
  std::string GetBlurayPath() const;
```
Please don't return by const value, see http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rf-return-const

Code after:
  explicit CFileItem(const CVideoInfoTag& movie);
  explicit CFileItem(const std::shared_ptr<PVR::CPVREpgInfoTag>& tag);
  explicit CFileItem(const std::shared_ptr<PVR::CPVREpgSearchFilter>& filter);
  explicit CFileItem(const std::shared_ptr<PVR::CPVRChannelGroupMember>& channelGroupMember);
  explicit CFileItem(const std::shared_ptr<PVR::CPVRRecording>& record);
  explicit CFileItem(const std::shared_ptr<PVR::CPVRTimerInfoTag>& timer);
  explicit CFileItem(const CMediaSource& share);
  explicit CFileItem(std::shared_ptr<const ADDON::IAddon> addonInfo);
  explicit CFileItem(const EventPtr& eventLogEntry);

  ~CFileItem(void) override;
  CGUIListItem* Clone() const override { return new CFileItem(*this); }

  const CURL GetURL() const;
  void SetURL(const CURL& url);
  bool IsURL(const CURL& url) const;
  const std::string& GetPath() const { return m_strPath; }
  void SetPath(const std::string& path) { m_strPath = path; }
  bool IsPath(const std::string& path, bool ignoreURLOptions = false) const;

  const CURL GetDynURL() const;
  void SetDynURL(const CURL& url);
  const std::string &GetDynPath() const;
  void SetDynPath(const std::string &path);

  std::string GetBlurayPath() const;

  /*! \brief reset class to it's default values as per construction.
   Free's all allocated memory.
   \sa Initialize
   */
  void Reset();
  CFileItem& operator=(const CFileItem& item);
  void Archive(CArchive& ar) override;
  void Serialize(CVariant& value) const override;
  void ToSortable(SortItem &sortable, Field field) const override;
  void ToSortable(SortItem &sortable, const Fields &fields) const;
  bool IsFileItem() const override { return true; }

  bool Exists(bool bUseCache = true) const;

  /*!
   \brief Check whether an item is a picture item. Note that this returns true for
    anything with a picture info tag, so that may include eg. folders.
   \return true if item is picture, false otherwise.
   */
  bool IsPicture() const;
  bool IsLyrics() const;

  /*!
   \brief Check whether an item is an audio item. Note that this returns true for