nx_camera_sdk  1.0
Camera SDK
axis_camera_plugin.h
1 // Copyright 2018-present Network Optix, Inc. Licensed under MPL 2.0: www.mozilla.org/MPL/2.0/
2 
3 #pragma once
4 
5 #include <plugins/plugin_tools.h>
6 
7 #include <memory>
8 
9 #include <QtNetwork/QNetworkAccessManager>
10 #include <QtCore/QThread>
11 
12 #include <plugins/plugin_api.h>
13 
53 
56 :
58 {
59 public:
61  virtual ~AxisCameraPlugin();
62 
64 
67  virtual void* queryInterface( const nxpl::NX_GUID& interfaceID ) override;
69  virtual int addRef() const override;
71  virtual int releaseRef() const override;
72 
73  nxpt::CommonRefManager* refManager();
74  QNetworkAccessManager* networkAccessManager();
75 
76  static AxisCameraPlugin* instance();
77 
78 private:
79  nxpt::CommonRefManager m_refManager;
80  std::unique_ptr<AxisCameraDiscoveryManager> m_discoveryManager;
82  QThread m_networkEventLoopThread;
83  QNetworkAccessManager m_networkAccessManager;
84 };
Discovers AXIS cameras with MDNS search method (implements nxcip::CameraDiscoveryManager) ...
Definition: axis_discovery_manager.h:16
Base class for every interface, provided by plugin.
Definition: plugin_api.h:44
GUID of plugin interface.
Definition: plugin_api.h:26
Main plugin class. Hosts and initializes necessary internal data.
Definition: axis_camera_plugin.h:55
Definition: plugin_tools.h:68
virtual int addRef() const override
Implementaion of nxpl::PluginInterface::addRef.
Definition: axis_camera_plugin.cpp:67
virtual int releaseRef() const override
Implementaion of nxpl::PluginInterface::releaseRef.
Definition: axis_camera_plugin.cpp:72
virtual void * queryInterface(const nxpl::NX_GUID &interfaceID) override
Implementation of nxpl::PluginInterface::queryInterface.
Definition: axis_camera_plugin.cpp:51