PLCnext API Documentation 25.0.2.69
AppDomain.hpp
1
2//
3// Copyright Phoenix Contact GmbH & Co. KG
4//
6#pragma once
8
9// forwards
10namespace Arp::Base::Acf::Commons
11{
12class Application;
13} // end of namespace Arp::System::Acf::Commons
14
15namespace Arp { namespace Base { namespace Core
16{
17
25class ARP_EXPORT AppDomain
26{
27public: // Impl forward declaration
28 class Impl;
29 friend class Impl;
30
31public: // usings
32 using Instance = AppDomain;
33private: // usings
35 using ApplicationPtr = std::shared_ptr<Application>;
36
37private: // construction
38 explicit AppDomain(ApplicationPtr applicationPtr);
39
40public: // copy/move/assign/destruction
41 AppDomain(const AppDomain& arg) = delete;
42 AppDomain(AppDomain&& arg) = delete;
43 AppDomain& operator=(const AppDomain& arg) = delete;
44 AppDomain& operator=(AppDomain&& arg) = delete;
46
47public: // static singleton operations
48 static void CreateInstance(ApplicationPtr applicationPtr);
49 static bool IsCreated(void);
50 static void DisposeInstance(void);
51 static Instance& GetInstance(void);
52
53public: // setter/getter operations
54 Application& GetApplication(void);
55
56public: // deprecated operations
57 ARP_DEPRECATED("Use AppDomain::GetInstance() instead.")
58 static Instance& GetCurrent(void);
59
60 ARP_DEPRECATED("Not required any more.")
61 static void Assign(AppDomain& other);
62
63public: // internal operations
64 Impl& GetImpl(void);
65 const Impl& GetImpl(void)const;
66
67private: // Impl usings
68 using Pimpl = PimplPtr<Impl>;
69
70private: // Impl fields
71 Pimpl pimpl;
72};
73
74}}} // end of namespace Arp::Base::Core
75
76namespace Arp {
79}
This class provides some system functionality and infos.
Definition: Application.hpp:17
This central singleton class provides access to main functionality.
Definition: AppDomain.hpp:26
~AppDomain(void)
Default destructor.
Root namespace for the PLCnext API
class ARP_DEPRECATED("Use Arp::Enum<T> instead.") EnumStrings
Deprecated! The class implements an adapter for enums to define the string literals of the enum entri...
Definition: EnumStrings.hxx:38