hueplusplus  1.0.0
Public Member Functions | Protected Member Functions | List of all members
hueplusplus::SearchableResourceList< Resource > Class Template Reference

Handles a ResourceList of physical devices which can be searched for. More...

#include <hueplusplus/ResourceList.h>

+ Inheritance diagram for hueplusplus::SearchableResourceList< Resource >:
+ Collaboration diagram for hueplusplus::SearchableResourceList< Resource >:

Public Member Functions

void search (const std::vector< std::string > &deviceIds={})
 Start search for new devices. More...
 
NewDeviceList getNewDevices () const
 Get devices found in last search. More...
 
- Public Member Functions inherited from hueplusplus::ResourceList< Resource, int >
 ResourceList (std::shared_ptr< APICache > baseCache, const std::string &cacheEntry, std::chrono::steady_clock::duration refreshDuration, bool sharedState=false, const std::function< Resource(IdType, const nlohmann::json &, const std::shared_ptr< APICache > &)> &factory=nullptr)
 Construct ResourceList using a base cache and optional factory function. More...
 
 ResourceList (const HueCommandAPI &commands, const std::string &path, std::chrono::steady_clock::duration refreshDuration, const std::function< Resource(IdType, const nlohmann::json &, const std::shared_ptr< APICache > &)> &factory=nullptr)
 Construct ResourceList with a separate cache and optional factory function. More...
 
 ResourceList (const ResourceList &)=delete
 Deleted copy constructor. More...
 
ResourceListoperator= (const ResourceList &)=delete
 Deleted copy assignment. More...
 
void refresh ()
 Refreshes internal state now. More...
 
void setRefreshDuration (std::chrono::steady_clock::duration refreshDuration)
 Sets custom refresh interval for this list and all resources created. More...
 
std::vector< Resource > getAll ()
 Get all resources that exist. More...
 
Resource get (const IdType &id)
 Get resource specified by id. More...
 
bool exists (const IdType &id)
 Checks whether resource with id exists. More...
 
bool exists (const IdType &id) const
 Checks whether resource with id exists. More...
 
bool remove (const IdType &id)
 Removes the resource. More...
 

Protected Member Functions

 SearchableResourceList (SearchableResourceList &&)=default
 Protected defaulted move constructor. More...
 
SearchableResourceListoperator= (SearchableResourceList &&)=default
 Protected defaulted move assignment. More...
 
- Protected Member Functions inherited from hueplusplus::ResourceList< Resource, int >
 ResourceList (ResourceList &&)=default
 Protected defaulted move constructor. More...
 
ResourceListoperator= (ResourceList &&)=default
 Protected defaulted move assignment. More...
 
Resource construct (const IdType &id, const nlohmann::json &state)
 Constructs resource using factory or constructor, if available. More...
 

Additional Inherited Members

- Public Types inherited from hueplusplus::ResourceList< Resource, int >
using ResourceType = Resource
 
using IdType = int
 
- Static Protected Member Functions inherited from hueplusplus::ResourceList< Resource, int >
static IdType maybeStoi (const std::string &key)
 Calls std::stoi if IdType is int. More...
 
static std::string maybeToString (const IdType &id)
 Calls std::to_string if IdType is int. More...
 
- Protected Attributes inherited from hueplusplus::ResourceList< Resource, int >
std::shared_ptr< APICachestateCache
 
std::function< Resource(IdType, const nlohmann::json &, const std::shared_ptr< APICache > &)> factory
 
std::string path
 
bool sharedState
 

Detailed Description

template<typename Resource>
class hueplusplus::SearchableResourceList< Resource >

Handles a ResourceList of physical devices which can be searched for.

Template Parameters
ResourceResource type that is in the list

Constructor & Destructor Documentation

◆ SearchableResourceList()

template<typename Resource>
hueplusplus::SearchableResourceList< Resource >::SearchableResourceList ( SearchableResourceList< Resource > &&  )
protecteddefault

Protected defaulted move constructor.

Member Function Documentation

◆ getNewDevices()

template<typename Resource>
NewDeviceList hueplusplus::SearchableResourceList< Resource >::getNewDevices ( ) const
inline

Get devices found in last search.

◆ operator=()

template<typename Resource>
SearchableResourceList& hueplusplus::SearchableResourceList< Resource >::operator= ( SearchableResourceList< Resource > &&  )
protecteddefault

Protected defaulted move assignment.

◆ search()

template<typename Resource>
void hueplusplus::SearchableResourceList< Resource >::search ( const std::vector< std::string > &  deviceIds = {})
inline

Start search for new devices.

Parameters
deviceIdsSerial numbers of the devices to search for (max. 10)

Takes more than 40s. If many devices were found a second search command might be necessary.


The documentation for this class was generated from the following file: