├── .gitattributes ├── .github └── ISSUE_TEMPLATE │ └── issue-template.md ├── .gitignore ├── CHANGELOG.md ├── LICENSE.md ├── OpcDaAeHdaClient.sln ├── README.md ├── VERSION ├── Win32 └── DemoServer │ ├── Aggregate Calculations.xls │ ├── Aggregate Data 1.csv │ ├── Aggregate Data 2.csv │ ├── OpcDaAeServer.exe │ ├── OpcHdaServer.config.xml │ ├── OpcHdaServer.exe │ ├── Ramp [15 min UTC].csv │ ├── Ramp [15 min].csv │ ├── Raw Data 1.csv │ ├── Readme OPC DAAE Sample Server.pdf │ ├── Sine [15 min UTC].csv │ ├── Sine [15 min].csv │ ├── Square [15 min UTC].csv │ └── Square [15 min].csv ├── WorkshopClientSamples.sln ├── doc └── client │ ├── Doxyfile │ ├── customdoxygen.css │ ├── deployment.txt │ ├── doxygen.sty │ ├── faq.txt │ ├── footer.html │ ├── header.html │ ├── header.png │ ├── images │ └── ClientCPPDevelopment.png │ ├── index.hhp.txt │ ├── index.txt │ ├── introduction.txt │ ├── latex │ ├── Makefile │ ├── doxygen.sty │ ├── make.bat │ └── refman.tex │ ├── license.txt │ ├── starting_with_ae.txt │ ├── starting_with_da.txt │ ├── starting_with_hda.txt │ └── trouble.txt ├── examples ├── c++ │ ├── AeSample │ │ ├── AeSample.sln │ │ ├── AeSample.vcxproj │ │ ├── AeSample.vcxproj.filters │ │ ├── ClassicAeSample.cpp │ │ ├── ClassicAeSample.h │ │ ├── ClassicAeSample.rc │ │ ├── ClassicAeSampleDoc.cpp │ │ ├── ClassicAeSampleDoc.h │ │ ├── ClassicAeSampleView.cpp │ │ ├── ClassicAeSampleView.h │ │ ├── MainFrm.cpp │ │ ├── MainFrm.h │ │ ├── SelectServerDlg.cpp │ │ ├── SelectServerDlg.h │ │ ├── matchpattern.cpp │ │ ├── matchpattern.h │ │ ├── res │ │ │ ├── ClassicAeSample.ico │ │ │ ├── ClassicAeSample.manifest │ │ │ ├── ClassicAeSample.rc2 │ │ │ └── Toolbar.bmp │ │ ├── resource.h │ │ ├── stdafx.cpp │ │ └── stdafx.h │ ├── DaBrowserConsole │ │ ├── DaBrowserConsole.cpp │ │ ├── DaBrowserConsole.sln │ │ ├── DaBrowserConsole.vcxproj │ │ └── DaBrowserConsole.vcxproj.filters │ ├── DaConsole │ │ ├── DaConsole.cpp │ │ ├── DaConsole.vcxproj │ │ ├── DaConsole.vcxproj.filters │ │ └── DaConsole.vs2017.vcxproj.user │ └── HdaConsole │ │ ├── HdaConsole.cpp │ │ ├── HdaConsole.sln │ │ ├── HdaConsole.vcxproj │ │ └── HdaConsole.vcxproj.filters └── doc │ └── client │ ├── CMakeLists.txt │ ├── DaBrowserConsole.cpp │ ├── DaConsole.cpp │ └── HdaConsole.cpp ├── include ├── Base │ ├── ASCIIEncoding.h │ ├── Alignment.h │ ├── Array.h │ ├── Ascii.h │ ├── AtomicCounter.h │ ├── AutoPtr.h │ ├── Base.h │ ├── Buffer.h │ ├── Bugcheck.h │ ├── ByteOrder.h │ ├── Config.h │ ├── DateTime.h │ ├── DateTimeFormat.h │ ├── DateTimeFormatter.h │ ├── DateTimeParser.h │ ├── Debugger.h │ ├── Exception.h │ ├── FPEnvironment.h │ ├── FPEnvironment_C99.h │ ├── FPEnvironment_DEC.h │ ├── FPEnvironment_DUMMY.h │ ├── FPEnvironment_SUN.h │ ├── FPEnvironment_WIN32.h │ ├── Handles.h │ ├── Hash.h │ ├── HashMap.h │ ├── HashSet.h │ ├── HashStatistic.h │ ├── Latin1Encoding.h │ ├── Latin2Encoding.h │ ├── Latin9Encoding.h │ ├── LinearHashTable.h │ ├── LocalDateTime.h │ ├── Logger.h │ ├── MemoryStream.h │ ├── Mutex.h │ ├── Mutex_POSIX.h │ ├── Mutex_VX.h │ ├── Mutex_WIN32.h │ ├── Mutex_WINCE.h │ ├── NumberFormatter.h │ ├── NumericString.h │ ├── Platform.h │ ├── Platform_POSIX.h │ ├── Platform_VMS.h │ ├── Platform_VX.h │ ├── Platform_WIN32.h │ ├── RWLock.h │ ├── RWLock_Android.h │ ├── RWLock_POSIX.h │ ├── RWLock_VX.h │ ├── RWLock_WIN32.h │ ├── RWLock_WINCE.h │ ├── ScopedLock.h │ ├── ScopedUnlock.h │ ├── ServerStates.h │ ├── SharedPtr.h │ ├── SingletonHolder.h │ ├── Status.h │ ├── StatusCodes.h │ ├── StreamUtil.h │ ├── String.h │ ├── TextConverter.h │ ├── TextEncoding.h │ ├── TextIterator.h │ ├── Timespan.h │ ├── Timestamp.h │ ├── Timezone.h │ ├── Types.h │ ├── UTF16Encoding.h │ ├── UTF32Encoding.h │ ├── UTF8Encoding.h │ ├── UTFString.h │ ├── UnWindows.h │ ├── UnicodeConverter.h │ ├── Windows1250Encoding.h │ ├── Windows1251Encoding.h │ └── Windows1252Encoding.h ├── Classic │ ├── classicopc.h │ ├── classicopc_i.c │ ├── inc32 │ │ ├── OpcBatchDef.h │ │ ├── OpcBatchError.h │ │ ├── OpcBatchProps.h │ │ ├── OpcCmd.h │ │ ├── OpcCmd.idl │ │ ├── OpcCmdError.h │ │ ├── OpcCmdPs.dll │ │ ├── OpcCmd_i.c │ │ ├── OpcDx.h │ │ ├── OpcDx.idl │ │ ├── OpcDxError.h │ │ ├── OpcDxPs.dll │ │ ├── OpcDx_i.c │ │ ├── OpcEnum.h │ │ ├── OpcEnum.idl │ │ ├── OpcEnum_i.c │ │ ├── OpcErrSec.h │ │ ├── OpcHda_Error.h │ │ ├── opcSec.h │ │ ├── opcSec.idl │ │ ├── opcSec_i.c │ │ ├── opc_ae.h │ │ ├── opc_ae.idl │ │ ├── opc_ae_i.c │ │ ├── opc_aeps.dll │ │ ├── opcae_er.h │ │ ├── opcaedef.h │ │ ├── opcauto10a_i.c │ │ ├── opcbc.h │ │ ├── opcbc.idl │ │ ├── opcbc_i.c │ │ ├── opcbc_ps.dll │ │ ├── opccomn.h │ │ ├── opccomn.idl │ │ ├── opccomn_i.c │ │ ├── opccomn_ps.dll │ │ ├── opcda.h │ │ ├── opcda.idl │ │ ├── opcda_i.c │ │ ├── opcerror.h │ │ ├── opchda.h │ │ ├── opchda.idl │ │ ├── opchda_i.c │ │ ├── opchda_ps.dll │ │ ├── opcproxy.dll │ │ └── opcsec_ps.dll │ └── inc64 │ │ ├── OpcCmd.h │ │ ├── OpcCmd.idl │ │ ├── OpcCmd_i.c │ │ ├── OpcDx.h │ │ ├── OpcDx.idl │ │ ├── OpcDx_i.c │ │ ├── OpcEnum.h │ │ ├── OpcEnum_i.c │ │ ├── OpcSec.h │ │ ├── OpcSec_i.c │ │ ├── opcSec.idl │ │ ├── opc_ae.h │ │ ├── opc_ae.idl │ │ ├── opc_ae_i.c │ │ ├── opcaedef.h │ │ ├── opcbc.h │ │ ├── opcbc.idl │ │ ├── opcbc_i.c │ │ ├── opccomn.h │ │ ├── opccomn.idl │ │ ├── opccomn_i.c │ │ ├── opcda.h │ │ ├── opcda.idl │ │ ├── opcda_i.c │ │ ├── opcerror.h │ │ ├── opchda.h │ │ ├── opchda.idl │ │ └── opchda_i.c └── DaAeHdaClient │ ├── Ae │ ├── AeEvent.h │ ├── AeServer.h │ ├── AeServerStatus.h │ └── AeSubscription.h │ ├── ClientBase.h │ ├── Da │ ├── DaBrowser.h │ ├── DaCommon.h │ ├── DaGroup.h │ ├── DaItem.h │ ├── DaItemProperty.h │ ├── DaServer.h │ └── DaServerStatus.h │ ├── Hda │ ├── HdaAggregate.h │ ├── HdaAggregateId.h │ ├── HdaItem.h │ ├── HdaItemAttribute.h │ ├── HdaItemAttributeId.h │ ├── HdaServer.h │ └── HdaServerStatus.h │ ├── OpcBase.h │ └── OpcClientSdk.h ├── licenses ├── GPLv3License.txt ├── MITLicense.txt └── Source_Code_License_Agreement.pdf └── src ├── CMakeLists.txt └── Technosoftware ├── Base ├── ASCIIEncoding.cpp ├── Ascii.cpp ├── AtomicCounter.cpp ├── Bugcheck.cpp ├── ByteOrder.cpp ├── DateTime.cpp ├── DateTimeFormat.cpp ├── DateTimeFormatter.cpp ├── DateTimeParser.cpp ├── Debugger.cpp ├── Exception.cpp ├── FPEnvironment.cpp ├── FPEnvironment_C99.cpp ├── FPEnvironment_DEC.cpp ├── FPEnvironment_DUMMY.cpp ├── FPEnvironment_SUN.cpp ├── FPEnvironment_WIN32.cpp ├── Hash.cpp ├── HashStatistic.cpp ├── Latin1Encoding.cpp ├── Latin2Encoding.cpp ├── Latin9Encoding.cpp ├── LocalDateTime.cpp ├── Logger.cpp ├── MemoryStream.cpp ├── Mutex.cpp ├── Mutex_POSIX.cpp ├── Mutex_VX.cpp ├── Mutex_WIN32.cpp ├── Mutex_WINCE.cpp ├── NumberFormatter.cpp ├── NumericString.cpp ├── RWLock.cpp ├── RWLock_Android.cpp ├── RWLock_POSIX.cpp ├── RWLock_VX.cpp ├── RWLock_WIN32.cpp ├── RWLock_WINCE.cpp ├── ServerStates.cpp ├── Status.cpp ├── StatusCodes.cpp ├── String.cpp ├── TextConverter.cpp ├── TextEncoding.cpp ├── TextIterator.cpp ├── Timespan.cpp ├── Timestamp.cpp ├── Timezone.cpp ├── Timezone_UNIX.cpp ├── Timezone_VX.cpp ├── Timezone_WIN32.cpp ├── Timezone_WINCE.cpp ├── UTF16Encoding.cpp ├── UTF32Encoding.cpp ├── UTF8Encoding.cpp ├── UnicodeConverter.cpp ├── Windows1250Encoding.cpp ├── Windows1251Encoding.cpp ├── Windows1252Encoding.cpp ├── bignum-dtoa.cc ├── bignum-dtoa.h ├── bignum.cc ├── bignum.h ├── cached-powers.cc ├── cached-powers.h ├── diy-fp.cc ├── diy-fp.h ├── double-conversion.cc ├── double-conversion.h ├── fast-dtoa.cc ├── fast-dtoa.h ├── fixed-dtoa.cc ├── fixed-dtoa.h ├── ieee.h ├── strtod.cc ├── strtod.h └── utils.h ├── CMakeLists.txt ├── DaAeHdaClient ├── Ae │ ├── AeEvent.cpp │ ├── AeEventSinkImpl.cpp │ ├── AeEventSinkImpl.h │ ├── AeServer.cpp │ ├── AeServerImpl.h │ ├── AeServerStatus.cpp │ ├── AeSubscription.cpp │ └── AeSubscriptionImpl.h ├── CMakeLists.txt ├── Da │ ├── DaBrowser.cpp │ ├── DaBrowserImpl.h │ ├── DaCommon.cpp │ ├── DaGroup.cpp │ ├── DaGroupImpl.h │ ├── DaItem.cpp │ ├── DaItemProperty.cpp │ ├── DaServer.cpp │ ├── DaServerImpl.h │ ├── DaServerStatus.cpp │ ├── MatchPattern.cpp │ └── MatchPattern.h ├── Hda │ ├── HdaAggregate.cpp │ ├── HdaItemAttribute.cpp │ ├── HdaServer.cpp │ ├── HdaServerImpl.h │ └── HdaServerStatus.cpp ├── OpcAccess.cpp ├── OpcBase.cpp ├── OpcDaAeHdaClient.vcxproj ├── OpcDaAeHdaClient.vcxproj.filters ├── OpcDefs.h ├── OpcInternal.h ├── OpcUti.cpp ├── OpcUti.h ├── OpcUtils.cpp ├── OpcUtils.h ├── Version.rc ├── dllmain.cpp ├── pch.cpp ├── pch.h ├── resource.h ├── system │ ├── ClientSdk.h │ ├── ClientSdk_i.c │ ├── OpcAccess.h │ ├── OpcErrors.h │ ├── inc32 │ │ ├── OpcBatchDef.h │ │ ├── OpcBatchError.h │ │ ├── OpcBatchProps.h │ │ ├── OpcCmd.h │ │ ├── OpcCmd.idl │ │ ├── OpcCmdError.h │ │ ├── OpcCmdPs.dll │ │ ├── OpcCmd_i.c │ │ ├── OpcDx.h │ │ ├── OpcDx.idl │ │ ├── OpcDxError.h │ │ ├── OpcDxPs.dll │ │ ├── OpcDx_i.c │ │ ├── OpcEnum.h │ │ ├── OpcEnum.idl │ │ ├── OpcEnum_i.c │ │ ├── OpcErrSec.h │ │ ├── OpcHda_Error.h │ │ ├── opcSec.h │ │ ├── opcSec.idl │ │ ├── opcSec_i.c │ │ ├── opc_ae.h │ │ ├── opc_ae.idl │ │ ├── opc_ae_i.c │ │ ├── opc_aeps.dll │ │ ├── opcae_er.h │ │ ├── opcaedef.h │ │ ├── opcbc.h │ │ ├── opcbc.idl │ │ ├── opcbc_i.c │ │ ├── opcbc_ps.dll │ │ ├── opccomn.h │ │ ├── opccomn.idl │ │ ├── opccomn_i.c │ │ ├── opccomn_ps.dll │ │ ├── opcda.h │ │ ├── opcda.idl │ │ ├── opcda_i.c │ │ ├── opcerror.h │ │ ├── opchda.h │ │ ├── opchda.idl │ │ ├── opchda_i.c │ │ ├── opchda_ps.dll │ │ ├── opcproxy.dll │ │ └── opcsec_ps.dll │ └── inc64 │ │ ├── OpcCmd.h │ │ ├── OpcCmd.idl │ │ ├── OpcCmd_i.c │ │ ├── OpcDx.h │ │ ├── OpcDx.idl │ │ ├── OpcDx_i.c │ │ ├── OpcSec.h │ │ ├── OpcSec_i.c │ │ ├── opcSec.idl │ │ ├── opc_ae.h │ │ ├── opc_ae.idl │ │ ├── opc_ae_i.c │ │ ├── opcbc.h │ │ ├── opcbc.idl │ │ ├── opcbc_i.c │ │ ├── opccomn.h │ │ ├── opccomn.idl │ │ ├── opccomn_i.c │ │ ├── opcda.h │ │ ├── opcda.idl │ │ ├── opcda_i.c │ │ ├── opchda.h │ │ ├── opchda.idl │ │ └── opchda_i.c └── targetver.h └── targetver.h /.gitattributes: -------------------------------------------------------------------------------- 1 | # Default behavior: if Git thinks a file is text (as opposed to binary), it 2 | # will normalize line endings to LF in the repository, but convert to your 3 | # platform's native line endings on checkout (e.g., CRLF for Windows). 4 | * text=auto 5 | 6 | # Explicitly declare text files you want to always be normalized and converted 7 | # to native line endings on checkout. E.g., 8 | # *.txt text 9 | 10 | # Declare files that will always have CRLF line endings on checkout. E.g., 11 | #*.sln text eol=crlf 12 | 13 | # Declare files that will always have LF line endings on checkout. E.g., 14 | *.sh text eol=lf 15 | *.json text eol=lf 16 | 17 | # Denote all files that should not have line endings normalized, should not be 18 | # merged, and should not show in a textual diff. 19 | *.docm binary 20 | *.docx binary 21 | *.ico binary 22 | *.lib binary 23 | *.png binary 24 | *.pptx binary 25 | *.snk binary 26 | *.vsdx binary 27 | *.xps binary 28 | 29 | # OPC UA 30 | *.uanodes binary 31 | 32 | bin/* linguist-vendored 33 | build/* linguist-vendored 34 | examples/* linguist-vendored=false 35 | documentation/* linguist-documentation 36 | license/* linguist-documentation 37 | Workshop/* linguist-documentation 38 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/issue-template.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Issue Template 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Type of Issue** 11 | [ ] Issue [ ] Enhancement [ ] Compliance [ ] Question [ ] Help wanted 12 | 13 | # Expected Behavior 14 | 15 | Please describe the issue you are experience as detailed and consised as possible. 16 | 17 | ## Steps to Reproduce 18 | 19 | Please provide detailed steps for reproducing the issue. 20 | 21 | 1. step 1 22 | 2. step 2 23 | 3. you get it... 24 | 25 | **Expected behavior** 26 | A clear and concise description of what you expected to happen. 27 | 28 | **Screenshots** 29 | If applicable, add screenshots to help explain your issue. 30 | 31 | **Log output** 32 | If applicable, add log output to help explain your issue. 33 | 34 | **Code snippets** 35 | If applicable, add a code snippet to help explain your issue. 36 | 37 | **Environment (please complete the following information):** 38 | - OS: [e.g. Windows 10, Ubuntu, macOS] 39 | - Development environment: [e.g. Visual Studio 2019 16.7.2] 40 | - Runtime: [e.g. .NET 5.0, .NET Core 3.1] 41 | - NuGet Package Release Version [e.g. 1.2.0.8] 42 | - Component: [e.g. Technosoftware.DaAeHdaSolution.DaAeHdaClient] 43 | - Server: [e.g. OpcDaAeServer.exe] 44 | - Client: [e.g. DaConsole] 45 | 46 | **Additional context** 47 | Add any other context about the problem here. 48 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | # SOFTWARE LICENSE AGREEMENT 2 | 3 | TECHNOSOFTWARE (THE "LICENSOR") IS WILLING TO LICENSE THE ACCOMPANYING SOFTWARE AND ASSOCIATED DOCUMENTATION INCLUDING AUTHORIZED COPIES OF EACH (THE "SOFTWARE") TO YOU ("LICENSEE") ONLY ON THE CONDITION THAT LICENSEE ACCEPTS ALL OF THE TERMS IN THIS AGREEMENT. 4 | 5 | The licensed Software is protected by copyright laws and international copyright treaties, as well as other intellectual property laws and treaties. The licensed Software is licensed, not sold. Technosoftware shall own all right, title and interest including the intellectual property rights in and to the information on bug fixes or error corrections relating to the licensed Software that are submitted by Licensee to Technosoftware as well as any intellectual property rights to the correction of any errors, if any. 6 | 7 | PLEASE READ THE TERMS CAREFULLY BEFORE INSTALLING THE SOFTWARE. BY INSTALLING THE SOFTWARE, LICENSEE ACKNOWLEDGES THAT LICENSEE HAS READ AND UNDERSTANDS THIS AGREEMENT AND AGREES TO BE BOUND BY ITS TERMS AND CONDITIONS. THE EFFECTIVE DATE OF THIS AGREEMENT SHALL BE THE DATE UPON THE SOFTWARE WAS FIRST DELIVERED TO YOU OR FIRST DOWNLOADED BY YOU. 8 | 9 | IF LICENSEE DOES NOT ACCEPT THESE LICENSE TERMS, THEN TECHNOSOFTWARE DOES NOT GRANT ANY LICENSE TO THE SOFTWARE, AND LICENSEE MUST NOT DOWNLOAD OR INSTALL THE SOFTWARE. 10 | 11 | TECHNOSOFTWARE provides different licenses depending on the component and on the ownership of a purchased license of the user of the sources. A single ZIP file or a single repository can contain multiple components where the sources have different license models. The valid license is in the header of each source file. 12 | 13 | Following are basic rules on how TECHNOSOFTWARE licenses the different components: 14 | 15 | 1. OPC DA/AE/HDA and OPC UA core components follow a dual-license model: 16 | - Owner of a purchased license: [SCLA 1.0](licenses/Source_Code_License_Agreement.pdf) 17 | 18 | enables Owner of a purchased license to deploy their applications using the core component sources without being required to disclose the application code. 19 | 20 | - Users that are not Owner of a purchased license: [GPL 3.0](licenses/GPLv3License.txt) 21 | 22 | Based on the GPL 3.0 license terms these users must disclose their application code when using the core component sources. 23 | 24 | 2. Samples and Utilities: 25 | 26 | - All samples and most of the utilities are provided under the [MIT](licenses/MITLicense.txt) license for everyone. 27 | -------------------------------------------------------------------------------- /OpcDaAeHdaClient.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.31229.75 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OpcDaAeHdaClient", "src\Technosoftware\DaAeHdaClient\OpcDaAeHdaClient.vcxproj", "{2D0245FD-9B23-4213-92F9-5FA772AFEFDB}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|x64 = Debug|x64 11 | Debug|x86 = Debug|x86 12 | Release|x64 = Release|x64 13 | Release|x86 = Release|x86 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {2D0245FD-9B23-4213-92F9-5FA772AFEFDB}.Debug|x64.ActiveCfg = Debug|x64 17 | {2D0245FD-9B23-4213-92F9-5FA772AFEFDB}.Debug|x64.Build.0 = Debug|x64 18 | {2D0245FD-9B23-4213-92F9-5FA772AFEFDB}.Debug|x86.ActiveCfg = Debug|Win32 19 | {2D0245FD-9B23-4213-92F9-5FA772AFEFDB}.Debug|x86.Build.0 = Debug|Win32 20 | {2D0245FD-9B23-4213-92F9-5FA772AFEFDB}.Release|x64.ActiveCfg = Release|x64 21 | {2D0245FD-9B23-4213-92F9-5FA772AFEFDB}.Release|x64.Build.0 = Release|x64 22 | {2D0245FD-9B23-4213-92F9-5FA772AFEFDB}.Release|x86.ActiveCfg = Release|Win32 23 | {2D0245FD-9B23-4213-92F9-5FA772AFEFDB}.Release|x86.Build.0 = Release|Win32 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | GlobalSection(ExtensibilityGlobals) = postSolution 29 | SolutionGuid = {45699D22-E29A-42D4-B136-0A0AAE8E6915} 30 | EndGlobalSection 31 | EndGlobal 32 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Technosoftware GmbH OPC DA/AE/HDA Client Solution C++ 2 | 3 | ## OPC DA/AE/HDA Client Solution C++ 4 | The OPC DA/AE/HDA Client Solution C++ offers a fast and easy access to the OPC Client technology. Develop OPC DA/AE/HDA compliant Clients with C++ for Windows. 5 | Under Windows clients using the OPC DA/AE/HDA Client Solution C++ supports OPC DA, OPC AE and OPC HDA. 6 | 7 | The Technosoftware::Base namespace is mainly based on the POCO C++ Foundation Library 8 | (Copyright (c) 2005-2007, Applied Informatics Software Engineering GmbH and Contributors). 9 | Please see the license information for it at https://pocoproject.org/about.html#license 10 | 11 | ## Online Help 12 | 13 | We provide an online help for the current version: [OPC DA/AE/HDA Client Solution C++ Online Help](https://technosoftware.com/help/OPCDaAeHdaClientSolutionCpp/v20/) 14 | 15 | ## Getting started 16 | 17 | First you need to build the solution [OpcDaAeHdaClient.sln](/OpcDaAeHdaClient.sln) to get the needed libraries and DLLs build. 18 | 19 | Afterwards you find the examples in the solution [WorkshopClientSamples.sln](/WorkshopClientSamples.sln). 20 | 21 | ### Licenses 22 | TECHNOSOFTWARE provides different licenses depending on the component and on the ownership of a purchased license of the user of the sources. A single ZIP file or a single repository can contain multiple components where the sources have different license models. The valid license is in the header of each source file. 23 | 24 | See [LICENSE.md](LICENSE.md) for more details. 25 | 26 | ### Get Perpetual License without Support 27 | 28 | The OPC DA/AE/HDA Client Solution C++ One-time fee for lifetime SCLA 1.0 license is available at 29 | 30 | * [OPC DA/AE/HDA Client Solution C++](https://technosoftware.com/product/opc-daaehda-client-solution-cpp/) 31 | 32 | ### Get Support for the Solution under GPL 3.0 or SCLA 1.0 33 | 34 | Support for the Solution under the GPL 3.0 or SCLA 1.0 is available [here](https://github.com/technosoftware-gmbh/opcdaaehda-client-solution-cpp/issues). 35 | 36 | ### Contribution 37 | 38 | We strongly encourage community participation and contribution to this project. First, please fork the repository and commit your changes there. Once happy with your changes you can generate a 'pull request'. 39 | 40 | You must agree to the contributor license agreement before we can accept your changes. The CLA and "I AGREE" button is automatically displayed when you perform the pull request. You can preview CLA [here](https://cla-assistant.io/technosoftware-gmbh/opcdaaehda-client-solution-cpp). 41 | -------------------------------------------------------------------------------- /VERSION: -------------------------------------------------------------------------------- 1 | 2.0.0-preview (13-MAY-2021) 2 | -------------------------------------------------------------------------------- /Win32/DemoServer/Aggregate Calculations.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/Win32/DemoServer/Aggregate Calculations.xls -------------------------------------------------------------------------------- /Win32/DemoServer/Aggregate Data 1.csv: -------------------------------------------------------------------------------- 1 | VAL, 2016-01-01T00:00:00Z,0,0x00200000 2 | VAL, 2016-01-01T00:00:10Z,10,0x000400C0 3 | VAL, 2016-01-01T00:00:20Z,20,0x000400C0 4 | VAL, 2016-01-01T00:00:30Z,30,0x000400C0 5 | VAL, 2016-01-01T00:00:40Z,40,0x00040000 6 | VAL, 2016-01-01T00:00:50Z,50,0x000400C0 7 | VAL, 2016-01-01T00:01:00Z,60,0x000400C0 8 | VAL, 2016-01-01T00:01:10Z,70,0x00040040 9 | VAL, 2016-01-01T00:01:20Z,80,0x000400C0 10 | VAL, 2016-01-01T00:01:30Z,90,0x000400C0 11 | ANN,2016-01-01T00:00:00Z,First archive entry; Point Created.,User,2016-02-01 00:00:00 12 | ANN,2016-01-01T00:00:40Z,Scan failed; Bad data entered.,User,2016-02-01 00:00:00 13 | ANN,2016-01-01T00:01:10Z,Value is flagged as questionable.,User,2016-02-01 00:00:00 14 | -------------------------------------------------------------------------------- /Win32/DemoServer/Aggregate Data 2.csv: -------------------------------------------------------------------------------- 1 | VAL, 2016-01-01T00:00:00Z,0, 0x00200000 2 | VAL, 2016-01-01T00:00:02Z,10,0x000400C0 3 | VAL, 2016-01-01T00:00:25Z,20,0x000400C0 4 | VAL, 2016-01-01T00:00:28Z,25,0x000400C0 5 | VAL, 2016-01-01T00:00:39Z,30,0x000400C0 6 | VAL, 2016-01-01T00:00:42Z,40,0x00040000 7 | VAL, 2016-01-01T00:00:48Z,40,0x000400C0 8 | VAL, 2016-01-01T00:00:52Z,50,0x000400C0 9 | VAL, 2016-01-01T00:01:12Z,60,0x000400C0 10 | VAL, 2016-01-01T00:01:17Z,70,0x00040040 11 | VAL, 2016-01-01T00:01:23Z,70,0x000400C0 12 | VAL, 2016-01-01T00:01:26Z,80,0x000400C0 13 | VAL, 2016-01-01T00:01:30Z,90,0x000400C0 14 | ANN,2016-01-01T00:00:00Z,First archive entry; Point Created.,User,2016-02-01 00:00:00 15 | ANN,2016-01-01T00:00:42Z,Scan failed; Bad data entered.,User,2016-02-01 00:00:00 16 | ANN,2016-01-01T00:00:48Z,Received good quality value.,User,2016-02-01 00:00:00 17 | ANN,2016-01-01T00:01:17Z,Value is flagged as questionable.,User,2016-02-01 00:00:00 18 | -------------------------------------------------------------------------------- /Win32/DemoServer/OpcDaAeServer.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/Win32/DemoServer/OpcDaAeServer.exe -------------------------------------------------------------------------------- /Win32/DemoServer/OpcHdaServer.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/Win32/DemoServer/OpcHdaServer.exe -------------------------------------------------------------------------------- /Win32/DemoServer/Raw Data 1.csv: -------------------------------------------------------------------------------- 1 | VAL,2016-01-01T00:00:00Z,0,0x000400C0 2 | VAL,2016-01-01T00:00:02Z,2,0x000400C0 3 | VAL,2016-01-01T00:00:03Z,3,0x000400C0 4 | VAL,2016-01-01T00:00:05Z,5,0x000400C0 5 | VAL,2016-01-01T00:00:06Z,6,0x000400C0 6 | ANN,2016-01-01T00:00:00Z,Point created.,User,2016-02-01 00:00:00 7 | ANN,2016-01-01T00:00:06Z,End of data.,User,2016-02-01 00:00:00 8 | 9 | 10 | -------------------------------------------------------------------------------- /Win32/DemoServer/Readme OPC DAAE Sample Server.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/Win32/DemoServer/Readme OPC DAAE Sample Server.pdf -------------------------------------------------------------------------------- /doc/client/customdoxygen.css: -------------------------------------------------------------------------------- 1 | /* Custom CSS for doxygen 1.8.3.1 */ 2 | 3 | body, table, div, p, dl { 4 | font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; 5 | font-size: 13px; 6 | line-height: 1.3; 7 | } 8 | 9 | /* @group Heading Levels */ 10 | 11 | h1 { 12 | font-size: 150%; 13 | } 14 | 15 | h2 { 16 | font-size: 120%; 17 | } 18 | 19 | h2.groupheader { 20 | color: #003333; 21 | } 22 | 23 | h3 { 24 | font-size: 100%; 25 | } 26 | 27 | h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { 28 | text-shadow: 0 0 15px #003333; 29 | } 30 | 31 | a { 32 | color: #003333; 33 | font-weight: normal; 34 | text-decoration: none; 35 | } 36 | 37 | .contents a:visited { 38 | color: #758f57; 39 | } 40 | 41 | a.code, a.code:visited { 42 | color: #758f57; 43 | } 44 | 45 | a.codeRef, a.codeRef:visited { 46 | color: #758f57; 47 | } 48 | 49 | div.line.glow { 50 | background-color: #003333; 51 | box-shadow: 0 0 10px #003333; 52 | } 53 | 54 | .memberdecls td.glow, .fieldtable tr.glow { 55 | background-color: #003333; 56 | box-shadow: 0 0 15px #003333; 57 | } 58 | 59 | .memitem.glow { 60 | box-shadow: 0 0 15px #003333; 61 | } 62 | 63 | div.directory { 64 | border-top: 1px solid #B0D8A8; 65 | border-bottom: 1px solid #B0D8A8; 66 | } 67 | 68 | #projectname 69 | { 70 | color: white; 71 | } 72 | 73 | #titlearea 74 | { 75 | border-bottom: 1px solid #63795e; 76 | background-repeat:repeat-x; 77 | background-color: #63795e; 78 | } 79 | 80 | /* class for headings inside tables (features and profiles) */ 81 | 82 | td.intableheading { 83 | font-weight: bold; 84 | /* text-align: center; */ 85 | font-size: 110%; 86 | background-color:#B8D9A8; 87 | } 88 | /* indication of support level for features */ 89 | 90 | .legend { 91 | line-height: 1.8; 92 | } 93 | -------------------------------------------------------------------------------- /doc/client/deployment.txt: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2018 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * OPC DA/AE/HDA Client Ssolution C++ Manual. 7 | * 8 | * The source code in this file is covered under a dual-license scenario: 9 | * - Owner of a purchased license: SCLA 1.0 10 | * - GPL V3: everybody else 11 | * 12 | * SCLA license terms accompanied with this source code. 13 | * See SCLA 1.0: https://technosoftware.com/license/Source_Code_License_Agreement.pdf 14 | * 15 | * GNU General Public License as published by the Free Software Foundation; 16 | * version 3 of the License are accompanied with this source code. 17 | * See https://technosoftware.com/license/GPLv3License.txt 18 | * 19 | * This source code is distributed in the hope that it will be useful, but 20 | * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 21 | * or FITNESS FOR A PARTICULAR PURPOSE. 22 | */ 23 | 24 | 25 | /*! \page deployment Deployment 26 | 27 | \addindex deployment 28 | \tableofcontents 29 | 30 |

There are 2 main issues you need to be aware of when deploying your application to end users:

31 |

Required Software Components

32 |

Please be sure that the required software components are installed. If they are not yet installed please install the software as follows:

33 |

OPC Core Components Redistributable

34 |

This setup application installs the OPC Core Components required by applications accessing Classic OPC DA, AE or HDA servers.

35 |

OPC DA/AE/HDA Client Ssolution C++ Components

36 |

The OPC DA/AE/HDA Client Ssolution C++ is delivered in form of DLLs. You need to deploy the following files in the same directory as your executable:

37 | 41 | 42 | \htmlonly 43 | Go to the next section or return to the index. 44 | \endhtmlonly 45 | 46 | */ -------------------------------------------------------------------------------- /doc/client/footer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /doc/client/header.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | $projectname: $title 9 | $title 10 | 11 | 12 | 13 | $treeview 14 | $search 15 | $mathjax 16 | 17 | $extrastylesheet 18 | 19 | 20 |
21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 37 | 38 | 39 | 40 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 |
32 |
$projectname 33 |  $projectnumber 34 |
35 |
$projectbrief
36 |
41 |
$projectbrief
42 |
$searchbox
53 |
54 | 55 | 56 | -------------------------------------------------------------------------------- /doc/client/header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/doc/client/header.png -------------------------------------------------------------------------------- /doc/client/images/ClientCPPDevelopment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/doc/client/images/ClientCPPDevelopment.png -------------------------------------------------------------------------------- /doc/client/index.hhp.txt: -------------------------------------------------------------------------------- 1 | ClientCPPDevelopment.png -------------------------------------------------------------------------------- /doc/client/latex/Makefile: -------------------------------------------------------------------------------- 1 | all: refman.pdf 2 | 3 | pdf: refman.pdf 4 | 5 | refman.pdf: clean refman.tex 6 | pdflatex refman 7 | makeindex refman.idx 8 | pdflatex refman 9 | latex_count=8 ; \ 10 | while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\ 11 | do \ 12 | echo "Rerunning latex...." ;\ 13 | pdflatex refman ;\ 14 | latex_count=`expr $$latex_count - 1` ;\ 15 | done 16 | makeindex refman.idx 17 | pdflatex refman 18 | 19 | 20 | clean: 21 | rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf 22 | -------------------------------------------------------------------------------- /doc/client/latex/make.bat: -------------------------------------------------------------------------------- 1 | set Dir_Old=%cd% 2 | cd /D %~dp0 3 | 4 | del /s /f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf 5 | 6 | pdflatex refman 7 | echo ---- 8 | makeindex refman.idx 9 | echo ---- 10 | pdflatex refman 11 | 12 | setlocal enabledelayedexpansion 13 | set count=8 14 | :repeat 15 | set content=X 16 | for /F "tokens=*" %%T in ( 'findstr /C:"Rerun LaTeX" refman.log' ) do set content="%%~T" 17 | if !content! == X for /F "tokens=*" %%T in ( 'findstr /C:"Rerun to get cross-references right" refman.log' ) do set content="%%~T" 18 | if !content! == X goto :skip 19 | set /a count-=1 20 | if !count! EQU 0 goto :skip 21 | 22 | echo ---- 23 | pdflatex refman 24 | goto :repeat 25 | :skip 26 | endlocal 27 | makeindex refman.idx 28 | pdflatex refman 29 | cd /D %Dir_Old% 30 | set Dir_Old= 31 | -------------------------------------------------------------------------------- /examples/c++/AeSample/AeSample.sln: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 14.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.23107.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AeSample", "AeSample.vcxproj", "{4326E60B-A2F7-43B5-A0F3-B16EED11E98F}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Win32 = Debug|Win32 11 | Debug|x64 = Debug|x64 12 | Release|Win32 = Release|Win32 13 | Release|x64 = Release|x64 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {4326E60B-A2F7-43B5-A0F3-B16EED11E98F}.Debug|Win32.ActiveCfg = Debug|Win32 17 | {4326E60B-A2F7-43B5-A0F3-B16EED11E98F}.Debug|Win32.Build.0 = Debug|Win32 18 | {4326E60B-A2F7-43B5-A0F3-B16EED11E98F}.Debug|x64.ActiveCfg = Debug|x64 19 | {4326E60B-A2F7-43B5-A0F3-B16EED11E98F}.Debug|x64.Build.0 = Debug|x64 20 | {4326E60B-A2F7-43B5-A0F3-B16EED11E98F}.Release|Win32.ActiveCfg = Release|Win32 21 | {4326E60B-A2F7-43B5-A0F3-B16EED11E98F}.Release|Win32.Build.0 = Release|Win32 22 | {4326E60B-A2F7-43B5-A0F3-B16EED11E98F}.Release|x64.ActiveCfg = Release|x64 23 | {4326E60B-A2F7-43B5-A0F3-B16EED11E98F}.Release|x64.Build.0 = Release|x64 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | EndGlobal 29 | -------------------------------------------------------------------------------- /examples/c++/AeSample/ClassicAeSample.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: http://www.technosoftware.com 4 | * 5 | * License: 6 | * 7 | * Permission is hereby granted, free of charge, to any person obtaining a copy 8 | * of this software and associated documentation files (the "Software"), to deal 9 | * in the Software without restriction, including without limitation the rights 10 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | * copies of the Software, and to permit persons to whom the Software is 12 | * furnished to do so, subject to the following conditions: 13 | 14 | * The above copyright notice and this permission notice shall be included in all 15 | * copies or substantial portions of the Software. 16 | 17 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 23 | * SOFTWARE. 24 | * 25 | * SPDX-License-Identifier: MIT 26 | */ 27 | 28 | #pragma once 29 | 30 | #ifndef __AFXWIN_H__ 31 | #error include 'stdafx.h' before including this file for PCH 32 | #endif 33 | 34 | #include "resource.h" // main symbols 35 | 36 | 37 | //---------------------------------------------------------------------------------------------------------------------- 38 | // CLASS CClassicAeSampleApp 39 | //---------------------------------------------------------------------------------------------------------------------- 40 | class CClassicAeSampleApp : public CWinApp 41 | { 42 | public: 43 | CClassicAeSampleApp() {}; 44 | 45 | // Overrides 46 | public: 47 | virtual BOOL InitInstance(); 48 | 49 | // Implementation 50 | DECLARE_MESSAGE_MAP() 51 | }; 52 | 53 | extern CClassicAeSampleApp theApp; 54 | -------------------------------------------------------------------------------- /examples/c++/AeSample/ClassicAeSample.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/examples/c++/AeSample/ClassicAeSample.rc -------------------------------------------------------------------------------- /examples/c++/AeSample/MainFrm.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: http://www.technosoftware.com 4 | * 5 | * License: 6 | * 7 | * Permission is hereby granted, free of charge, to any person obtaining a copy 8 | * of this software and associated documentation files (the "Software"), to deal 9 | * in the Software without restriction, including without limitation the rights 10 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | * copies of the Software, and to permit persons to whom the Software is 12 | * furnished to do so, subject to the following conditions: 13 | 14 | * The above copyright notice and this permission notice shall be included in all 15 | * copies or substantial portions of the Software. 16 | 17 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 23 | * SOFTWARE. 24 | * 25 | * SPDX-License-Identifier: MIT 26 | */ 27 | 28 | #pragma once 29 | 30 | 31 | //---------------------------------------------------------------------------------------------------------------------- 32 | // CLASS CMainFrame 33 | //---------------------------------------------------------------------------------------------------------------------- 34 | class CMainFrame : public CFrameWnd 35 | { 36 | // Creation 37 | protected: // create from serialization only 38 | CMainFrame(); 39 | DECLARE_DYNCREATE(CMainFrame) 40 | 41 | // Overrides 42 | protected: 43 | virtual BOOL PreCreateWindow(CREATESTRUCT& cs); 44 | virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext); 45 | 46 | // Implementation 47 | public: 48 | virtual ~CMainFrame(); 49 | #ifdef _DEBUG 50 | virtual void AssertValid() const; 51 | virtual void Dump(CDumpContext& dc) const; 52 | #endif 53 | 54 | protected: // control bar embedded members 55 | CStatusBar m_wndStatusBar; 56 | CToolBar m_wndToolBar; 57 | CSplitterWnd m_wndSplitter; 58 | 59 | // Generated message map functions 60 | protected: 61 | afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); 62 | DECLARE_MESSAGE_MAP() 63 | }; 64 | -------------------------------------------------------------------------------- /examples/c++/AeSample/SelectServerDlg.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: http://www.technosoftware.com 4 | * 5 | * License: 6 | * 7 | * Permission is hereby granted, free of charge, to any person obtaining a copy 8 | * of this software and associated documentation files (the "Software"), to deal 9 | * in the Software without restriction, including without limitation the rights 10 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | * copies of the Software, and to permit persons to whom the Software is 12 | * furnished to do so, subject to the following conditions: 13 | 14 | * The above copyright notice and this permission notice shall be included in all 15 | * copies or substantial portions of the Software. 16 | 17 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 23 | * SOFTWARE. 24 | * 25 | * SPDX-License-Identifier: MIT 26 | */ 27 | 28 | #include "stdafx.h" 29 | #include "ClassicAeSample.h" 30 | #include "SelectServerDlg.h" 31 | 32 | 33 | //---------------------------------------------------------------------------------------------------------------------- 34 | // CSelectServerDlg dialog 35 | //---------------------------------------------------------------------------------------------------------------------- 36 | 37 | IMPLEMENT_DYNAMIC(CSelectServerDlg, CDialog) 38 | CSelectServerDlg::CSelectServerDlg(CWnd* pParent /*=NULL*/) 39 | : CDialog(CSelectServerDlg::IDD, pParent) 40 | , m_strServerName(_T("Technosoftware.AeSample")) 41 | , m_strMachineName(_T("")) 42 | { 43 | } 44 | 45 | CSelectServerDlg::~CSelectServerDlg() 46 | { 47 | } 48 | 49 | void CSelectServerDlg::DoDataExchange(CDataExchange* pDX) 50 | { 51 | CDialog::DoDataExchange(pDX); 52 | DDX_Text(pDX, IDC_EDIT_SERVERNAME, m_strServerName); 53 | DDX_Text(pDX, IDC_EDIT_MACHINENAME, m_strMachineName); 54 | } 55 | 56 | BEGIN_MESSAGE_MAP(CSelectServerDlg, CDialog) 57 | END_MESSAGE_MAP() 58 | -------------------------------------------------------------------------------- /examples/c++/AeSample/SelectServerDlg.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: http://www.technosoftware.com 4 | * 5 | * License: 6 | * 7 | * Permission is hereby granted, free of charge, to any person obtaining a copy 8 | * of this software and associated documentation files (the "Software"), to deal 9 | * in the Software without restriction, including without limitation the rights 10 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | * copies of the Software, and to permit persons to whom the Software is 12 | * furnished to do so, subject to the following conditions: 13 | 14 | * The above copyright notice and this permission notice shall be included in all 15 | * copies or substantial portions of the Software. 16 | 17 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 23 | * SOFTWARE. 24 | * 25 | * SPDX-License-Identifier: MIT 26 | */ 27 | 28 | #pragma once 29 | 30 | 31 | //---------------------------------------------------------------------------------------------------------------------- 32 | // CLASS CSelectServerDlg 33 | //---------------------------------------------------------------------------------------------------------------------- 34 | class CSelectServerDlg : public CDialog 35 | { 36 | DECLARE_DYNAMIC(CSelectServerDlg) 37 | 38 | public: 39 | CSelectServerDlg(CWnd* pParent = NULL); // standard constructor 40 | virtual ~CSelectServerDlg(); 41 | 42 | // Dialog Data 43 | enum { IDD = IDD_SELECTOPCSERVER_DLG }; 44 | 45 | protected: 46 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support 47 | 48 | DECLARE_MESSAGE_MAP() 49 | public: 50 | CString m_strServerName; 51 | CString m_strMachineName; 52 | }; 53 | -------------------------------------------------------------------------------- /examples/c++/AeSample/matchpattern.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/examples/c++/AeSample/matchpattern.cpp -------------------------------------------------------------------------------- /examples/c++/AeSample/matchpattern.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/examples/c++/AeSample/matchpattern.h -------------------------------------------------------------------------------- /examples/c++/AeSample/res/ClassicAeSample.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/examples/c++/AeSample/res/ClassicAeSample.ico -------------------------------------------------------------------------------- /examples/c++/AeSample/res/ClassicAeSample.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | Your app description here 10 | 11 | 12 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /examples/c++/AeSample/res/ClassicAeSample.rc2: -------------------------------------------------------------------------------- 1 | // 2 | // ClassicAeSample.RC2 - resources Microsoft Visual C++ does not edit directly 3 | // 4 | 5 | #ifdef APSTUDIO_INVOKED 6 | #error this file is not editable by Microsoft Visual C++ 7 | #endif //APSTUDIO_INVOKED 8 | 9 | 10 | ///////////////////////////////////////////////////////////////////////////// 11 | // Add manually edited resources here... 12 | 13 | ///////////////////////////////////////////////////////////////////////////// 14 | -------------------------------------------------------------------------------- /examples/c++/AeSample/res/Toolbar.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/examples/c++/AeSample/res/Toolbar.bmp -------------------------------------------------------------------------------- /examples/c++/AeSample/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by ClassicAeSample.rc 4 | // 5 | #define ID_INDICATOR_SUBSCRIPTION 102 6 | #define IDR_MAINFRAME 128 7 | #define ID_OPCEVENTSERVER_CONNECT 129 8 | #define ID_OPCEVENTSERVER_DISCONNECT 130 9 | #define ID_OPCEVENTSERVER_SUBSCRIPTION 131 10 | #define ID_SUBSCRIPTION_ACTIVATE 132 11 | #define ID_SUBSCRIPTION_DEACTIVATE 133 12 | #define ID_SUBSCRIPTION_REFRESH 134 13 | #define IDD_SELECTOPCSERVER_DLG 135 14 | #define IDC_EDIT_MACHINENAME 1059 15 | #define IDC_EDIT_SERVERNAME 2001 16 | #define ID_TOGGLE_SUBSCRIPTION 32771 17 | #define ID_SUBSCRIPTION_TOGGLE 32772 18 | 19 | // Next default values for new objects 20 | // 21 | #ifdef APSTUDIO_INVOKED 22 | #ifndef APSTUDIO_READONLY_SYMBOLS 23 | #define _APS_NEXT_RESOURCE_VALUE 136 24 | #define _APS_NEXT_COMMAND_VALUE 32773 25 | #define _APS_NEXT_CONTROL_VALUE 1001 26 | #define _APS_NEXT_SYMED_VALUE 104 27 | #endif 28 | #endif 29 | -------------------------------------------------------------------------------- /examples/c++/AeSample/stdafx.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: http://www.technosoftware.com 4 | * 5 | * License: 6 | * 7 | * Permission is hereby granted, free of charge, to any person obtaining a copy 8 | * of this software and associated documentation files (the "Software"), to deal 9 | * in the Software without restriction, including without limitation the rights 10 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | * copies of the Software, and to permit persons to whom the Software is 12 | * furnished to do so, subject to the following conditions: 13 | 14 | * The above copyright notice and this permission notice shall be included in all 15 | * copies or substantial portions of the Software. 16 | 17 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 23 | * SOFTWARE. 24 | * 25 | * SPDX-License-Identifier: MIT 26 | */ 27 | 28 | #include "stdafx.h" 29 | -------------------------------------------------------------------------------- /examples/c++/DaBrowserConsole/DaBrowserConsole.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.25420.1 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DaBrowserConsole", "DaBrowserConsole.vcxproj", "{D0078219-2243-4170-B803-A7F5CCBB4E08}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|x64 = Debug|x64 11 | Debug|x86 = Debug|x86 12 | Release|x64 = Release|x64 13 | Release|x86 = Release|x86 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {D0078219-2243-4170-B803-A7F5CCBB4E08}.Debug|x64.ActiveCfg = Debug|x64 17 | {D0078219-2243-4170-B803-A7F5CCBB4E08}.Debug|x64.Build.0 = Debug|x64 18 | {D0078219-2243-4170-B803-A7F5CCBB4E08}.Debug|x86.ActiveCfg = Debug|Win32 19 | {D0078219-2243-4170-B803-A7F5CCBB4E08}.Debug|x86.Build.0 = Debug|Win32 20 | {D0078219-2243-4170-B803-A7F5CCBB4E08}.Release|x64.ActiveCfg = Release|x64 21 | {D0078219-2243-4170-B803-A7F5CCBB4E08}.Release|x64.Build.0 = Release|x64 22 | {D0078219-2243-4170-B803-A7F5CCBB4E08}.Release|x86.ActiveCfg = Release|Win32 23 | {D0078219-2243-4170-B803-A7F5CCBB4E08}.Release|x86.Build.0 = Release|Win32 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | EndGlobal 29 | -------------------------------------------------------------------------------- /examples/c++/DaBrowserConsole/DaBrowserConsole.vcxproj.filters: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {61b6feaf-e9d1-448f-8374-c75d4d9aec41} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {90593007-35f0-4515-89e6-b299cd2e77c3} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {a3fff2c1-5c43-4de4-b0ab-f77a1f988ed5} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | -------------------------------------------------------------------------------- /examples/c++/DaConsole/DaConsole.vcxproj.filters: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {5f4c4e66-145e-42f4-9dc4-ba5519b3067d} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {3786bfca-e5ad-4470-b110-fc92f1f8d8ca} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {816dd9da-4a12-4bb9-a549-ca5c2c473177} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | -------------------------------------------------------------------------------- /examples/c++/DaConsole/DaConsole.vs2017.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /examples/c++/HdaConsole/HdaConsole.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 14 4 | VisualStudioVersion = 14.0.25420.1 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HdaConsole", "HdaConsole.vcxproj", "{D0078219-2243-4170-B803-A7F5CCBB4E08}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|x64 = Debug|x64 11 | Debug|x86 = Debug|x86 12 | Release|x64 = Release|x64 13 | Release|x86 = Release|x86 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {D0078219-2243-4170-B803-A7F5CCBB4E08}.Debug|x64.ActiveCfg = Debug|x64 17 | {D0078219-2243-4170-B803-A7F5CCBB4E08}.Debug|x64.Build.0 = Debug|x64 18 | {D0078219-2243-4170-B803-A7F5CCBB4E08}.Debug|x86.ActiveCfg = Debug|Win32 19 | {D0078219-2243-4170-B803-A7F5CCBB4E08}.Debug|x86.Build.0 = Debug|Win32 20 | {D0078219-2243-4170-B803-A7F5CCBB4E08}.Release|x64.ActiveCfg = Release|x64 21 | {D0078219-2243-4170-B803-A7F5CCBB4E08}.Release|x64.Build.0 = Release|x64 22 | {D0078219-2243-4170-B803-A7F5CCBB4E08}.Release|x86.ActiveCfg = Release|Win32 23 | {D0078219-2243-4170-B803-A7F5CCBB4E08}.Release|x86.Build.0 = Release|Win32 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | EndGlobal 29 | -------------------------------------------------------------------------------- /examples/c++/HdaConsole/HdaConsole.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {5f4c4e66-145e-42f4-9dc4-ba5519b3067d} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {3786bfca-e5ad-4470-b110-fc92f1f8d8ca} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {816dd9da-4a12-4bb9-a549-ca5c2c473177} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | -------------------------------------------------------------------------------- /examples/doc/client/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2011-2018 Technosoftware GmbH. All rights reserved 3 | # Web: https://technosoftware.com 4 | # 5 | # Purpose: 6 | # 7 | # This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 8 | # WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 9 | # 10 | 11 | # declare the targets 12 | set( TECHNOSOFTWARE_CLIENT_EXAMPLES 13 | DaConsole 14 | DaBrowserConsole 15 | HdaConsole 16 | ) 17 | 18 | foreach(TECHNOSOFTWARE_CLIENT_EXAMPLE ${TECHNOSOFTWARE_CLIENT_EXAMPLES}) 19 | 20 | # Add an executable for the example 21 | add_executable(${TECHNOSOFTWARE_CLIENT_EXAMPLE} ${TECHNOSOFTWARE_CLIENT_EXAMPLE}.cpp) 22 | 23 | # Link the executable. 24 | if(WIN32) 25 | target_link_libraries( 26 | ${TECHNOSOFTWARE_CLIENT_EXAMPLE} 27 | TechnosoftwareClient TechnosoftwareBase TechnosoftwareCore TechnosoftwareDaAeHdaClient 28 | oleaut32 ole32 Version ws2_32 rpcrt4 crypt32 29 | ) 30 | else(WIN32) 31 | target_link_libraries( 32 | ${TECHNOSOFTWARE_CLIENT_EXAMPLE} 33 | TechnosoftwareClient TechnosoftwareBase TechnosoftwareCore TechnosoftwareDaAeHdaClient 34 | dl rt pthread 35 | ) 36 | endif(WIN32) 37 | 38 | # Set the output directory for the C++ test to the previously defined output directory 39 | set_target_properties(${TECHNOSOFTWARE_CLIENT_EXAMPLE} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${EXAMPLES_TECHNOSOFTWARE_BIN_DIR}") 40 | set_target_properties(${TECHNOSOFTWARE_CLIENT_EXAMPLE} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG "${EXAMPLES_TECHNOSOFTWARE_BIN_DIR}") 41 | set_target_properties(${TECHNOSOFTWARE_CLIENT_EXAMPLE} PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASE "${EXAMPLES_TECHNOSOFTWARE_BIN_DIR}") 42 | 43 | endforeach(TECHNOSOFTWARE_CLIENT_EXAMPLE) 44 | -------------------------------------------------------------------------------- /include/Base/ASCIIEncoding.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * Definition of the ASCIIEncoding class. 7 | * 8 | * Based on: POCO C++ Foundation Library 9 | * Copyright (c) 2005-2007, Applied Informatics Software Engineering GmbH. 10 | * and Contributors. 11 | * 12 | * The source code in this file is covered under a dual-license scenario: 13 | * - Owner of a purchased license: SCLA 1.0 14 | * - GPL V3: everybody else 15 | * 16 | * SCLA license terms accompanied with this source code. 17 | * See SCLA 1.0: https://technosoftware.com/license/Source_Code_License_Agreement.pdf 18 | * 19 | * GNU General Public License as published by the Free Software Foundation; 20 | * version 3 of the License are accompanied with this source code. 21 | * See https://technosoftware.com/license/GPLv3License.txt 22 | * 23 | * This source code is distributed in the hope that it will be useful, but 24 | * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 25 | * or FITNESS FOR A PARTICULAR PURPOSE. 26 | */ 27 | 28 | #ifndef TECHNOSOFTWARE_ASCIIENCODING_H 29 | #define TECHNOSOFTWARE_ASCIIENCODING_H 30 | 31 | #include "Base/Base.h" 32 | #include "Base/TextEncoding.h" 33 | 34 | namespace Technosoftware 35 | { 36 | namespace Base 37 | { 38 | /** 39 | * @class ASCIIEncoding 40 | * 41 | * @brief 7-bit ASCII text encoding. 42 | * 43 | * @ingroup BaseText 44 | */ 45 | 46 | class TECHNOSOFTWARE_API ASCIIEncoding : public TextEncoding 47 | { 48 | public: 49 | ASCIIEncoding(); 50 | ~ASCIIEncoding(); 51 | const char* GetCanonicalName() const; 52 | bool IsA(const std::string& encodingName) const; 53 | const CharacterMap& GetCharacterMap() const; 54 | int Convert(const unsigned char* bytes) const; 55 | int Convert(int ch, unsigned char* bytes, int length) const; 56 | int QueryConvert(const unsigned char* bytes, int length) const; 57 | int GetSequenceLength(const unsigned char* bytes, int length) const; 58 | 59 | private: 60 | static const char* names_[]; 61 | static const CharacterMap charMap_; 62 | }; 63 | } 64 | } 65 | 66 | #endif /* TECHNOSOFTWARE_ASCIIENCODING_H */ 67 | -------------------------------------------------------------------------------- /include/Base/Exception.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/include/Base/Exception.h -------------------------------------------------------------------------------- /include/Base/Hash.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * Definition of the Hash class. 7 | * 8 | * Based on: POCO C++ Foundation Library 9 | * Copyright (c) 2005-2007, Applied Informatics Software Engineering GmbH. 10 | * and Contributors. 11 | * 12 | * The source code in this file is covered under a dual-license scenario: 13 | * - Owner of a purchased license: SCLA 1.0 14 | * - GPL V3: everybody else 15 | * 16 | * SCLA license terms accompanied with this source code. 17 | * See SCLA 1.0: https://technosoftware.com/license/Source_Code_License_Agreement.pdf 18 | * 19 | * GNU General Public License as published by the Free Software Foundation; 20 | * version 3 of the License are accompanied with this source code. 21 | * See https://technosoftware.com/license/GPLv3License.txt 22 | * 23 | * This source code is distributed in the hope that it will be useful, but 24 | * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 25 | * or FITNESS FOR A PARTICULAR PURPOSE. 26 | */ 27 | 28 | #ifndef TECHNOSOFTWARE_HASH_H 29 | #define TECHNOSOFTWARE_HASH_H 30 | 31 | #include 32 | 33 | #include "Base/Base.h" 34 | #include "Base/Handles.h" 35 | 36 | namespace Technosoftware 37 | { 38 | namespace Base 39 | { 40 | 41 | std::size_t TECHNOSOFTWARE_API hash(const std::string& str); 42 | std::size_t TECHNOSOFTWARE_API hash(ServerHandle n); 43 | 44 | template 45 | 46 | /** 47 | * @struct Hash 48 | * 49 | * @brief A generic hash function. 50 | * 51 | * @ingroup Hashing 52 | */ 53 | 54 | struct Hash 55 | { 56 | /** 57 | * @fn std::size_t operator() (T value) const 58 | * 59 | * @brief Returns the hash for the given value. 60 | * 61 | * @return The result of the operation. 62 | */ 63 | 64 | std::size_t operator () (T value) const 65 | { 66 | return Base::hash(value); 67 | } 68 | }; 69 | 70 | 71 | // 72 | // inlines 73 | // 74 | inline std::size_t hash(ServerHandle n) 75 | { 76 | return static_cast(n) * 2654435761U; 77 | } 78 | } 79 | } 80 | 81 | #endif /* TECHNOSOFTWARE_HASH_H */ 82 | -------------------------------------------------------------------------------- /include/Base/Latin1Encoding.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * Definition of the Latin1Encoding class. 7 | * 8 | * Based on: POCO C++ Foundation Library 9 | * Copyright (c) 2005-2007, Applied Informatics Software Engineering GmbH. 10 | * and Contributors. 11 | * 12 | * The source code in this file is covered under a dual-license scenario: 13 | * - Owner of a purchased license: SCLA 1.0 14 | * - GPL V3: everybody else 15 | * 16 | * SCLA license terms accompanied with this source code. 17 | * See SCLA 1.0: https://technosoftware.com/license/Source_Code_License_Agreement.pdf 18 | * 19 | * GNU General Public License as published by the Free Software Foundation; 20 | * version 3 of the License are accompanied with this source code. 21 | * See https://technosoftware.com/license/GPLv3License.txt 22 | * 23 | * This source code is distributed in the hope that it will be useful, but 24 | * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 25 | * or FITNESS FOR A PARTICULAR PURPOSE. 26 | */ 27 | 28 | #ifndef TECHNOSOFTWARE_LATIN1ENCODING_H 29 | #define TECHNOSOFTWARE_LATIN1ENCODING_H 30 | 31 | #include "Base/Base.h" 32 | #include "Base/TextEncoding.h" 33 | 34 | namespace Technosoftware 35 | { 36 | namespace Base 37 | { 38 | /** 39 | * @class Latin1Encoding 40 | * 41 | * @brief ISO Latin-1 (8859-1) text encoding. 42 | * 43 | * @ingroup BaseText 44 | */ 45 | 46 | class TECHNOSOFTWARE_API Latin1Encoding : public TextEncoding 47 | { 48 | public: 49 | Latin1Encoding(); 50 | ~Latin1Encoding(); 51 | const char* GetCanonicalName() const; 52 | bool IsA(const std::string& encodingName) const; 53 | const CharacterMap& GetCharacterMap() const; 54 | int Convert(const unsigned char* bytes) const; 55 | int Convert(int ch, unsigned char* bytes, int length) const; 56 | int QueryConvert(const unsigned char* bytes, int length) const; 57 | int GetSequenceLength(const unsigned char* bytes, int length) const; 58 | 59 | private: 60 | static const char* names_[]; 61 | static const CharacterMap charMap_; 62 | }; 63 | } 64 | } 65 | 66 | #endif /* TECHNOSOFTWARE_LATIN1ENCODING_H */ 67 | -------------------------------------------------------------------------------- /include/Base/Latin2Encoding.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * Definition of the Latin2Encoding class. 7 | * 8 | * Based on: POCO C++ Foundation Library 9 | * Copyright (c) 2005-2007, Applied Informatics Software Engineering GmbH. 10 | * and Contributors. 11 | * 12 | * The source code in this file is covered under a dual-license scenario: 13 | * - Owner of a purchased license: SCLA 1.0 14 | * - GPL V3: everybody else 15 | * 16 | * SCLA license terms accompanied with this source code. 17 | * See SCLA 1.0: https://technosoftware.com/license/Source_Code_License_Agreement.pdf 18 | * 19 | * GNU General Public License as published by the Free Software Foundation; 20 | * version 3 of the License are accompanied with this source code. 21 | * See https://technosoftware.com/license/GPLv3License.txt 22 | * 23 | * This source code is distributed in the hope that it will be useful, but 24 | * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 25 | * or FITNESS FOR A PARTICULAR PURPOSE. 26 | */ 27 | 28 | #ifndef TECHNOSOFTWARE_LATIN2ENCODING_H 29 | #define TECHNOSOFTWARE_LATIN2ENCODING_H 30 | 31 | #include "Base/Base.h" 32 | #include "Base/TextEncoding.h" 33 | 34 | namespace Technosoftware 35 | { 36 | namespace Base 37 | { 38 | /** 39 | * @class Latin2Encoding 40 | * 41 | * @brief ISO Latin-2 (8859-2) text encoding. 42 | * 43 | * Latin-2 is basically Latin-1 with the EURO sign plus some other minor changes. 44 | * 45 | * @ingroup BaseText 46 | */ 47 | 48 | class TECHNOSOFTWARE_API Latin2Encoding : public TextEncoding 49 | { 50 | public: 51 | Latin2Encoding(); 52 | virtual ~Latin2Encoding(); 53 | const char* GetCanonicalName() const; 54 | bool IsA(const std::string& encodingName) const; 55 | const CharacterMap& GetCharacterMap() const; 56 | int Convert(const unsigned char* bytes) const; 57 | int Convert(int ch, unsigned char* bytes, int length) const; 58 | int QueryConvert(const unsigned char* bytes, int length) const; 59 | int GetSequenceLength(const unsigned char* bytes, int length) const; 60 | 61 | private: 62 | static const char* names_[]; 63 | static const CharacterMap charMap_; 64 | }; 65 | } 66 | } 67 | 68 | #endif /* TECHNOSOFTWARE_LATIN2ENCODING_H */ 69 | -------------------------------------------------------------------------------- /include/Base/Latin9Encoding.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * Definition of the Latin9Encoding class. 7 | * 8 | * Based on: POCO C++ Foundation Library 9 | * Copyright (c) 2005-2007, Applied Informatics Software Engineering GmbH. 10 | * and Contributors. 11 | * 12 | * The source code in this file is covered under a dual-license scenario: 13 | * - Owner of a purchased license: SCLA 1.0 14 | * - GPL V3: everybody else 15 | * 16 | * SCLA license terms accompanied with this source code. 17 | * See SCLA 1.0: https://technosoftware.com/license/Source_Code_License_Agreement.pdf 18 | * 19 | * GNU General Public License as published by the Free Software Foundation; 20 | * version 3 of the License are accompanied with this source code. 21 | * See https://technosoftware.com/license/GPLv3License.txt 22 | * 23 | * This source code is distributed in the hope that it will be useful, but 24 | * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 25 | * or FITNESS FOR A PARTICULAR PURPOSE. 26 | */ 27 | 28 | #ifndef TECHNOSOFTWARE_LATIN9ENCODING_H 29 | #define TECHNOSOFTWARE_LATIN9ENCODING_H 30 | 31 | #include "Base/Base.h" 32 | #include "Base/TextEncoding.h" 33 | 34 | namespace Technosoftware 35 | { 36 | namespace Base 37 | { 38 | /** 39 | * @class Latin9Encoding 40 | * 41 | * @brief ISO Latin-9 (8859-15) text encoding. 42 | * 43 | * Latin-9 is basically Latin-1 with the EURO sign plus some other minor changes. 44 | * 45 | * @ingroup BaseText 46 | */ 47 | 48 | class TECHNOSOFTWARE_API Latin9Encoding : public TextEncoding 49 | { 50 | public: 51 | Latin9Encoding(); 52 | ~Latin9Encoding(); 53 | const char* GetCanonicalName() const; 54 | bool IsA(const std::string& encodingName) const; 55 | const CharacterMap& GetCharacterMap() const; 56 | int Convert(const unsigned char* bytes) const; 57 | int Convert(int ch, unsigned char* bytes, int length) const; 58 | int QueryConvert(const unsigned char* bytes, int length) const; 59 | int GetSequenceLength(const unsigned char* bytes, int length) const; 60 | 61 | private: 62 | static const char* names_[]; 63 | static const CharacterMap charMap_; 64 | }; 65 | } 66 | } 67 | 68 | #endif /* TECHNOSOFTWARE_LATIN9ENCODING_H */ 69 | -------------------------------------------------------------------------------- /include/Base/Mutex_POSIX.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * Definition of the MutexImpl and FastMutexImpl classes for POSIX Threads. 7 | * 8 | * Based on: POCO C++ Foundation Library 9 | * Copyright (c) 2005-2007, Applied Informatics Software Engineering GmbH. 10 | * and Contributors. 11 | * 12 | * The Software is subject to the Technosoftware GmbH Software License Agreement, 13 | * which can be found here: 14 | * https://technosoftware.com/documents/Technosoftware_SLA.pdf 15 | */ 16 | 17 | #ifndef TECHNOSOFTWARE_MUTEX_POSIX_H 18 | #define TECHNOSOFTWARE_MUTEX_POSIX_H 19 | 20 | #include "Base/Base.h" 21 | #include "Base/Exception.h" 22 | #include 23 | #include 24 | 25 | namespace Technosoftware 26 | { 27 | namespace Base 28 | { 29 | class TECHNOSOFTWARE_API MutexImpl 30 | { 31 | protected: 32 | MutexImpl(); 33 | MutexImpl(bool fast); 34 | ~MutexImpl(); 35 | void LockImpl(); 36 | bool TryLockImpl(); 37 | bool TryLockImpl(long milliseconds); 38 | void UnlockImpl(); 39 | 40 | private: 41 | pthread_mutex_t mutex_; 42 | }; 43 | 44 | 45 | class TECHNOSOFTWARE_API FastMutexImpl : public MutexImpl 46 | { 47 | protected: 48 | FastMutexImpl(); 49 | ~FastMutexImpl(); 50 | }; 51 | 52 | 53 | // 54 | // inlines 55 | // 56 | inline void MutexImpl::LockImpl() 57 | { 58 | if (pthread_mutex_lock(&mutex_)) 59 | throw SystemException("cannot lock mutex"); 60 | } 61 | 62 | 63 | inline bool MutexImpl::TryLockImpl() 64 | { 65 | int rc = pthread_mutex_trylock(&mutex_); 66 | if (rc == 0) 67 | return true; 68 | else if (rc == EBUSY) 69 | return false; 70 | else 71 | throw SystemException("cannot lock mutex"); 72 | } 73 | 74 | 75 | inline void MutexImpl::UnlockImpl() 76 | { 77 | if (pthread_mutex_unlock(&mutex_)) 78 | throw SystemException("cannot unlock mutex"); 79 | } 80 | } 81 | } 82 | 83 | #endif /* TECHNOSOFTWARE_MUTEX_POSIX_H */ 84 | -------------------------------------------------------------------------------- /include/Base/Mutex_VX.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * Definition of the MutexImpl and FastMutexImpl classes for VxWorks. 7 | * 8 | * Based on: POCO C++ Foundation Library 9 | * Copyright (c) 2005-2007, Applied Informatics Software Engineering GmbH. 10 | * and Contributors. 11 | * 12 | * The Software is subject to the Technosoftware GmbH Software License Agreement, 13 | * which can be found here: 14 | * https://technosoftware.com/documents/Technosoftware_SLA.pdf 15 | */ 16 | 17 | #ifndef Foundation_Mutex_VX_INCLUDED 18 | #define Foundation_Mutex_VX_INCLUDED 19 | 20 | #include "Base/Base.h" 21 | #include "Base/Exception.h" 22 | #include 23 | #include 24 | 25 | namespace Technosoftware 26 | { 27 | namespace Base 28 | { 29 | class TECHNOSOFTWARE_API MutexImpl 30 | { 31 | protected: 32 | MutexImpl(); 33 | MutexImpl(bool fast); 34 | ~MutexImpl(); 35 | void LockImpl(); 36 | bool TryLockImpl(); 37 | bool TryLockImpl(long milliseconds); 38 | void UnlockImpl(); 39 | 40 | private: 41 | SEM_ID _sem; 42 | }; 43 | 44 | 45 | class TECHNOSOFTWARE_API FastMutexImpl : public MutexImpl 46 | { 47 | protected: 48 | FastMutexImpl(); 49 | ~FastMutexImpl(); 50 | }; 51 | 52 | 53 | // 54 | // inlines 55 | // 56 | inline void MutexImpl::LockImpl() 57 | { 58 | if (semTake(_sem, WAIT_FOREVER) != OK) 59 | throw SystemException("cannot lock mutex"); 60 | } 61 | 62 | 63 | inline bool MutexImpl::TryLockImpl() 64 | { 65 | return semTake(_sem, NO_WAIT) == OK; 66 | } 67 | 68 | 69 | inline void MutexImpl::UnlockImpl() 70 | { 71 | if (semGive(_sem) != OK) 72 | throw SystemException("cannot unlock mutex"); 73 | } 74 | } 75 | } 76 | 77 | #endif /* TECHNOSOFTWARE_MUTEX_VX_H */ 78 | -------------------------------------------------------------------------------- /include/Base/Mutex_WIN32.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * Definition of the MutexImpl and FastMutexImpl classes for WIN32. 7 | * 8 | * Based on: POCO C++ Foundation Library 9 | * Copyright (c) 2005-2007, Applied Informatics Software Engineering GmbH. 10 | * and Contributors. 11 | * 12 | * The Software is subject to the Technosoftware GmbH Software License Agreement, 13 | * which can be found here: 14 | * https://technosoftware.com/documents/Technosoftware_SLA.pdf 15 | */ 16 | 17 | #ifndef TECHNOSOFTWARE_MUTEX_WIN32_H 18 | #define TECHNOSOFTWARE_MUTEX_WIN32_H 19 | 20 | #include "Base/Base.h" 21 | #include "Base/Exception.h" 22 | #include "Base/UnWindows.h" 23 | 24 | namespace Technosoftware 25 | { 26 | namespace Base 27 | { 28 | class TECHNOSOFTWARE_API MutexImpl 29 | { 30 | protected: 31 | MutexImpl(); 32 | ~MutexImpl(); 33 | void LockImpl(); 34 | bool TryLockImpl(); 35 | bool TryLockImpl(long milliseconds); 36 | void UnlockImpl(); 37 | 38 | private: 39 | CRITICAL_SECTION cs_; 40 | }; 41 | 42 | 43 | typedef MutexImpl FastMutexImpl; 44 | 45 | 46 | // 47 | // inlines 48 | // 49 | inline void MutexImpl::LockImpl() 50 | { 51 | try 52 | { 53 | EnterCriticalSection(&cs_); 54 | } 55 | catch (...) 56 | { 57 | throw SystemException("cannot lock mutex"); 58 | } 59 | } 60 | 61 | 62 | inline bool MutexImpl::TryLockImpl() 63 | { 64 | try 65 | { 66 | return TryEnterCriticalSection(&cs_) != 0; 67 | } 68 | catch (...) 69 | { 70 | } 71 | throw SystemException("cannot lock mutex"); 72 | } 73 | 74 | 75 | inline void MutexImpl::UnlockImpl() 76 | { 77 | LeaveCriticalSection(&cs_); 78 | } 79 | } 80 | } 81 | 82 | #endif /* TECHNOSOFTWARE_MUTEX_WIN32_H */ 83 | -------------------------------------------------------------------------------- /include/Base/Mutex_WINCE.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * Definition of the MutexImpl and FastMutexImpl classes for WINDOWS CE. 7 | * 8 | * Based on: POCO C++ Foundation Library 9 | * Copyright (c) 2005-2007, Applied Informatics Software Engineering GmbH. 10 | * and Contributors. 11 | * 12 | * The Software is subject to the Technosoftware GmbH Software License Agreement, 13 | * which can be found here: 14 | * https://technosoftware.com/documents/Technosoftware_SLA.pdf 15 | */ 16 | 17 | #ifndef Foundation_Mutex_WINCE_INCLUDED 18 | #define Foundation_Mutex_WINCE_INCLUDED 19 | 20 | #include "Base/Base.h" 21 | #include "Base/Exception.h" 22 | #include "Base/UnWindows.h" 23 | 24 | namespace Technosoftware 25 | { 26 | namespace Base 27 | { 28 | class TECHNOSOFTWARE_API MutexImpl 29 | { 30 | protected: 31 | MutexImpl(); 32 | ~MutexImpl(); 33 | void LockImpl(); 34 | bool TryLockImpl(); 35 | bool TryLockImpl(long milliseconds); 36 | void UnlockImpl(); 37 | 38 | private: 39 | HANDLE mutex_; 40 | }; 41 | 42 | typedef MutexImpl FastMutexImpl; 43 | } 44 | } 45 | 46 | #endif /* TECHNOSOFTWARE_MUTEX_WINCE_H */ 47 | -------------------------------------------------------------------------------- /include/Base/Platform_POSIX.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * Platform and architecture identification macros 7 | * and platform-specific definitions for various POSIX platforms 8 | * 9 | * The Software is subject to the Technosoftware GmbH Software License Agreement, 10 | * which can be found here: 11 | * https://technosoftware.com/documents/Technosoftware_SLA.pdf 12 | */ 13 | 14 | #ifndef TECHNOSOFTWARE_PLATFORM_POSIX_H 15 | #define TECHNOSOFTWARE_PLATFORM_POSIX_H 16 | 17 | 18 | // 19 | // PA-RISC based HP-UX platforms have some issues... 20 | // 21 | #if defined(hpux) || defined(_hpux) 22 | #if defined(__hppa) || defined(__hppa__) 23 | #define TECHNOSOFTWARE_NO_SYS_SELECT_H 1 24 | #if defined(__HP_aCC) 25 | #define TECHNOSOFTWARE_NO_TEMPLATE_ICOMPARE 1 26 | #endif 27 | #endif 28 | #endif 29 | 30 | 31 | // 32 | // Thread-safety of local static initialization 33 | // 34 | #if __cplusplus >= 201103L || __GNUC__ >= 4 || defined(__clang__) 35 | #ifndef TECHNOSOFTWARE_LOCAL_STATIC_INIT_IS_THREADSAFE 36 | #define TECHNOSOFTWARE_LOCAL_STATIC_INIT_IS_THREADSAFE 1 37 | #endif 38 | #endif 39 | 40 | 41 | // 42 | // No syslog.h on QNX/BB10 43 | // 44 | #if defined(__QNXNTO__) 45 | #define TECHNOSOFTWARE_NO_SYSLOGCHANNEL 46 | #endif 47 | 48 | 49 | #endif /* TECHNOSOFTWARE_PLATFORM_POSIX_H */ 50 | -------------------------------------------------------------------------------- /include/Base/Platform_VX.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * Platform and architecture identification macros 7 | * and platform-specific definitions for VxWorks 8 | * 9 | * The Software is subject to the Technosoftware GmbH Software License Agreement, 10 | * which can be found here: 11 | * https://technosoftware.com/documents/Technosoftware_SLA.pdf 12 | */ 13 | 14 | #ifndef TECHNOSOFTWARE_PLATFORM_VX_H 15 | #define TECHNOSOFTWARE_PLATFORM_VX_H 16 | 17 | 18 | #define TECHNOSOFTWARE_NO_SYS_SELECT_H 19 | #define TECHNOSOFTWARE_NO_FPENVIRONMENT 20 | #define TECHNOSOFTWARE_NO_WSTRING 21 | #define TECHNOSOFTWARE_NO_SHAREDMEMORY 22 | #define TECHNOSOFTWARE_NO_SYSLOGCHANNEL 23 | 24 | 25 | #endif /* TECHNOSOFTWARE_PLATFORM_VX_H */ 26 | -------------------------------------------------------------------------------- /include/Base/RWLock_VX.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * Definition of the RWLockImpl class for POSIX Threads (VxWorks). 7 | * 8 | * Based on: POCO C++ Foundation Library 9 | * Copyright (c) 2005-2007, Applied Informatics Software Engineering GmbH. 10 | * and Contributors. 11 | * 12 | * The Software is subject to the Technosoftware GmbH Software License Agreement, 13 | * which can be found here: 14 | * https://technosoftware.com/documents/Technosoftware_SLA.pdf 15 | */ 16 | 17 | #ifndef TECHNOSOFTWARE_RWLOCK_VX_H 18 | #define TECHNOSOFTWARE_RWLOCK_VX_H 19 | 20 | #include "Base/Base.h" 21 | #include "Base/Exception.h" 22 | #include 23 | #include 24 | 25 | namespace Technosoftware 26 | { 27 | namespace Base 28 | { 29 | class TECHNOSOFTWARE_API RWLockImpl 30 | { 31 | protected: 32 | RWLockImpl(); 33 | ~RWLockImpl(); 34 | void readLockImpl(); 35 | bool tryReadLockImpl(); 36 | void writeLockImpl(); 37 | bool tryWriteLockImpl(); 38 | void unlockImpl(); 39 | 40 | private: 41 | pthread_mutex_t mutex_; 42 | }; 43 | 44 | 45 | // 46 | // inlines 47 | // 48 | inline void RWLockImpl::ReadLockImpl() 49 | { 50 | if (pthread_mutex_lock(&mutex_)) 51 | throw SystemException("cannot lock mutex"); 52 | } 53 | 54 | 55 | inline bool RWLockImpl::TryReadLockImpl() 56 | { 57 | int rc = pthread_mutex_trylock(&mutex_); 58 | if (rc == 0) 59 | return true; 60 | else if (rc == EBUSY) 61 | return false; 62 | else 63 | throw SystemException("cannot lock mutex"); 64 | 65 | } 66 | 67 | 68 | inline void RWLockImpl::WriteLockImpl() 69 | { 70 | readLockImpl(); 71 | } 72 | 73 | 74 | inline bool RWLockImpl::TryWriteLockImpl() 75 | { 76 | return tryReadLockImpl(); 77 | 78 | } 79 | 80 | 81 | inline void RWLockImpl::UnlockImpl() 82 | { 83 | if (pthread_mutex_unlock(&mutex_)) 84 | throw SystemException("cannot unlock mutex"); 85 | } 86 | } 87 | } 88 | 89 | #endif /* TECHNOSOFTWARE_RWLOCK_VX_H */ 90 | -------------------------------------------------------------------------------- /include/Base/RWLock_WIN32.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * Definition of the RWLockImpl class for WIN32. 7 | * 8 | * Based on: POCO C++ Foundation Library 9 | * Copyright (c) 2005-2007, Applied Informatics Software Engineering GmbH. 10 | * and Contributors. 11 | * 12 | * The Software is subject to the Technosoftware GmbH Software License Agreement, 13 | * which can be found here: 14 | * https://technosoftware.com/documents/Technosoftware_SLA.pdf 15 | */ 16 | 17 | 18 | #ifndef TECHNOSOFTWARE_RWLOCK_WIN32_H 19 | #define TECHNOSOFTWARE_RWLOCK_WIN32_H 20 | 21 | #include "Base/Base.h" 22 | #include "Base/Exception.h" 23 | #include "Base/UnWindows.h" 24 | 25 | namespace Technosoftware 26 | { 27 | namespace Base 28 | { 29 | class TECHNOSOFTWARE_API RWLockImpl 30 | { 31 | protected: 32 | RWLockImpl(); 33 | ~RWLockImpl(); 34 | void ReadLockImpl(); 35 | bool TryReadLockImpl(); 36 | void WriteLockImpl(); 37 | bool TryWriteLockImpl(); 38 | void UnlockImpl(); 39 | 40 | private: 41 | void AddWriter(); 42 | void RemoveWriter(); 43 | DWORD TryReadLockOnce(); 44 | 45 | HANDLE mutex_; 46 | HANDLE _readEvent; 47 | HANDLE _writeEvent; 48 | unsigned _readers; 49 | unsigned _writersWaiting; 50 | unsigned _writers; 51 | }; 52 | } 53 | } 54 | 55 | #endif /* TECHNOSOFTWARE_RWLOCK_WIN32_H */ 56 | -------------------------------------------------------------------------------- /include/Base/RWLock_WINCE.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * Definition of the RWLockImpl class for WINCE. 7 | * 8 | * Based on: POCO C++ Foundation Library 9 | * Copyright (c) 2005-2007, Applied Informatics Software Engineering GmbH. 10 | * and Contributors. 11 | * 12 | * The Software is subject to the Technosoftware GmbH Software License Agreement, 13 | * which can be found here: 14 | * https://technosoftware.com/documents/Technosoftware_SLA.pdf 15 | */ 16 | 17 | #ifndef TECHNOSOFTWARE_RWLOCK_WINCE_H 18 | #define TECHNOSOFTWARE_RWLOCK_WINCE_H 19 | 20 | #include "Base/Base.h" 21 | #include "Base/Exception.h" 22 | #include "Base/UnWindows.h" 23 | 24 | namespace Technosoftware 25 | { 26 | namespace Base 27 | { 28 | class TECHNOSOFTWARE_API RWLockImpl 29 | /// This implementation is based on the one from Stone Steps Inc, 30 | /// licensed under the BSD license. 31 | /// http://forums.stonesteps.ca/thread.asp?t=105 32 | /// 33 | /// Note that with this implementation, writers always take 34 | /// precedence over readers. 35 | { 36 | protected: 37 | RWLockImpl(); 38 | ~RWLockImpl(); 39 | void ReadLockImpl(); 40 | bool TryReadLockImpl(DWORD timeout = 1); 41 | void WriteLockImpl(); 42 | bool TryWriteLockImpl(DWORD timeout = 1); 43 | void UnlockImpl(); 44 | 45 | private: 46 | DWORD _readerCount; 47 | DWORD _readerWaiting; 48 | DWORD _writerCount; 49 | DWORD _writerWaiting; 50 | HANDLE _readerGreen; 51 | HANDLE _writerGreen; 52 | CRITICAL_SECTION _cs; 53 | bool _writeLock; 54 | }; 55 | } 56 | } 57 | 58 | #endif /* TECHNOSOFTWARE_RWLOCK_WINCE_H */ 59 | -------------------------------------------------------------------------------- /include/Base/ScopedUnlock.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * Definition of the ScopedUnlock template class. 7 | * 8 | * Based on: POCO C++ Foundation Library 9 | * Copyright (c) 2005-2007, Applied Informatics Software Engineering GmbH. 10 | * and Contributors. 11 | * 12 | * The source code in this file is covered under a dual-license scenario: 13 | * - Owner of a purchased license: SCLA 1.0 14 | * - GPL V3: everybody else 15 | * 16 | * SCLA license terms accompanied with this source code. 17 | * See SCLA 1.0: https://technosoftware.com/license/Source_Code_License_Agreement.pdf 18 | * 19 | * GNU General Public License as published by the Free Software Foundation; 20 | * version 3 of the License are accompanied with this source code. 21 | * See https://technosoftware.com/license/GPLv3License.txt 22 | * 23 | * This source code is distributed in the hope that it will be useful, but 24 | * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 25 | * or FITNESS FOR A PARTICULAR PURPOSE. 26 | */ 27 | 28 | #ifndef TECHNOSOFTWARE_SCOPEDUNLOCK_H 29 | #define TECHNOSOFTWARE_SCOPEDUNLOCK_H 30 | 31 | #include "Base/Base.h" 32 | 33 | namespace Technosoftware 34 | { 35 | namespace Base 36 | { 37 | /** 38 | * @class ScopedUnlock 39 | * 40 | * @brief A class that simplifies thread synchronization with a mutex. The constructor accepts 41 | * a Mutex and unlocks it. The destructor locks the mutex. 42 | * 43 | * @ingroup BaseThreading 44 | */ 45 | 46 | template 47 | class ScopedUnlock 48 | { 49 | public: 50 | inline ScopedUnlock(M& mutex, bool unlockNow = true) : mutex_(mutex) 51 | { 52 | if (unlockNow) 53 | mutex_.unlock(); 54 | } 55 | inline ~ScopedUnlock() 56 | { 57 | try 58 | { 59 | mutex_.lock(); 60 | } 61 | catch (...) 62 | { 63 | technosoftware_unexpected(); 64 | } 65 | } 66 | 67 | private: 68 | M& mutex_; 69 | 70 | ScopedUnlock(); 71 | ScopedUnlock(const ScopedUnlock&); 72 | ScopedUnlock& operator = (const ScopedUnlock&); 73 | }; 74 | } 75 | } 76 | 77 | 78 | #endif /* TECHNOSOFTWARE_SCOPEDUNLOCK_H */ 79 | -------------------------------------------------------------------------------- /include/Base/Windows1252Encoding.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * Definition of the Windows1252Encoding class. 7 | * 8 | * Based on: POCO C++ Foundation Library 9 | * Copyright (c) 2005-2007, Applied Informatics Software Engineering GmbH. 10 | * and Contributors. 11 | * 12 | * The source code in this file is covered under a dual-license scenario: 13 | * - Owner of a purchased license: SCLA 1.0 14 | * - GPL V3: everybody else 15 | * 16 | * SCLA license terms accompanied with this source code. 17 | * See SCLA 1.0: https://technosoftware.com/license/Source_Code_License_Agreement.pdf 18 | * 19 | * GNU General Public License as published by the Free Software Foundation; 20 | * version 3 of the License are accompanied with this source code. 21 | * See https://technosoftware.com/license/GPLv3License.txt 22 | * 23 | * This source code is distributed in the hope that it will be useful, but 24 | * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 25 | * or FITNESS FOR A PARTICULAR PURPOSE. 26 | */ 27 | 28 | #ifndef TECHNOSOFTWARE_WINDOWS1252ENCODING_H 29 | #define TECHNOSOFTWARE_WINDOWS1252ENCODING_H 30 | 31 | #include "Base/Base.h" 32 | #include "Base/TextEncoding.h" 33 | 34 | namespace Technosoftware 35 | { 36 | namespace Base 37 | { 38 | /** 39 | * @class Windows1252Encoding 40 | * 41 | * @brief Windows Codepage 1252 text encoding. 42 | * 43 | * @ingroup BaseText 44 | */ 45 | 46 | class TECHNOSOFTWARE_API Windows1252Encoding : public TextEncoding 47 | { 48 | public: 49 | Windows1252Encoding(); 50 | ~Windows1252Encoding(); 51 | const char* GetCanonicalName() const override; 52 | bool IsA(const std::string& encodingName) const override; 53 | const CharacterMap& GetCharacterMap() const override; 54 | int Convert(const unsigned char* bytes) const override; 55 | int Convert(int ch, unsigned char* bytes, int length) const override; 56 | int QueryConvert(const unsigned char* bytes, int length) const override; 57 | int GetSequenceLength(const unsigned char* bytes, int length) const override; 58 | 59 | private: 60 | static const char* names_[]; 61 | static const CharacterMap charMap_; 62 | }; 63 | 64 | } 65 | } 66 | 67 | #endif /* TECHNOSOFTWARE_WINDOWS1252ENCODING_H */ 68 | -------------------------------------------------------------------------------- /include/Classic/classicopc.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://www.technosoftware.com 4 | * 5 | * The source code in this file is covered under a dual-license scenario: 6 | * - Owner of a purchased license: SCLA 1.0 7 | * - GPL V3: everybody else 8 | * 9 | * SCLA license terms accompanied with this source code. 10 | * See SCLA 1.0: https://technosoftware.com/license/Source_Code_License_Agreement.pdf 11 | * 12 | * GNU General Public License as published by the Free Software Foundation; 13 | * version 3 of the License are accompanied with this source code. 14 | * See https://technosoftware.com/license/GPLv3License.txt 15 | * 16 | * This source code is distributed in the hope that it will be useful, but 17 | * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 18 | * or FITNESS FOR A PARTICULAR PURPOSE. 19 | */ 20 | 21 | #ifndef __OPCSDK_H 22 | #define __OPCSDK_H 23 | 24 | 25 | #ifdef _WIN32 26 | 27 | #include "inc32\opccomn.h" // IIDs and CLSIDs for OPC Common Definitions 28 | #include "inc32\OpcEnum.h" // IIDs and CLSIDs for OPC Server List / Enumerator 29 | #include "inc32\opcda.h" // IIDs and CLSIDs for OPC Data Access 30 | #include "inc32\opc_ae.h" // IIDs and CLSIDs for OPC Alarsm & Events 31 | #include "inc32\opcaedef.h" // OPC Alarms & Events Definitions 32 | #include "inc32\opchda.h" 33 | #include "inc32\opchda.h" 34 | #include "inc32\opcerror.h" 35 | #include "inc32\opcae_er.h" 36 | #include "inc32\OpcHda_Error.h" 37 | 38 | #else 39 | 40 | #ifdef _WIN64 41 | 42 | #include "inc64\opccomn.h" // IIDs and CLSIDs for OPC Common Definitions 43 | #include "inc64\OpcEnum.h" // IIDs and CLSIDs for OPC Server List / Enumerator 44 | #include "inc64\opcda.h" // IIDs and CLSIDs for OPC Data Access 45 | #include "inc64\opc_ae.h" // IIDs and CLSIDs for OPC Alarsm & Events 46 | #include "inc64\opcaedef.h" // OPC Alarms & Events Definitions 47 | #include "inc64\opcerror.h" 48 | #include "inc64\opcae_er.h" 49 | #include "inc64\OpcHda_Error.h" 50 | 51 | #else 52 | 53 | #error "Platform not supported" 54 | 55 | #endif // _WIN64 56 | 57 | #endif // _WIN32 58 | 59 | #endif // __OPCSDK_H 60 | -------------------------------------------------------------------------------- /include/Classic/classicopc_i.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * 7 | * The Software is subject to the Technosoftware GmbH Software License Agreement, 8 | * which can be found here: 9 | * https://technosoftware.com/documents/Technosoftware_SLA.pdf 10 | */ 11 | 12 | #ifndef __OPCSDK_I_C_ 13 | #define __OPCSDK_I_C_ 14 | 15 | #ifdef _WIN32 16 | 17 | #include "inc32\opccomn_i.c" // IIDs and CLSIDs for OPC Common Definitions 18 | #include "inc32\opcda_i.c" // IIDs and CLSIDs for OPC Data Access 19 | #include "inc32\opc_ae_i.c" // IIDs and CLSIDs for OPC Alarms & Events 20 | #include "inc32\opchda_i.c" // IIDs and CLSIDs for OPC Historical Data Access 21 | #else 22 | 23 | #ifdef _WIN64 24 | 25 | #include "inc64\opccomn_i.c" // IIDs and CLSIDs for OPC Common Definitions 26 | #include "inc64\OpcEnum_i.c" // IIDs and CLSIDs for OPC Server List / Enumerator 27 | #include "inc64\opcda_i.c" // IIDs and CLSIDs for OPC Data Access 28 | #include "inc64\opc_ae_i.c" // IIDs and CLSIDs for OPC Alarsm & Events 29 | 30 | #else 31 | 32 | #error "Platform not supported" 33 | 34 | #endif // _WIN64 35 | 36 | #endif // _WIN32 37 | #endif // __OPCSDK_I_C_ 38 | -------------------------------------------------------------------------------- /include/Classic/inc32/OpcBatchError.h: -------------------------------------------------------------------------------- 1 | //============================================================================== 2 | // TITLE: OpcBatchError.h 3 | // 4 | // CONTENTS: 5 | // 6 | // Defines error codes for the Batch specifications. 7 | // 8 | // (c) Copyright 2000-2003 The OPC Foundation 9 | // ALL RIGHTS RESERVED. 10 | // 11 | // DISCLAIMER: 12 | // This code is provided by the OPC Foundation solely to assist in 13 | // understanding and use of the appropriate OPC Specification(s) and may be 14 | // used as set forth in the License Grant section of the OPC Specification. 15 | // This code is provided as-is and without warranty or support of any sort 16 | // and is subject to the Warranty and Liability Disclaimers which appear 17 | // in the printed OPC Specification. 18 | // 19 | // MODIFICATION LOG: 20 | // 21 | // Date By Notes 22 | // ---------- --- ----- 23 | // 2000/01/17 OPC Created. 24 | // 2003/01/06 RSA Updated formatting. Added messages to proxy/stub resource block. 25 | // 26 | 27 | #ifndef __OPCBATCHERROR_H 28 | #define __OPCBATCHERROR_H 29 | 30 | #if _MSC_VER >= 1000 31 | #pragma once 32 | #endif // _MSC_VER >= 1000 33 | 34 | // The 'Facility' is set to the standard for COM interfaces or FACILITY_ITF (i.e. 0x004) 35 | // The 'Code' is set in the range defined OPC Commmon for Batch (i.e. 0x0500 to 0x05FF) 36 | // Note that for backward compatibility not all existing codes use this range. 37 | 38 | // 39 | // Values are 32 bit values laid out as follows: 40 | // 41 | // 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 42 | // 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 43 | // +---+-+-+-----------------------+-------------------------------+ 44 | // |Sev|C|R| Facility | Code | 45 | // +---+-+-+-----------------------+-------------------------------+ 46 | // 47 | // where 48 | // 49 | // Sev - is the severity code 50 | // 51 | // 00 - Success 52 | // 01 - Informational 53 | // 10 - Warning 54 | // 11 - Error 55 | // 56 | // C - is the Customer code flag 57 | // 58 | // R - is a reserved bit 59 | // 60 | // Facility - is the facility code 61 | // 62 | // Code - is the facility's status code 63 | // 64 | // 65 | // Define the facility codes 66 | // 67 | 68 | 69 | // 70 | // Define the severity codes 71 | // 72 | 73 | 74 | // 75 | // MessageId: OPCB_E_NOT_MEANINGFUL 76 | // 77 | // MessageText: 78 | // 79 | // The data is not meaningful at the present time. 80 | // 81 | #define OPCB_E_NOT_MEANINGFUL ((HRESULT)0xC0040300L) 82 | 83 | #endif // __OPCBATCHERROR_H 84 | -------------------------------------------------------------------------------- /include/Classic/inc32/OpcCmdPs.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/include/Classic/inc32/OpcCmdPs.dll -------------------------------------------------------------------------------- /include/Classic/inc32/OpcCmd_i.c: -------------------------------------------------------------------------------- 1 | 2 | 3 | /* this ALWAYS GENERATED file contains the IIDs and CLSIDs */ 4 | 5 | /* link this file in with the server and any clients */ 6 | 7 | 8 | /* File created by MIDL compiler version 7.00.0500 */ 9 | /* at Mon Jan 17 19:41:32 2011 10 | */ 11 | /* Compiler settings for .\OpcCmd.idl: 12 | Oicf, W1, Zp8, env=Win32 (32b run) 13 | protocol : dce , ms_ext, c_ext 14 | error checks: allocation ref bounds_check enum stub_data 15 | VC __declspec() decoration level: 16 | __declspec(uuid()), __declspec(selectany), __declspec(novtable) 17 | DECLSPEC_UUID(), MIDL_INTERFACE() 18 | */ 19 | //@@MIDL_FILE_HEADING( ) 20 | 21 | #pragma warning( disable: 4049 ) /* more than 64k source lines */ 22 | 23 | 24 | #ifdef __cplusplus 25 | extern "C"{ 26 | #endif 27 | 28 | 29 | #include 30 | #include 31 | 32 | #ifdef _MIDL_USE_GUIDDEF_ 33 | 34 | #ifndef INITGUID 35 | #define INITGUID 36 | #include 37 | #undef INITGUID 38 | #else 39 | #include 40 | #endif 41 | 42 | #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ 43 | DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) 44 | 45 | #else // !_MIDL_USE_GUIDDEF_ 46 | 47 | #ifndef __IID_DEFINED__ 48 | #define __IID_DEFINED__ 49 | 50 | typedef struct _IID 51 | { 52 | unsigned long x; 53 | unsigned short s1; 54 | unsigned short s2; 55 | unsigned char c[8]; 56 | } IID; 57 | 58 | #endif // __IID_DEFINED__ 59 | 60 | #ifndef CLSID_DEFINED 61 | #define CLSID_DEFINED 62 | typedef IID CLSID; 63 | #endif // CLSID_DEFINED 64 | 65 | #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ 66 | const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}} 67 | 68 | #endif !_MIDL_USE_GUIDDEF_ 69 | 70 | MIDL_DEFINE_GUID(IID, IID_CATID_OPCCMDServer10,0x2D869D5C,0x3B05,0x41fb,0x85,0x1A,0x64,0x2F,0xB2,0xB8,0x01,0xA0); 71 | 72 | 73 | MIDL_DEFINE_GUID(IID, IID_IOPCComandCallback,0x3104B527,0x2016,0x442d,0x96,0x96,0x12,0x75,0xDE,0x97,0x87,0x78); 74 | 75 | 76 | MIDL_DEFINE_GUID(IID, IID_IOPCCommandInformation,0x3104B525,0x2016,0x442d,0x96,0x96,0x12,0x75,0xDE,0x97,0x87,0x78); 77 | 78 | 79 | MIDL_DEFINE_GUID(IID, IID_IOPCCommandExecution,0x3104B526,0x2016,0x442d,0x96,0x96,0x12,0x75,0xDE,0x97,0x87,0x78); 80 | 81 | 82 | MIDL_DEFINE_GUID(IID, LIBID_OpcCmdLib,0x3104B520,0x2016,0x442d,0x96,0x96,0x12,0x75,0xDE,0x97,0x87,0x78); 83 | 84 | #undef MIDL_DEFINE_GUID 85 | 86 | #ifdef __cplusplus 87 | } 88 | #endif 89 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /include/Classic/inc32/OpcDxError.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/include/Classic/inc32/OpcDxError.h -------------------------------------------------------------------------------- /include/Classic/inc32/OpcDxPs.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/include/Classic/inc32/OpcDxPs.dll -------------------------------------------------------------------------------- /include/Classic/inc32/OpcDx_i.c: -------------------------------------------------------------------------------- 1 | 2 | 3 | /* this ALWAYS GENERATED file contains the IIDs and CLSIDs */ 4 | 5 | /* link this file in with the server and any clients */ 6 | 7 | 8 | /* File created by MIDL compiler version 7.00.0500 */ 9 | /* at Mon Jan 17 19:41:27 2011 10 | */ 11 | /* Compiler settings for .\OpcDx.idl: 12 | Oicf, W1, Zp8, env=Win32 (32b run) 13 | protocol : dce , ms_ext, c_ext 14 | error checks: allocation ref bounds_check enum stub_data 15 | VC __declspec() decoration level: 16 | __declspec(uuid()), __declspec(selectany), __declspec(novtable) 17 | DECLSPEC_UUID(), MIDL_INTERFACE() 18 | */ 19 | //@@MIDL_FILE_HEADING( ) 20 | 21 | #pragma warning( disable: 4049 ) /* more than 64k source lines */ 22 | 23 | 24 | #ifdef __cplusplus 25 | extern "C"{ 26 | #endif 27 | 28 | 29 | #include 30 | #include 31 | 32 | #ifdef _MIDL_USE_GUIDDEF_ 33 | 34 | #ifndef INITGUID 35 | #define INITGUID 36 | #include 37 | #undef INITGUID 38 | #else 39 | #include 40 | #endif 41 | 42 | #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ 43 | DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) 44 | 45 | #else // !_MIDL_USE_GUIDDEF_ 46 | 47 | #ifndef __IID_DEFINED__ 48 | #define __IID_DEFINED__ 49 | 50 | typedef struct _IID 51 | { 52 | unsigned long x; 53 | unsigned short s1; 54 | unsigned short s2; 55 | unsigned char c[8]; 56 | } IID; 57 | 58 | #endif // __IID_DEFINED__ 59 | 60 | #ifndef CLSID_DEFINED 61 | #define CLSID_DEFINED 62 | typedef IID CLSID; 63 | #endif // CLSID_DEFINED 64 | 65 | #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ 66 | const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}} 67 | 68 | #endif !_MIDL_USE_GUIDDEF_ 69 | 70 | MIDL_DEFINE_GUID(IID, IID_CATID_OPCDXServer10,0xA0C85BB8,0x4161,0x4fd6,0x86,0x55,0xBB,0x58,0x46,0x01,0xC9,0xE0); 71 | 72 | 73 | MIDL_DEFINE_GUID(IID, IID_IOPCConfiguration,0xC130D281,0xF4AA,0x4779,0x88,0x46,0xC2,0xC4,0xCB,0x44,0x4F,0x2A); 74 | 75 | 76 | MIDL_DEFINE_GUID(IID, LIBID_OpcDxLib,0x3CA18B30,0x1088,0x47d5,0x89,0x52,0x0B,0x12,0xB0,0x27,0xED,0x32); 77 | 78 | #undef MIDL_DEFINE_GUID 79 | 80 | #ifdef __cplusplus 81 | } 82 | #endif 83 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /include/Classic/inc32/OpcEnum.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | /* this ALWAYS GENERATED file contains the definitions for the interfaces */ 4 | 5 | 6 | /* File created by MIDL compiler version 7.00.0500 */ 7 | /* at Mon Jan 17 19:41:21 2011 8 | */ 9 | /* Compiler settings for .\OpcEnum.idl: 10 | Oicf, W1, Zp8, env=Win32 (32b run) 11 | protocol : dce , ms_ext, c_ext, robust 12 | error checks: allocation ref bounds_check enum stub_data 13 | VC __declspec() decoration level: 14 | __declspec(uuid()), __declspec(selectany), __declspec(novtable) 15 | DECLSPEC_UUID(), MIDL_INTERFACE() 16 | */ 17 | //@@MIDL_FILE_HEADING( ) 18 | 19 | #pragma warning( disable: 4049 ) /* more than 64k source lines */ 20 | 21 | 22 | /* verify that the version is high enough to compile this file*/ 23 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ 24 | #define __REQUIRED_RPCNDR_H_VERSION__ 475 25 | #endif 26 | 27 | #include "rpc.h" 28 | #include "rpcndr.h" 29 | 30 | #ifndef __RPCNDR_H_VERSION__ 31 | #error this stub requires an updated version of 32 | #endif // __RPCNDR_H_VERSION__ 33 | 34 | 35 | #ifndef __OpcEnum_h__ 36 | #define __OpcEnum_h__ 37 | 38 | #if defined(_MSC_VER) && (_MSC_VER >= 1020) 39 | #pragma once 40 | #endif 41 | 42 | /* Forward Declarations */ 43 | 44 | #ifndef __OpcServerList_FWD_DEFINED__ 45 | #define __OpcServerList_FWD_DEFINED__ 46 | 47 | #ifdef __cplusplus 48 | typedef class OpcServerList OpcServerList; 49 | #else 50 | typedef struct OpcServerList OpcServerList; 51 | #endif /* __cplusplus */ 52 | 53 | #endif /* __OpcServerList_FWD_DEFINED__ */ 54 | 55 | 56 | /* header files for imported files */ 57 | #include "opccomn.h" 58 | 59 | #ifdef __cplusplus 60 | extern "C"{ 61 | #endif 62 | 63 | 64 | 65 | #ifndef __OpcEnumLib_LIBRARY_DEFINED__ 66 | #define __OpcEnumLib_LIBRARY_DEFINED__ 67 | 68 | /* library OpcEnumLib */ 69 | /* [helpstring][version][uuid] */ 70 | 71 | 72 | EXTERN_C const IID LIBID_OpcEnumLib; 73 | 74 | EXTERN_C const CLSID CLSID_OpcServerList; 75 | 76 | #ifdef __cplusplus 77 | 78 | class DECLSPEC_UUID("13486D51-4821-11D2-A494-3CB306C10000") 79 | OpcServerList; 80 | #endif 81 | #endif /* __OpcEnumLib_LIBRARY_DEFINED__ */ 82 | 83 | /* Additional Prototypes for ALL interfaces */ 84 | 85 | /* end of Additional Prototypes */ 86 | 87 | #ifdef __cplusplus 88 | } 89 | #endif 90 | 91 | #endif 92 | 93 | 94 | -------------------------------------------------------------------------------- /include/Classic/inc32/OpcEnum.idl: -------------------------------------------------------------------------------- 1 | //============================================================================ 2 | // TITLE: OpcEnum.idl 3 | // 4 | // CONTENTS: 5 | // 6 | // IDL declaration for OpcEnum. 7 | // 8 | // (c) Copyright 1998-2002 The OPC Foundation 9 | // ALL RIGHTS RESERVED. 10 | // 11 | // DISCLAIMER: 12 | // This code is provided by the OPC Foundation solely to assist in 13 | // understanding and use of the appropriate OPC Specification(s) and may be 14 | // used as set forth in the License Grant section of the OPC Specification. 15 | // This code is provided as-is and without warranty or support of any sort 16 | // and is subject to the Warranty and Liability Disclaimers which appear 17 | // in the printed OPC Specification. 18 | // 19 | // MODIFICATION LOG: 20 | // 21 | // Date By Notes 22 | // ---------- --- ----- 23 | // 2002/06/12 mar Add IOPCServerList2 to OpcServerList object 24 | // 25 | 26 | import "opccomn.idl"; 27 | 28 | [ 29 | uuid(13486D43-4821-11D2-A494-3CB306C10000), 30 | version(1.1), 31 | helpstring("OpcEnum 1.1 Type Library") 32 | ] 33 | library OpcEnumLib 34 | { 35 | importlib("stdole32.tlb"); 36 | importlib("stdole2.tlb"); 37 | 38 | [ 39 | uuid(13486D51-4821-11D2-A494-3CB306C10000), 40 | helpstring("OpcEnum Class") 41 | ] 42 | coclass OpcServerList 43 | { 44 | [default] interface IOpcServerList2; 45 | interface IOpcServerList; 46 | }; 47 | }; 48 | 49 | -------------------------------------------------------------------------------- /include/Classic/inc32/OpcEnum_i.c: -------------------------------------------------------------------------------- 1 | 2 | 3 | /* this ALWAYS GENERATED file contains the IIDs and CLSIDs */ 4 | 5 | /* link this file in with the server and any clients */ 6 | 7 | 8 | /* File created by MIDL compiler version 7.00.0500 */ 9 | /* at Mon Jan 17 19:41:21 2011 10 | */ 11 | /* Compiler settings for .\OpcEnum.idl: 12 | Oicf, W1, Zp8, env=Win32 (32b run) 13 | protocol : dce , ms_ext, c_ext, robust 14 | error checks: allocation ref bounds_check enum stub_data 15 | VC __declspec() decoration level: 16 | __declspec(uuid()), __declspec(selectany), __declspec(novtable) 17 | DECLSPEC_UUID(), MIDL_INTERFACE() 18 | */ 19 | //@@MIDL_FILE_HEADING( ) 20 | 21 | #pragma warning( disable: 4049 ) /* more than 64k source lines */ 22 | 23 | 24 | #ifdef __cplusplus 25 | extern "C"{ 26 | #endif 27 | 28 | 29 | #include 30 | #include 31 | 32 | #ifdef _MIDL_USE_GUIDDEF_ 33 | 34 | #ifndef INITGUID 35 | #define INITGUID 36 | #include 37 | #undef INITGUID 38 | #else 39 | #include 40 | #endif 41 | 42 | #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ 43 | DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) 44 | 45 | #else // !_MIDL_USE_GUIDDEF_ 46 | 47 | #ifndef __IID_DEFINED__ 48 | #define __IID_DEFINED__ 49 | 50 | typedef struct _IID 51 | { 52 | unsigned long x; 53 | unsigned short s1; 54 | unsigned short s2; 55 | unsigned char c[8]; 56 | } IID; 57 | 58 | #endif // __IID_DEFINED__ 59 | 60 | #ifndef CLSID_DEFINED 61 | #define CLSID_DEFINED 62 | typedef IID CLSID; 63 | #endif // CLSID_DEFINED 64 | 65 | #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ 66 | const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}} 67 | 68 | #endif !_MIDL_USE_GUIDDEF_ 69 | 70 | MIDL_DEFINE_GUID(IID, LIBID_OpcEnumLib,0x13486D43,0x4821,0x11D2,0xA4,0x94,0x3C,0xB3,0x06,0xC1,0x00,0x00); 71 | 72 | 73 | MIDL_DEFINE_GUID(CLSID, CLSID_OpcServerList,0x13486D51,0x4821,0x11D2,0xA4,0x94,0x3C,0xB3,0x06,0xC1,0x00,0x00); 74 | 75 | #undef MIDL_DEFINE_GUID 76 | 77 | #ifdef __cplusplus 78 | } 79 | #endif 80 | 81 | 82 | 83 | -------------------------------------------------------------------------------- /include/Classic/inc32/opcSec.idl: -------------------------------------------------------------------------------- 1 | //============================================================================== 2 | // TITLE: OpcSec.idl 3 | // 4 | // CONTENTS: 5 | // 6 | // Interface declarations for the OPC Security specifications. 7 | // 8 | // (c) Copyright 1999-2003 The OPC Foundation 9 | // ALL RIGHTS RESERVED. 10 | // 11 | // DISCLAIMER: 12 | // This code is provided by the OPC Foundation solely to assist in 13 | // understanding and use of the appropriate OPC Specification(s) and may be 14 | // used as set forth in the License Grant section of the OPC Specification. 15 | // This code is provided as-is and without warranty or support of any sort 16 | // and is subject to the Warranty and Liability Disclaimers which appear 17 | // in the printed OPC Specification. 18 | // 19 | // MODIFICATION LOG: 20 | // 21 | // Date By Notes 22 | // ---------- --- ----- 23 | // 2000/08/03 DJ Finalized for spec release 1.00 24 | // 2003/01/06 RSA Fixed formatting to comply with coding guidelines. 25 | // 26 | 27 | import "oaidl.idl"; 28 | 29 | //============================================================================== 30 | // IOPCSecurityNT 31 | 32 | [ 33 | object, 34 | uuid(7AA83A01-6C77-11d3-84F9-00008630A38B), 35 | pointer_default(unique) 36 | ] 37 | interface IOPCSecurityNT : IUnknown 38 | { 39 | HRESULT IsAvailableNT( 40 | [out] BOOL* pbAvailable 41 | ); 42 | 43 | HRESULT QueryMinImpersonationLevel( 44 | [out] DWORD* pdwMinImpLevel 45 | ); 46 | 47 | HRESULT ChangeUser( 48 | void 49 | ); 50 | }; 51 | 52 | //============================================================================== 53 | // IOPCSecurityPrivate 54 | 55 | [ 56 | object, 57 | uuid(7AA83A02-6C77-11d3-84F9-00008630A38B), 58 | pointer_default(unique) 59 | ] 60 | interface IOPCSecurityPrivate : IUnknown 61 | { 62 | HRESULT IsAvailablePriv( 63 | [out] BOOL* pbAvailable 64 | ); 65 | 66 | HRESULT Logon( 67 | [in, string] LPCWSTR szUserID, 68 | [in, string] LPCWSTR szPassword 69 | ); 70 | 71 | HRESULT Logoff( 72 | void 73 | ); 74 | }; 75 | 76 | //============================================================================== 77 | // Type Library 78 | 79 | [ 80 | uuid(7AA83AFF-6C77-11d3-84F9-00008630A38B), 81 | version(1.00), 82 | helpstring("OPC Security 1.00 Type Library") 83 | ] 84 | library OPCSEC 85 | { 86 | importlib("stdole32.tlb"); 87 | importlib("stdole2.tlb"); 88 | 89 | interface IOPCSecurityNT; 90 | interface IOPCSecurityPrivate; 91 | }; 92 | 93 | -------------------------------------------------------------------------------- /include/Classic/inc32/opcSec_i.c: -------------------------------------------------------------------------------- 1 | 2 | 3 | /* this ALWAYS GENERATED file contains the IIDs and CLSIDs */ 4 | 5 | /* link this file in with the server and any clients */ 6 | 7 | 8 | /* File created by MIDL compiler version 7.00.0500 */ 9 | /* at Mon Jan 17 19:41:19 2011 10 | */ 11 | /* Compiler settings for .\OpcSec.idl: 12 | Oicf, W1, Zp8, env=Win32 (32b run) 13 | protocol : dce , ms_ext, c_ext 14 | error checks: allocation ref bounds_check enum stub_data 15 | VC __declspec() decoration level: 16 | __declspec(uuid()), __declspec(selectany), __declspec(novtable) 17 | DECLSPEC_UUID(), MIDL_INTERFACE() 18 | */ 19 | //@@MIDL_FILE_HEADING( ) 20 | 21 | #pragma warning( disable: 4049 ) /* more than 64k source lines */ 22 | 23 | 24 | #ifdef __cplusplus 25 | extern "C"{ 26 | #endif 27 | 28 | 29 | #include 30 | #include 31 | 32 | #ifdef _MIDL_USE_GUIDDEF_ 33 | 34 | #ifndef INITGUID 35 | #define INITGUID 36 | #include 37 | #undef INITGUID 38 | #else 39 | #include 40 | #endif 41 | 42 | #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ 43 | DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) 44 | 45 | #else // !_MIDL_USE_GUIDDEF_ 46 | 47 | #ifndef __IID_DEFINED__ 48 | #define __IID_DEFINED__ 49 | 50 | typedef struct _IID 51 | { 52 | unsigned long x; 53 | unsigned short s1; 54 | unsigned short s2; 55 | unsigned char c[8]; 56 | } IID; 57 | 58 | #endif // __IID_DEFINED__ 59 | 60 | #ifndef CLSID_DEFINED 61 | #define CLSID_DEFINED 62 | typedef IID CLSID; 63 | #endif // CLSID_DEFINED 64 | 65 | #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ 66 | const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}} 67 | 68 | #endif !_MIDL_USE_GUIDDEF_ 69 | 70 | MIDL_DEFINE_GUID(IID, IID_IOPCSecurityNT,0x7AA83A01,0x6C77,0x11d3,0x84,0xF9,0x00,0x00,0x86,0x30,0xA3,0x8B); 71 | 72 | 73 | MIDL_DEFINE_GUID(IID, IID_IOPCSecurityPrivate,0x7AA83A02,0x6C77,0x11d3,0x84,0xF9,0x00,0x00,0x86,0x30,0xA3,0x8B); 74 | 75 | 76 | MIDL_DEFINE_GUID(IID, LIBID_OPCSEC,0x7AA83AFF,0x6C77,0x11d3,0x84,0xF9,0x00,0x00,0x86,0x30,0xA3,0x8B); 77 | 78 | #undef MIDL_DEFINE_GUID 79 | 80 | #ifdef __cplusplus 81 | } 82 | #endif 83 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /include/Classic/inc32/opc_aeps.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/include/Classic/inc32/opc_aeps.dll -------------------------------------------------------------------------------- /include/Classic/inc32/opcauto10a_i.c: -------------------------------------------------------------------------------- 1 | /* this file contains the actual definitions of */ 2 | /* the IIDs and CLSIDs */ 3 | 4 | /* link this file in with the server and any clients */ 5 | 6 | 7 | /* File created by MIDL compiler version 3.01.75 */ 8 | /* at Tue Mar 02 14:11:12 1999 9 | */ 10 | /* Compiler settings for opcauto10a.idl: 11 | Oicf (OptLev=i2), W1, Zp8, env=Win32, ms_ext, c_ext 12 | error checks: none 13 | */ 14 | //@@MIDL_FILE_HEADING( ) 15 | #ifdef __cplusplus 16 | extern "C"{ 17 | #endif 18 | 19 | 20 | #ifndef __IID_DEFINED__ 21 | #define __IID_DEFINED__ 22 | 23 | typedef struct _IID 24 | { 25 | unsigned long x; 26 | unsigned short s1; 27 | unsigned short s2; 28 | unsigned char c[8]; 29 | } IID; 30 | 31 | #endif // __IID_DEFINED__ 32 | 33 | #ifndef CLSID_DEFINED 34 | #define CLSID_DEFINED 35 | typedef IID CLSID; 36 | #endif // CLSID_DEFINED 37 | 38 | const IID IID_IOPCServerDisp = {0x39c13a57,0x011e,0x11d0,{0x96,0x75,0x00,0x20,0xaf,0xd8,0xad,0xb3}}; 39 | 40 | 41 | const IID IID_IOPCServerPublicGroupsDisp = {0x39c13a58,0x011e,0x11d0,{0x96,0x75,0x00,0x20,0xaf,0xd8,0xad,0xb3}}; 42 | 43 | 44 | const IID IID_IOPCBrowseServerAddressSpaceDisp = {0x39c13a59,0x011e,0x11d0,{0x96,0x75,0x00,0x20,0xaf,0xd8,0xad,0xb3}}; 45 | 46 | 47 | const IID IID_IOPCItemMgtDisp = {0x39c13a5a,0x011e,0x11d0,{0x96,0x75,0x00,0x20,0xaf,0xd8,0xad,0xb3}}; 48 | 49 | 50 | const IID IID_IOPCGroupStateMgtDisp = {0x39c13a5b,0x011e,0x11d0,{0x96,0x75,0x00,0x20,0xaf,0xd8,0xad,0xb3}}; 51 | 52 | 53 | const IID IID_IOPCSyncIODisp = {0x39c13a5c,0x011e,0x11d0,{0x96,0x75,0x00,0x20,0xaf,0xd8,0xad,0xb3}}; 54 | 55 | 56 | const IID IID_IOPCAsyncIODisp = {0x39c13a5d,0x011e,0x11d0,{0x96,0x75,0x00,0x20,0xaf,0xd8,0xad,0xb3}}; 57 | 58 | 59 | const IID IID_IOPCPublicGroupStateMgtDisp = {0x39c13a5e,0x011e,0x11d0,{0x96,0x75,0x00,0x20,0xaf,0xd8,0xad,0xb3}}; 60 | 61 | 62 | const IID IID_IOPCItemDisp = {0x39c13a5f,0x011e,0x11d0,{0x96,0x75,0x00,0x20,0xaf,0xd8,0xad,0xb3}}; 63 | 64 | 65 | const IID LIBID_OPCSDKLib = {0x5F66E430,0xFC32,0x11D0,{0xA2,0x5F,0x00,0x00,0xE8,0x1E,0x90,0x85}}; 66 | 67 | 68 | const CLSID CLSID_OPCGroup = {0x94003F74,0xFE18,0x11D0,{0xA2,0x65,0x00,0x00,0xE8,0x1E,0x90,0x85}}; 69 | 70 | 71 | const CLSID CLSID_OPCItem = {0x94003F76,0xFE18,0x11D0,{0xA2,0x65,0x00,0x00,0xE8,0x1E,0x90,0x85}}; 72 | 73 | 74 | #ifdef __cplusplus 75 | } 76 | #endif 77 | 78 | -------------------------------------------------------------------------------- /include/Classic/inc32/opcbc_ps.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/include/Classic/inc32/opcbc_ps.dll -------------------------------------------------------------------------------- /include/Classic/inc32/opccomn_i.c: -------------------------------------------------------------------------------- 1 | 2 | 3 | /* this ALWAYS GENERATED file contains the IIDs and CLSIDs */ 4 | 5 | /* link this file in with the server and any clients */ 6 | 7 | 8 | /* File created by MIDL compiler version 7.00.0500 */ 9 | /* at Mon Jan 17 19:41:18 2011 10 | */ 11 | /* Compiler settings for .\opccomn.idl: 12 | Oicf, W1, Zp8, env=Win32 (32b run) 13 | protocol : dce , ms_ext, c_ext 14 | error checks: allocation ref bounds_check enum stub_data 15 | VC __declspec() decoration level: 16 | __declspec(uuid()), __declspec(selectany), __declspec(novtable) 17 | DECLSPEC_UUID(), MIDL_INTERFACE() 18 | */ 19 | //@@MIDL_FILE_HEADING( ) 20 | 21 | #pragma warning( disable: 4049 ) /* more than 64k source lines */ 22 | 23 | 24 | #ifdef __cplusplus 25 | extern "C"{ 26 | #endif 27 | 28 | 29 | #include 30 | #include 31 | 32 | #ifdef _MIDL_USE_GUIDDEF_ 33 | 34 | #ifndef INITGUID 35 | #define INITGUID 36 | #include 37 | #undef INITGUID 38 | #else 39 | #include 40 | #endif 41 | 42 | #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ 43 | DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) 44 | 45 | #else // !_MIDL_USE_GUIDDEF_ 46 | 47 | #ifndef __IID_DEFINED__ 48 | #define __IID_DEFINED__ 49 | 50 | typedef struct _IID 51 | { 52 | unsigned long x; 53 | unsigned short s1; 54 | unsigned short s2; 55 | unsigned char c[8]; 56 | } IID; 57 | 58 | #endif // __IID_DEFINED__ 59 | 60 | #ifndef CLSID_DEFINED 61 | #define CLSID_DEFINED 62 | typedef IID CLSID; 63 | #endif // CLSID_DEFINED 64 | 65 | #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ 66 | const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}} 67 | 68 | #endif !_MIDL_USE_GUIDDEF_ 69 | 70 | MIDL_DEFINE_GUID(IID, IID_IOPCShutdown,0xF31DFDE1,0x07B6,0x11d2,0xB2,0xD8,0x00,0x60,0x08,0x3B,0xA1,0xFB); 71 | 72 | 73 | MIDL_DEFINE_GUID(IID, IID_IOPCCommon,0xF31DFDE2,0x07B6,0x11d2,0xB2,0xD8,0x00,0x60,0x08,0x3B,0xA1,0xFB); 74 | 75 | 76 | MIDL_DEFINE_GUID(IID, IID_IOPCServerList,0x13486D50,0x4821,0x11D2,0xA4,0x94,0x3C,0xB3,0x06,0xC1,0x00,0x00); 77 | 78 | 79 | MIDL_DEFINE_GUID(IID, IID_IOPCEnumGUID,0x55C382C8,0x21C7,0x4e88,0x96,0xC1,0xBE,0xCF,0xB1,0xE3,0xF4,0x83); 80 | 81 | 82 | MIDL_DEFINE_GUID(IID, IID_IOPCServerList2,0x9DD0B56C,0xAD9E,0x43ee,0x83,0x05,0x48,0x7F,0x31,0x88,0xBF,0x7A); 83 | 84 | 85 | MIDL_DEFINE_GUID(IID, LIBID_OPCCOMN,0xB28EEDB1,0xAC6F,0x11d1,0x84,0xD5,0x00,0x60,0x8C,0xB8,0xA7,0xE9); 86 | 87 | #undef MIDL_DEFINE_GUID 88 | 89 | #ifdef __cplusplus 90 | } 91 | #endif 92 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /include/Classic/inc32/opccomn_ps.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/include/Classic/inc32/opccomn_ps.dll -------------------------------------------------------------------------------- /include/Classic/inc32/opcda.idl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/include/Classic/inc32/opcda.idl -------------------------------------------------------------------------------- /include/Classic/inc32/opchda_ps.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/include/Classic/inc32/opchda_ps.dll -------------------------------------------------------------------------------- /include/Classic/inc32/opcproxy.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/include/Classic/inc32/opcproxy.dll -------------------------------------------------------------------------------- /include/Classic/inc32/opcsec_ps.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/include/Classic/inc32/opcsec_ps.dll -------------------------------------------------------------------------------- /include/Classic/inc64/OpcCmd_i.c: -------------------------------------------------------------------------------- 1 | 2 | 3 | /* this ALWAYS GENERATED file contains the IIDs and CLSIDs */ 4 | 5 | /* link this file in with the server and any clients */ 6 | 7 | 8 | /* File created by MIDL compiler version 7.00.0500 */ 9 | /* at Mon Jan 17 19:13:42 2011 10 | */ 11 | /* Compiler settings for .\OpcCmd.idl: 12 | Oicf, W1, Zp8, env=Win64 (32b run) 13 | protocol : dce , ms_ext, c_ext, robust 14 | error checks: allocation ref bounds_check enum stub_data 15 | VC __declspec() decoration level: 16 | __declspec(uuid()), __declspec(selectany), __declspec(novtable) 17 | DECLSPEC_UUID(), MIDL_INTERFACE() 18 | */ 19 | //@@MIDL_FILE_HEADING( ) 20 | 21 | #pragma warning( disable: 4049 ) /* more than 64k source lines */ 22 | 23 | 24 | #ifdef __cplusplus 25 | extern "C"{ 26 | #endif 27 | 28 | 29 | #include 30 | #include 31 | 32 | #ifdef _MIDL_USE_GUIDDEF_ 33 | 34 | #ifndef INITGUID 35 | #define INITGUID 36 | #include 37 | #undef INITGUID 38 | #else 39 | #include 40 | #endif 41 | 42 | #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ 43 | DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) 44 | 45 | #else // !_MIDL_USE_GUIDDEF_ 46 | 47 | #ifndef __IID_DEFINED__ 48 | #define __IID_DEFINED__ 49 | 50 | typedef struct _IID 51 | { 52 | unsigned long x; 53 | unsigned short s1; 54 | unsigned short s2; 55 | unsigned char c[8]; 56 | } IID; 57 | 58 | #endif // __IID_DEFINED__ 59 | 60 | #ifndef CLSID_DEFINED 61 | #define CLSID_DEFINED 62 | typedef IID CLSID; 63 | #endif // CLSID_DEFINED 64 | 65 | #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ 66 | const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}} 67 | 68 | #endif !_MIDL_USE_GUIDDEF_ 69 | 70 | MIDL_DEFINE_GUID(IID, IID_CATID_OPCCMDServer10,0x2D869D5C,0x3B05,0x41fb,0x85,0x1A,0x64,0x2F,0xB2,0xB8,0x01,0xA0); 71 | 72 | 73 | MIDL_DEFINE_GUID(IID, IID_IOPCComandCallback,0x3104B527,0x2016,0x442d,0x96,0x96,0x12,0x75,0xDE,0x97,0x87,0x78); 74 | 75 | 76 | MIDL_DEFINE_GUID(IID, IID_IOPCCommandInformation,0x3104B525,0x2016,0x442d,0x96,0x96,0x12,0x75,0xDE,0x97,0x87,0x78); 77 | 78 | 79 | MIDL_DEFINE_GUID(IID, IID_IOPCCommandExecution,0x3104B526,0x2016,0x442d,0x96,0x96,0x12,0x75,0xDE,0x97,0x87,0x78); 80 | 81 | 82 | MIDL_DEFINE_GUID(IID, LIBID_OpcCmdLib,0x3104B520,0x2016,0x442d,0x96,0x96,0x12,0x75,0xDE,0x97,0x87,0x78); 83 | 84 | #undef MIDL_DEFINE_GUID 85 | 86 | #ifdef __cplusplus 87 | } 88 | #endif 89 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /include/Classic/inc64/OpcDx_i.c: -------------------------------------------------------------------------------- 1 | 2 | 3 | /* this ALWAYS GENERATED file contains the IIDs and CLSIDs */ 4 | 5 | /* link this file in with the server and any clients */ 6 | 7 | 8 | /* File created by MIDL compiler version 7.00.0500 */ 9 | /* at Mon Jan 17 19:13:42 2011 10 | */ 11 | /* Compiler settings for .\OpcDx.idl: 12 | Oicf, W1, Zp8, env=Win64 (32b run) 13 | protocol : dce , ms_ext, c_ext, robust 14 | error checks: allocation ref bounds_check enum stub_data 15 | VC __declspec() decoration level: 16 | __declspec(uuid()), __declspec(selectany), __declspec(novtable) 17 | DECLSPEC_UUID(), MIDL_INTERFACE() 18 | */ 19 | //@@MIDL_FILE_HEADING( ) 20 | 21 | #pragma warning( disable: 4049 ) /* more than 64k source lines */ 22 | 23 | 24 | #ifdef __cplusplus 25 | extern "C"{ 26 | #endif 27 | 28 | 29 | #include 30 | #include 31 | 32 | #ifdef _MIDL_USE_GUIDDEF_ 33 | 34 | #ifndef INITGUID 35 | #define INITGUID 36 | #include 37 | #undef INITGUID 38 | #else 39 | #include 40 | #endif 41 | 42 | #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ 43 | DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) 44 | 45 | #else // !_MIDL_USE_GUIDDEF_ 46 | 47 | #ifndef __IID_DEFINED__ 48 | #define __IID_DEFINED__ 49 | 50 | typedef struct _IID 51 | { 52 | unsigned long x; 53 | unsigned short s1; 54 | unsigned short s2; 55 | unsigned char c[8]; 56 | } IID; 57 | 58 | #endif // __IID_DEFINED__ 59 | 60 | #ifndef CLSID_DEFINED 61 | #define CLSID_DEFINED 62 | typedef IID CLSID; 63 | #endif // CLSID_DEFINED 64 | 65 | #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ 66 | const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}} 67 | 68 | #endif !_MIDL_USE_GUIDDEF_ 69 | 70 | MIDL_DEFINE_GUID(IID, IID_CATID_OPCDXServer10,0xA0C85BB8,0x4161,0x4fd6,0x86,0x55,0xBB,0x58,0x46,0x01,0xC9,0xE0); 71 | 72 | 73 | MIDL_DEFINE_GUID(IID, IID_IOPCConfiguration,0xC130D281,0xF4AA,0x4779,0x88,0x46,0xC2,0xC4,0xCB,0x44,0x4F,0x2A); 74 | 75 | 76 | MIDL_DEFINE_GUID(IID, LIBID_OpcDxLib,0x3CA18B30,0x1088,0x47d5,0x89,0x52,0x0B,0x12,0xB0,0x27,0xED,0x32); 77 | 78 | #undef MIDL_DEFINE_GUID 79 | 80 | #ifdef __cplusplus 81 | } 82 | #endif 83 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /include/Classic/inc64/OpcEnum.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | /* this ALWAYS GENERATED file contains the definitions for the interfaces */ 4 | 5 | 6 | /* File created by MIDL compiler version 7.00.0500 */ 7 | /* at Mon Jan 17 19:41:21 2011 8 | */ 9 | /* Compiler settings for .\OpcEnum.idl: 10 | Oicf, W1, Zp8, env=Win32 (32b run) 11 | protocol : dce , ms_ext, c_ext, robust 12 | error checks: allocation ref bounds_check enum stub_data 13 | VC __declspec() decoration level: 14 | __declspec(uuid()), __declspec(selectany), __declspec(novtable) 15 | DECLSPEC_UUID(), MIDL_INTERFACE() 16 | */ 17 | //@@MIDL_FILE_HEADING( ) 18 | 19 | #pragma warning( disable: 4049 ) /* more than 64k source lines */ 20 | 21 | 22 | /* verify that the version is high enough to compile this file*/ 23 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ 24 | #define __REQUIRED_RPCNDR_H_VERSION__ 475 25 | #endif 26 | 27 | #include "rpc.h" 28 | #include "rpcndr.h" 29 | 30 | #ifndef __RPCNDR_H_VERSION__ 31 | #error this stub requires an updated version of 32 | #endif // __RPCNDR_H_VERSION__ 33 | 34 | 35 | #ifndef __OpcEnum_h__ 36 | #define __OpcEnum_h__ 37 | 38 | #if defined(_MSC_VER) && (_MSC_VER >= 1020) 39 | #pragma once 40 | #endif 41 | 42 | /* Forward Declarations */ 43 | 44 | #ifndef __OpcServerList_FWD_DEFINED__ 45 | #define __OpcServerList_FWD_DEFINED__ 46 | 47 | #ifdef __cplusplus 48 | typedef class OpcServerList OpcServerList; 49 | #else 50 | typedef struct OpcServerList OpcServerList; 51 | #endif /* __cplusplus */ 52 | 53 | #endif /* __OpcServerList_FWD_DEFINED__ */ 54 | 55 | 56 | /* header files for imported files */ 57 | #include "opccomn.h" 58 | 59 | #ifdef __cplusplus 60 | extern "C"{ 61 | #endif 62 | 63 | 64 | 65 | #ifndef __OpcEnumLib_LIBRARY_DEFINED__ 66 | #define __OpcEnumLib_LIBRARY_DEFINED__ 67 | 68 | /* library OpcEnumLib */ 69 | /* [helpstring][version][uuid] */ 70 | 71 | 72 | EXTERN_C const IID LIBID_OpcEnumLib; 73 | 74 | EXTERN_C const CLSID CLSID_OpcServerList; 75 | 76 | #ifdef __cplusplus 77 | 78 | class DECLSPEC_UUID("13486D51-4821-11D2-A494-3CB306C10000") 79 | OpcServerList; 80 | #endif 81 | #endif /* __OpcEnumLib_LIBRARY_DEFINED__ */ 82 | 83 | /* Additional Prototypes for ALL interfaces */ 84 | 85 | /* end of Additional Prototypes */ 86 | 87 | #ifdef __cplusplus 88 | } 89 | #endif 90 | 91 | #endif 92 | 93 | 94 | -------------------------------------------------------------------------------- /include/Classic/inc64/OpcEnum_i.c: -------------------------------------------------------------------------------- 1 | 2 | 3 | /* this ALWAYS GENERATED file contains the IIDs and CLSIDs */ 4 | 5 | /* link this file in with the server and any clients */ 6 | 7 | 8 | /* File created by MIDL compiler version 7.00.0500 */ 9 | /* at Mon Jan 17 19:41:21 2011 10 | */ 11 | /* Compiler settings for .\OpcEnum.idl: 12 | Oicf, W1, Zp8, env=Win32 (32b run) 13 | protocol : dce , ms_ext, c_ext, robust 14 | error checks: allocation ref bounds_check enum stub_data 15 | VC __declspec() decoration level: 16 | __declspec(uuid()), __declspec(selectany), __declspec(novtable) 17 | DECLSPEC_UUID(), MIDL_INTERFACE() 18 | */ 19 | //@@MIDL_FILE_HEADING( ) 20 | 21 | #pragma warning( disable: 4049 ) /* more than 64k source lines */ 22 | 23 | 24 | #ifdef __cplusplus 25 | extern "C"{ 26 | #endif 27 | 28 | 29 | #include 30 | #include 31 | 32 | #ifdef _MIDL_USE_GUIDDEF_ 33 | 34 | #ifndef INITGUID 35 | #define INITGUID 36 | #include 37 | #undef INITGUID 38 | #else 39 | #include 40 | #endif 41 | 42 | #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ 43 | DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) 44 | 45 | #else // !_MIDL_USE_GUIDDEF_ 46 | 47 | #ifndef __IID_DEFINED__ 48 | #define __IID_DEFINED__ 49 | 50 | typedef struct _IID 51 | { 52 | unsigned long x; 53 | unsigned short s1; 54 | unsigned short s2; 55 | unsigned char c[8]; 56 | } IID; 57 | 58 | #endif // __IID_DEFINED__ 59 | 60 | #ifndef CLSID_DEFINED 61 | #define CLSID_DEFINED 62 | typedef IID CLSID; 63 | #endif // CLSID_DEFINED 64 | 65 | #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ 66 | const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}} 67 | 68 | #endif !_MIDL_USE_GUIDDEF_ 69 | 70 | MIDL_DEFINE_GUID(IID, LIBID_OpcEnumLib,0x13486D43,0x4821,0x11D2,0xA4,0x94,0x3C,0xB3,0x06,0xC1,0x00,0x00); 71 | 72 | 73 | MIDL_DEFINE_GUID(CLSID, CLSID_OpcServerList,0x13486D51,0x4821,0x11D2,0xA4,0x94,0x3C,0xB3,0x06,0xC1,0x00,0x00); 74 | 75 | #undef MIDL_DEFINE_GUID 76 | 77 | #ifdef __cplusplus 78 | } 79 | #endif 80 | 81 | 82 | 83 | -------------------------------------------------------------------------------- /include/Classic/inc64/OpcSec_i.c: -------------------------------------------------------------------------------- 1 | 2 | 3 | /* this ALWAYS GENERATED file contains the IIDs and CLSIDs */ 4 | 5 | /* link this file in with the server and any clients */ 6 | 7 | 8 | /* File created by MIDL compiler version 7.00.0500 */ 9 | /* at Mon Jan 17 19:13:34 2011 10 | */ 11 | /* Compiler settings for .\OpcSec.idl: 12 | Oicf, W1, Zp8, env=Win64 (32b run) 13 | protocol : dce , ms_ext, c_ext, robust 14 | error checks: allocation ref bounds_check enum stub_data 15 | VC __declspec() decoration level: 16 | __declspec(uuid()), __declspec(selectany), __declspec(novtable) 17 | DECLSPEC_UUID(), MIDL_INTERFACE() 18 | */ 19 | //@@MIDL_FILE_HEADING( ) 20 | 21 | #pragma warning( disable: 4049 ) /* more than 64k source lines */ 22 | 23 | 24 | #ifdef __cplusplus 25 | extern "C"{ 26 | #endif 27 | 28 | 29 | #include 30 | #include 31 | 32 | #ifdef _MIDL_USE_GUIDDEF_ 33 | 34 | #ifndef INITGUID 35 | #define INITGUID 36 | #include 37 | #undef INITGUID 38 | #else 39 | #include 40 | #endif 41 | 42 | #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ 43 | DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) 44 | 45 | #else // !_MIDL_USE_GUIDDEF_ 46 | 47 | #ifndef __IID_DEFINED__ 48 | #define __IID_DEFINED__ 49 | 50 | typedef struct _IID 51 | { 52 | unsigned long x; 53 | unsigned short s1; 54 | unsigned short s2; 55 | unsigned char c[8]; 56 | } IID; 57 | 58 | #endif // __IID_DEFINED__ 59 | 60 | #ifndef CLSID_DEFINED 61 | #define CLSID_DEFINED 62 | typedef IID CLSID; 63 | #endif // CLSID_DEFINED 64 | 65 | #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ 66 | const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}} 67 | 68 | #endif !_MIDL_USE_GUIDDEF_ 69 | 70 | MIDL_DEFINE_GUID(IID, IID_IOPCSecurityNT,0x7AA83A01,0x6C77,0x11d3,0x84,0xF9,0x00,0x00,0x86,0x30,0xA3,0x8B); 71 | 72 | 73 | MIDL_DEFINE_GUID(IID, IID_IOPCSecurityPrivate,0x7AA83A02,0x6C77,0x11d3,0x84,0xF9,0x00,0x00,0x86,0x30,0xA3,0x8B); 74 | 75 | 76 | MIDL_DEFINE_GUID(IID, LIBID_OPCSEC,0x7AA83AFF,0x6C77,0x11d3,0x84,0xF9,0x00,0x00,0x86,0x30,0xA3,0x8B); 77 | 78 | #undef MIDL_DEFINE_GUID 79 | 80 | #ifdef __cplusplus 81 | } 82 | #endif 83 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /include/Classic/inc64/opcSec.idl: -------------------------------------------------------------------------------- 1 | //============================================================================== 2 | // TITLE: OpcSec.idl 3 | // 4 | // CONTENTS: 5 | // 6 | // Interface declarations for the OPC Security specifications. 7 | // 8 | // (c) Copyright 1999-2003 The OPC Foundation 9 | // ALL RIGHTS RESERVED. 10 | // 11 | // DISCLAIMER: 12 | // This code is provided by the OPC Foundation solely to assist in 13 | // understanding and use of the appropriate OPC Specification(s) and may be 14 | // used as set forth in the License Grant section of the OPC Specification. 15 | // This code is provided as-is and without warranty or support of any sort 16 | // and is subject to the Warranty and Liability Disclaimers which appear 17 | // in the printed OPC Specification. 18 | // 19 | // MODIFICATION LOG: 20 | // 21 | // Date By Notes 22 | // ---------- --- ----- 23 | // 2000/08/03 DJ Finalized for spec release 1.00 24 | // 2003/01/06 RSA Fixed formatting to comply with coding guidelines. 25 | // 26 | 27 | import "oaidl.idl"; 28 | 29 | //============================================================================== 30 | // IOPCSecurityNT 31 | 32 | [ 33 | object, 34 | uuid(7AA83A01-6C77-11d3-84F9-00008630A38B), 35 | pointer_default(unique) 36 | ] 37 | interface IOPCSecurityNT : IUnknown 38 | { 39 | HRESULT IsAvailableNT( 40 | [out] BOOL* pbAvailable 41 | ); 42 | 43 | HRESULT QueryMinImpersonationLevel( 44 | [out] DWORD* pdwMinImpLevel 45 | ); 46 | 47 | HRESULT ChangeUser( 48 | void 49 | ); 50 | }; 51 | 52 | //============================================================================== 53 | // IOPCSecurityPrivate 54 | 55 | [ 56 | object, 57 | uuid(7AA83A02-6C77-11d3-84F9-00008630A38B), 58 | pointer_default(unique) 59 | ] 60 | interface IOPCSecurityPrivate : IUnknown 61 | { 62 | HRESULT IsAvailablePriv( 63 | [out] BOOL* pbAvailable 64 | ); 65 | 66 | HRESULT Logon( 67 | [in, string] LPCWSTR szUserID, 68 | [in, string] LPCWSTR szPassword 69 | ); 70 | 71 | HRESULT Logoff( 72 | void 73 | ); 74 | }; 75 | 76 | //============================================================================== 77 | // Type Library 78 | 79 | [ 80 | uuid(7AA83AFF-6C77-11d3-84F9-00008630A38B), 81 | version(1.00), 82 | helpstring("OPC Security 1.00 Type Library") 83 | ] 84 | library OPCSEC 85 | { 86 | importlib("stdole32.tlb"); 87 | importlib("stdole2.tlb"); 88 | 89 | interface IOPCSecurityNT; 90 | interface IOPCSecurityPrivate; 91 | }; 92 | 93 | -------------------------------------------------------------------------------- /include/Classic/inc64/opccomn_i.c: -------------------------------------------------------------------------------- 1 | 2 | 3 | /* this ALWAYS GENERATED file contains the IIDs and CLSIDs */ 4 | 5 | /* link this file in with the server and any clients */ 6 | 7 | 8 | /* File created by MIDL compiler version 7.00.0500 */ 9 | /* at Mon Jan 17 19:13:34 2011 10 | */ 11 | /* Compiler settings for .\opccomn.idl: 12 | Oicf, W1, Zp8, env=Win64 (32b run) 13 | protocol : dce , ms_ext, c_ext, robust 14 | error checks: allocation ref bounds_check enum stub_data 15 | VC __declspec() decoration level: 16 | __declspec(uuid()), __declspec(selectany), __declspec(novtable) 17 | DECLSPEC_UUID(), MIDL_INTERFACE() 18 | */ 19 | //@@MIDL_FILE_HEADING( ) 20 | 21 | #pragma warning( disable: 4049 ) /* more than 64k source lines */ 22 | 23 | 24 | #ifdef __cplusplus 25 | extern "C"{ 26 | #endif 27 | 28 | 29 | #include 30 | #include 31 | 32 | #ifdef _MIDL_USE_GUIDDEF_ 33 | 34 | #ifndef INITGUID 35 | #define INITGUID 36 | #include 37 | #undef INITGUID 38 | #else 39 | #include 40 | #endif 41 | 42 | #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ 43 | DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) 44 | 45 | #else // !_MIDL_USE_GUIDDEF_ 46 | 47 | #ifndef __IID_DEFINED__ 48 | #define __IID_DEFINED__ 49 | 50 | typedef struct _IID 51 | { 52 | unsigned long x; 53 | unsigned short s1; 54 | unsigned short s2; 55 | unsigned char c[8]; 56 | } IID; 57 | 58 | #endif // __IID_DEFINED__ 59 | 60 | #ifndef CLSID_DEFINED 61 | #define CLSID_DEFINED 62 | typedef IID CLSID; 63 | #endif // CLSID_DEFINED 64 | 65 | #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ 66 | const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}} 67 | 68 | #endif !_MIDL_USE_GUIDDEF_ 69 | 70 | MIDL_DEFINE_GUID(IID, IID_IOPCShutdown,0xF31DFDE1,0x07B6,0x11d2,0xB2,0xD8,0x00,0x60,0x08,0x3B,0xA1,0xFB); 71 | 72 | 73 | MIDL_DEFINE_GUID(IID, IID_IOPCCommon,0xF31DFDE2,0x07B6,0x11d2,0xB2,0xD8,0x00,0x60,0x08,0x3B,0xA1,0xFB); 74 | 75 | 76 | MIDL_DEFINE_GUID(IID, IID_IOPCServerList,0x13486D50,0x4821,0x11D2,0xA4,0x94,0x3C,0xB3,0x06,0xC1,0x00,0x00); 77 | 78 | 79 | MIDL_DEFINE_GUID(IID, IID_IOPCEnumGUID,0x55C382C8,0x21C7,0x4e88,0x96,0xC1,0xBE,0xCF,0xB1,0xE3,0xF4,0x83); 80 | 81 | 82 | MIDL_DEFINE_GUID(IID, IID_IOPCServerList2,0x9DD0B56C,0xAD9E,0x43ee,0x83,0x05,0x48,0x7F,0x31,0x88,0xBF,0x7A); 83 | 84 | 85 | MIDL_DEFINE_GUID(IID, LIBID_OPCCOMN,0xB28EEDB1,0xAC6F,0x11d1,0x84,0xD5,0x00,0x60,0x8C,0xB8,0xA7,0xE9); 86 | 87 | #undef MIDL_DEFINE_GUID 88 | 89 | #ifdef __cplusplus 90 | } 91 | #endif 92 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /include/Classic/inc64/opcda.idl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/include/Classic/inc64/opcda.idl -------------------------------------------------------------------------------- /include/DaAeHdaClient/ClientBase.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://www.technosoftware.com 4 | * 5 | * The source code in this file is covered under a dual-license scenario: 6 | * - Owner of a purchased license: SCLA 1.0 7 | * - GPL V3: everybody else 8 | * 9 | * SCLA license terms accompanied with this source code. 10 | * See SCLA 1.0: https://technosoftware.com/license/Source_Code_License_Agreement.pdf 11 | * 12 | * GNU General Public License as published by the Free Software Foundation; 13 | * version 3 of the License are accompanied with this source code. 14 | * See https://technosoftware.com/license/GPLv3License.txt 15 | * 16 | * This source code is distributed in the hope that it will be useful, but 17 | * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 18 | * or FITNESS FOR A PARTICULAR PURPOSE. 19 | */ 20 | 21 | #pragma once 22 | 23 | #ifdef _MSC_VER 24 | #ifdef TECHNOSOFTWARE_EXPORTS 25 | #define TECHNOSOFTWARE_API __declspec(dllexport) 26 | #else 27 | #define TECHNOSOFTWARE_API __declspec(dllimport) 28 | #endif 29 | #ifdef OPCCLIENTSDK_EXPORTS 30 | #define OPCCLIENTSDK_API __declspec(dllexport) 31 | #else 32 | #define OPCCLIENTSDK_API __declspec(dllimport) 33 | #endif 34 | #else 35 | #define TECHNOSOFTWARE_API 36 | #define OPCCLIENTSDK_API 37 | #endif -------------------------------------------------------------------------------- /include/DaAeHdaClient/Hda/HdaItem.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://www.technosoftware.com 4 | * 5 | * The source code in this file is covered under a dual-license scenario: 6 | * - Owner of a purchased license: SCLA 1.0 7 | * - GPL V3: everybody else 8 | * 9 | * SCLA license terms accompanied with this source code. 10 | * See SCLA 1.0: https://technosoftware.com/license/Source_Code_License_Agreement.pdf 11 | * 12 | * GNU General Public License as published by the Free Software Foundation; 13 | * version 3 of the License are accompanied with this source code. 14 | * See https://technosoftware.com/license/GPLv3License.txt 15 | * 16 | * This source code is distributed in the hope that it will be useful, but 17 | * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 18 | * or FITNESS FOR A PARTICULAR PURPOSE. 19 | */ 20 | 21 | #ifndef TECHNOSOFTWARE_HDAITEM_H 22 | #define TECHNOSOFTWARE_HDAITEM_H 23 | 24 | #include "Base/Handles.h" 25 | 26 | namespace Technosoftware 27 | { 28 | namespace DaAeHdaClient 29 | { 30 | /** 31 | * @struct HdaItem 32 | * 33 | * @brief Defines an alias representing the tag hda item. 34 | * 35 | * @ingroup HDAClient 36 | */ 37 | 38 | typedef struct HdaItem 39 | { 40 | /** @brief Handle of the client. */ 41 | Base::ClientHandle ClientHandle; 42 | /** @brief The aggregate. */ 43 | DWORD Aggregate; 44 | /** @brief Number of TimeStamps, Qualities and DataValues. */ 45 | DWORD Count; 46 | /** @brief The time stamps. */ 47 | FILETIME* TimeStamps; 48 | /** @brief The qualities. */ 49 | DWORD* Qualities; 50 | /** @brief The data values. */ 51 | VARIANT* DataValues; 52 | } HdaItem; 53 | 54 | } 55 | } 56 | 57 | #endif /* TECHNOSOFTWARE_HDAITEM_H */ 58 | -------------------------------------------------------------------------------- /include/DaAeHdaClient/OpcClientSdk.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://www.technosoftware.com 4 | * 5 | * The source code in this file is covered under a dual-license scenario: 6 | * - Owner of a purchased license: SCLA 1.0 7 | * - GPL V3: everybody else 8 | * 9 | * SCLA license terms accompanied with this source code. 10 | * See SCLA 1.0: https://technosoftware.com/license/Source_Code_License_Agreement.pdf 11 | * 12 | * GNU General Public License as published by the Free Software Foundation; 13 | * version 3 of the License are accompanied with this source code. 14 | * See https://technosoftware.com/license/GPLv3License.txt 15 | * 16 | * This source code is distributed in the hope that it will be useful, but 17 | * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 18 | * or FITNESS FOR A PARTICULAR PURPOSE. 19 | */ 20 | 21 | #ifndef __OPCCLIENTSDK_H 22 | #define __OPCCLIENTSDK_H 23 | 24 | #define _SDK_VERSION 0x0100 // Version 1.0.0 25 | 26 | #include "Base/Status.h" 27 | 28 | #include "ClientBase.h" 29 | 30 | #include "Da\DaServer.h" 31 | #include "Da\DaBrowser.h" 32 | #include "Da\DaGroup.h" 33 | #include "Da\DaItem.h" 34 | 35 | #ifdef _WIN64 // Common macros and definitions for OPC Alarm & Events 36 | #include "Classic/inc64/opcaedef.h" 37 | #else 38 | #include "Classic/inc32/opcaedef.h" 39 | #endif // _WIN64 40 | 41 | #include "Ae\AeServer.h" 42 | #include "Ae\AeSubscription.h" 43 | #include "Ae\AeEvent.h" 44 | 45 | #include "Hda\HdaServer.h" 46 | #include "Hda\HdaItem.h" 47 | 48 | 49 | #endif // __OPCCLIENTSDK_H 50 | -------------------------------------------------------------------------------- /licenses/MITLicense.txt: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2011-2021 Technosoftware GmbH 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /licenses/Source_Code_License_Agreement.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/licenses/Source_Code_License_Agreement.pdf -------------------------------------------------------------------------------- /src/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2011-2018 Technosoftware GmbH. All rights reserved 3 | # Web: https://technosoftware.com 4 | # 5 | # Purpose: 6 | # 7 | # This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 8 | # WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 9 | # 10 | project(Technosoftware) 11 | 12 | 13 | # Specify a minimum version for CMake 14 | cmake_minimum_required(VERSION 2.8) 15 | 16 | # Provide the path which contains CMake modules 17 | set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/../cmake") 18 | 19 | # Load some functions defined by Technosoftware 20 | include(Technosoftware) 21 | 22 | # Set the build type to release 23 | # setBuildTypeToRelease() 24 | 25 | # Set the Technosoftware compiler flags 26 | setTechnosoftwareCompilerFlags() 27 | 28 | # Set linker restrictions 29 | setTechnosoftwareLinkerRestrictions() 30 | 31 | # Include the src/ directory. 32 | include_directories("${PROJECT_SOURCE_DIR}/../include") 33 | include_directories("${PROJECT_SOURCE_DIR}") 34 | include_directories("${PROJECT_SOURCE_DIR}/Technosoftware") 35 | 36 | # add the Technosoftware subdirectory 37 | add_subdirectory(${PROJECT_SOURCE_DIR}/Technosoftware) 38 | 39 | # set the output directories 40 | setTechnosoftwareOutputDirectories() 41 | 42 | # Print the include dirs 43 | message(STATUS "The following directories are included:") 44 | get_property(dirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES) 45 | foreach(dir ${dirs}) 46 | message(STATUS " * ${dir}") 47 | endforeach() -------------------------------------------------------------------------------- /src/Technosoftware/Base/ByteOrder.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * Definitions of converters between big-endian and little-endian 7 | * integers of various sizes. 8 | * 9 | * Based on: POCO C++ Foundation Library 10 | * Copyright (c) 2005-2007, Applied Informatics Software Engineering GmbH. 11 | * and Contributors. 12 | * 13 | * The source code in this file is covered under a dual-license scenario: 14 | * - Owner of a purchased license: SCLA 1.0 15 | * - GPL V3: everybody else 16 | * 17 | * SCLA license terms accompanied with this source code. 18 | * See SCLA 1.0: https://technosoftware.com/license/Source_Code_License_Agreement.pdf 19 | * 20 | * GNU General Public License as published by the Free Software Foundation; 21 | * version 3 of the License are accompanied with this source code. 22 | * See https://technosoftware.com/license/GPLv3License.txt 23 | * 24 | * This source code is distributed in the hope that it will be useful, but 25 | * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 26 | * or FITNESS FOR A PARTICULAR PURPOSE. 27 | */ 28 | 29 | #include "Base/ByteOrder.h" 30 | -------------------------------------------------------------------------------- /src/Technosoftware/Base/FPEnvironment_C99.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * Definitions of class FPEnvironmentImpl for C99. 7 | * 8 | * Based on: POCO C++ Foundation Library 9 | * Copyright (c) 2005-2007, Applied Informatics Software Engineering GmbH. 10 | * and Contributors. 11 | * 12 | * The Software is subject to the Technosoftware GmbH Software License Agreement, 13 | * which can be found here: 14 | * https://technosoftware.com/documents/Technosoftware_SLA.pdf 15 | */ 16 | 17 | 18 | #include "Base/FPEnvironment_C99.h" 19 | 20 | 21 | namespace Technosoftware 22 | { 23 | namespace Base 24 | { 25 | 26 | 27 | FPEnvironmentImpl::FPEnvironmentImpl() 28 | { 29 | fegetenv(&_env); 30 | } 31 | 32 | 33 | FPEnvironmentImpl::FPEnvironmentImpl(const FPEnvironmentImpl& env) 34 | { 35 | _env = env._env; 36 | } 37 | 38 | 39 | FPEnvironmentImpl::~FPEnvironmentImpl() 40 | { 41 | fesetenv(&_env); 42 | } 43 | 44 | 45 | FPEnvironmentImpl& FPEnvironmentImpl::operator = (const FPEnvironmentImpl& env) 46 | { 47 | _env = env._env; 48 | return *this; 49 | } 50 | 51 | 52 | void FPEnvironmentImpl::KeepCurrentImpl() 53 | { 54 | fegetenv(&_env); 55 | } 56 | 57 | 58 | void FPEnvironmentImpl::ClearFlagsImpl() 59 | { 60 | feclearexcept(FE_ALL_EXCEPT); 61 | } 62 | 63 | 64 | bool FPEnvironmentImpl::IsFlagImpl(FlagImpl flag) 65 | { 66 | return fetestexcept(flag) != 0; 67 | } 68 | 69 | 70 | void FPEnvironmentImpl::SetRoundingModeImpl(RoundingModeImpl mode) 71 | { 72 | fesetround(mode); 73 | } 74 | 75 | 76 | FPEnvironmentImpl::RoundingModeImpl FPEnvironmentImpl::GetRoundingModeImpl() 77 | { 78 | return (RoundingModeImpl) fegetround(); 79 | } 80 | 81 | 82 | long double FPEnvironmentImpl::CopySignImpl(long double target, long double source) 83 | { 84 | return (source >= 0 && target >= 0) || (source < 0 && target < 0) ? target : -target; 85 | } 86 | 87 | } 88 | } 89 | -------------------------------------------------------------------------------- /src/Technosoftware/Base/FPEnvironment_DUMMY.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * Definition of class FPEnvironmentImpl for platforms that do not 7 | * support IEEE 754 extensions. 8 | * 9 | * Based on: POCO C++ Foundation Library 10 | * Copyright (c) 2005-2007, Applied Informatics Software Engineering GmbH. 11 | * and Contributors. 12 | * 13 | * The Software is subject to the Technosoftware GmbH Software License Agreement, 14 | * which can be found here: 15 | * https://technosoftware.com/documents/Technosoftware_SLA.pdf 16 | */ 17 | 18 | #include "Base/FPEnvironment_DUMMY.h" 19 | 20 | namespace Technosoftware 21 | { 22 | namespace Base 23 | { 24 | 25 | 26 | FPEnvironmentImpl::RoundingModeImpl FPEnvironmentImpl::_roundingMode; 27 | 28 | 29 | FPEnvironmentImpl::FPEnvironmentImpl() 30 | { 31 | } 32 | 33 | 34 | FPEnvironmentImpl::FPEnvironmentImpl(const FPEnvironmentImpl& env) 35 | { 36 | } 37 | 38 | 39 | FPEnvironmentImpl::~FPEnvironmentImpl() 40 | { 41 | } 42 | 43 | 44 | FPEnvironmentImpl& FPEnvironmentImpl::operator = (const FPEnvironmentImpl& env) 45 | { 46 | return *this; 47 | } 48 | 49 | 50 | void FPEnvironmentImpl::KeepCurrentImpl() 51 | { 52 | } 53 | 54 | 55 | void FPEnvironmentImpl::ClearFlagsImpl() 56 | { 57 | } 58 | 59 | 60 | bool FPEnvironmentImpl::IsFlagImpl(FlagImpl flag) 61 | { 62 | return false; 63 | } 64 | 65 | 66 | void FPEnvironmentImpl::SetRoundingModeImpl(RoundingModeImpl mode) 67 | { 68 | _roundingMode = mode; 69 | } 70 | 71 | 72 | FPEnvironmentImpl::RoundingModeImpl FPEnvironmentImpl::GetRoundingModeImpl() 73 | { 74 | return _roundingMode; 75 | } 76 | 77 | 78 | long double FPEnvironmentImpl::CopySignImpl(long double target, long double source) 79 | { 80 | return (source >= 0 && target >= 0) || (source < 0 && target < 0) ? target : -target; 81 | } 82 | 83 | } 84 | } 85 | -------------------------------------------------------------------------------- /src/Technosoftware/Base/FPEnvironment_WIN32.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * Definitions of class FPEnvironmentImpl for WIN32. 7 | * 8 | * Based on: POCO C++ Foundation Library 9 | * Copyright (c) 2005-2007, Applied Informatics Software Engineering GmbH. 10 | * and Contributors. 11 | * 12 | * The Software is subject to the Technosoftware GmbH Software License Agreement, 13 | * which can be found here: 14 | * https://technosoftware.com/documents/Technosoftware_SLA.pdf 15 | */ 16 | 17 | #include "Base/FPEnvironment_WIN32.h" 18 | 19 | namespace Technosoftware 20 | { 21 | namespace Base 22 | { 23 | 24 | 25 | FPEnvironmentImpl::FPEnvironmentImpl() 26 | { 27 | _env = _controlfp(0, 0); 28 | } 29 | 30 | 31 | FPEnvironmentImpl::FPEnvironmentImpl(const FPEnvironmentImpl& env) 32 | { 33 | _env = env._env; 34 | } 35 | 36 | 37 | FPEnvironmentImpl::~FPEnvironmentImpl() 38 | { 39 | _controlfp(_env, _MCW_RC); 40 | } 41 | 42 | 43 | FPEnvironmentImpl& FPEnvironmentImpl::operator = (const FPEnvironmentImpl& env) 44 | { 45 | _env = env._env; 46 | return *this; 47 | } 48 | 49 | 50 | void FPEnvironmentImpl::KeepCurrentImpl() 51 | { 52 | _env = _controlfp(0, 0); 53 | } 54 | 55 | 56 | void FPEnvironmentImpl::ClearFlagsImpl() 57 | { 58 | _clearfp(); 59 | } 60 | 61 | 62 | bool FPEnvironmentImpl::IsFlagImpl(FlagImpl flag) 63 | { 64 | return (_statusfp() & flag) != 0; 65 | } 66 | 67 | 68 | void FPEnvironmentImpl::SetRoundingModeImpl(RoundingModeImpl mode) 69 | { 70 | _controlfp(mode, _MCW_RC); 71 | } 72 | 73 | 74 | FPEnvironmentImpl::RoundingModeImpl FPEnvironmentImpl::GetRoundingModeImpl() 75 | { 76 | return RoundingModeImpl(_controlfp(0, 0) & _MCW_RC); 77 | } 78 | 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /src/Technosoftware/Base/Hash.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * Definition of the Hash class. 7 | * 8 | * Based on: POCO C++ Foundation Library 9 | * Copyright (c) 2005-2007, Applied Informatics Software Engineering GmbH. 10 | * and Contributors. 11 | * 12 | * The source code in this file is covered under a dual-license scenario: 13 | * - Owner of a purchased license: SCLA 1.0 14 | * - GPL V3: everybody else 15 | * 16 | * SCLA license terms accompanied with this source code. 17 | * See SCLA 1.0: https://technosoftware.com/license/Source_Code_License_Agreement.pdf 18 | * 19 | * GNU General Public License as published by the Free Software Foundation; 20 | * version 3 of the License are accompanied with this source code. 21 | * See https://technosoftware.com/license/GPLv3License.txt 22 | * 23 | * This source code is distributed in the hope that it will be useful, but 24 | * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 25 | * or FITNESS FOR A PARTICULAR PURPOSE. 26 | */ 27 | 28 | #include "Base/Hash.h" 29 | 30 | namespace Technosoftware 31 | { 32 | namespace Base 33 | { 34 | std::size_t hash(const std::string& str) 35 | { 36 | std::size_t h = 0; 37 | std::string::const_iterator it = str.begin(); 38 | std::string::const_iterator end = str.end(); 39 | while (it != end) 40 | { 41 | h = h * 0xf4243 ^ *it++; 42 | } 43 | return h; 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /src/Technosoftware/Base/MemoryStream.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * Definition of MemoryStreamBuf, MemoryInputStream, MemoryOutputStream 7 | * 8 | * Based on: POCO C++ Foundation Library 9 | * Copyright (c) 2005-2007, Applied Informatics Software Engineering GmbH. 10 | * and Contributors. 11 | * 12 | * The source code in this file is covered under a dual-license scenario: 13 | * - Owner of a purchased license: SCLA 1.0 14 | * - GPL V3: everybody else 15 | * 16 | * SCLA license terms accompanied with this source code. 17 | * See SCLA 1.0: https://technosoftware.com/license/Source_Code_License_Agreement.pdf 18 | * 19 | * GNU General Public License as published by the Free Software Foundation; 20 | * version 3 of the License are accompanied with this source code. 21 | * See https://technosoftware.com/license/GPLv3License.txt 22 | * 23 | * This source code is distributed in the hope that it will be useful, but 24 | * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 25 | * or FITNESS FOR A PARTICULAR PURPOSE. 26 | */ 27 | 28 | #include "Base/MemoryStream.h" 29 | 30 | namespace Technosoftware 31 | { 32 | namespace Base 33 | { 34 | MemoryIOS::MemoryIOS(char* pBuffer, std::streamsize bufferSize) : 35 | streamBuffer_(pBuffer, bufferSize) 36 | { 37 | technosoftware_ios_init(&streamBuffer_); 38 | } 39 | 40 | MemoryIOS::~MemoryIOS() 41 | { 42 | } 43 | 44 | MemoryInputStream::MemoryInputStream(const char* pBuffer, std::streamsize bufferSize) : 45 | MemoryIOS(const_cast(pBuffer), bufferSize), 46 | std::istream(&streamBuffer_) 47 | { 48 | } 49 | 50 | MemoryInputStream::~MemoryInputStream() 51 | { 52 | } 53 | 54 | MemoryOutputStream::MemoryOutputStream(char* pBuffer, std::streamsize bufferSize) : 55 | MemoryIOS(pBuffer, bufferSize), 56 | std::ostream(&streamBuffer_) 57 | { 58 | } 59 | 60 | MemoryOutputStream::~MemoryOutputStream() 61 | { 62 | } 63 | } 64 | } -------------------------------------------------------------------------------- /src/Technosoftware/Base/Mutex.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * Definition of the Mutex and FastMutex classes. 7 | * 8 | * Based on: POCO C++ Foundation Library 9 | * Copyright (c) 2005-2007, Applied Informatics Software Engineering GmbH. 10 | * and Contributors. 11 | * 12 | * The source code in this file is covered under a dual-license scenario: 13 | * - Owner of a purchased license: SCLA 1.0 14 | * - GPL V3: everybody else 15 | * 16 | * SCLA license terms accompanied with this source code. 17 | * See SCLA 1.0: https://technosoftware.com/license/Source_Code_License_Agreement.pdf 18 | * 19 | * GNU General Public License as published by the Free Software Foundation; 20 | * version 3 of the License are accompanied with this source code. 21 | * See https://technosoftware.com/license/GPLv3License.txt 22 | * 23 | * This source code is distributed in the hope that it will be useful, but 24 | * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 25 | * or FITNESS FOR A PARTICULAR PURPOSE. 26 | */ 27 | 28 | #include "Base/Mutex.h" 29 | 30 | #if defined(TECHNOSOFTWARE_OS_FAMILY_WINDOWS) 31 | #if defined(_WIN32_WCE) 32 | #include "Mutex_WINCE.cpp" 33 | #else 34 | #include "Mutex_WIN32.cpp" 35 | #endif 36 | #elif defined(TECHNOSOFTWARE_VXWORKS) 37 | #include "Mutex_VX.cpp" 38 | #else 39 | #include "Mutex_POSIX.cpp" 40 | #endif 41 | 42 | namespace Technosoftware 43 | { 44 | namespace Base 45 | { 46 | Mutex::Mutex() 47 | { 48 | } 49 | 50 | 51 | Mutex::~Mutex() 52 | { 53 | } 54 | 55 | 56 | FastMutex::FastMutex() 57 | { 58 | } 59 | 60 | 61 | FastMutex::~FastMutex() 62 | { 63 | } 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /src/Technosoftware/Base/Mutex_VX.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * Definition of the MutexImpl and FastMutexImpl classes for VxWorks. 7 | * 8 | * Based on: POCO C++ Foundation Library 9 | * Copyright (c) 2005-2007, Applied Informatics Software Engineering GmbH. 10 | * and Contributors. 11 | * 12 | * The Software is subject to the Technosoftware GmbH Software License Agreement, 13 | * which can be found here: 14 | * https://technosoftware.com/documents/Technosoftware_SLA.pdf 15 | */ 16 | 17 | #include "Base/Mutex_VX.h" 18 | #include 19 | 20 | namespace Technosoftware 21 | { 22 | namespace Base 23 | { 24 | 25 | 26 | MutexImpl::MutexImpl() 27 | { 28 | _sem = semMCreate(SEM_INVERSION_SAFE | SEM_Q_PRIORITY); 29 | if (_sem == 0) 30 | throw Base::SystemException("cannot create mutex"); 31 | } 32 | 33 | 34 | MutexImpl::MutexImpl(bool fast) 35 | { 36 | if (fast) 37 | { 38 | _sem = semBCreate(SEM_Q_PRIORITY, SEM_FULL); 39 | } 40 | else 41 | { 42 | _sem = semMCreate(SEM_INVERSION_SAFE | SEM_Q_PRIORITY); 43 | } 44 | if (_sem == 0) 45 | throw Base::SystemException("cannot create mutex"); 46 | } 47 | 48 | 49 | MutexImpl::~MutexImpl() 50 | { 51 | semDelete(_sem); 52 | } 53 | 54 | 55 | bool MutexImpl::tryLockImpl(long milliseconds) 56 | { 57 | int ticks = milliseconds*sysClkRateGet() / 1000; 58 | return semTake(_sem, ticks) == OK; 59 | } 60 | 61 | 62 | FastMutexImpl::FastMutexImpl() : MutexImpl(true) 63 | { 64 | } 65 | 66 | 67 | FastMutexImpl::~FastMutexImpl() 68 | { 69 | } 70 | 71 | 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /src/Technosoftware/Base/Mutex_WIN32.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * Definition of the MutexImpl and FastMutexImpl classes for WIN32. 7 | * 8 | * Based on: POCO C++ Foundation Library 9 | * Copyright (c) 2005-2007, Applied Informatics Software Engineering GmbH. 10 | * and Contributors. 11 | * 12 | * The Software is subject to the Technosoftware GmbH Software License Agreement, 13 | * which can be found here: 14 | * https://technosoftware.com/documents/Technosoftware_SLA.pdf 15 | */ 16 | 17 | #include "Base/Mutex_WIN32.h" 18 | #include "Base/Timestamp.h" 19 | 20 | namespace Technosoftware 21 | { 22 | namespace Base 23 | { 24 | MutexImpl::MutexImpl() 25 | { 26 | // the fct has a boolean return value under WInnNt/2000/XP but not on Win98 27 | // the return only checks if the input address of &cs_ was valid, so it is safe to omit it 28 | InitializeCriticalSectionAndSpinCount(&cs_, 4000); 29 | } 30 | 31 | 32 | MutexImpl::~MutexImpl() 33 | { 34 | DeleteCriticalSection(&cs_); 35 | } 36 | 37 | 38 | bool MutexImpl::TryLockImpl(long milliseconds) 39 | { 40 | const int sleepMillis = 5; 41 | Timestamp now; 42 | Timestamp::TimeDiff diff(Timestamp::TimeDiff(milliseconds) * 1000); 43 | do 44 | { 45 | try 46 | { 47 | if (TryEnterCriticalSection(&cs_) == TRUE) 48 | return true; 49 | } 50 | catch (...) 51 | { 52 | throw SystemException("cannot lock mutex"); 53 | } 54 | Sleep(sleepMillis); 55 | } while (!now.IsElapsed(diff)); 56 | return false; 57 | } 58 | } 59 | } -------------------------------------------------------------------------------- /src/Technosoftware/Base/Mutex_WINCE.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * Definition of the MutexImpl and FastMutexImpl classes for WINDOWS CE. 7 | * 8 | * Based on: POCO C++ Foundation Library 9 | * Copyright (c) 2005-2007, Applied Informatics Software Engineering GmbH. 10 | * and Contributors. 11 | * 12 | * The Software is subject to the Technosoftware GmbH Software License Agreement, 13 | * which can be found here: 14 | * https://technosoftware.com/documents/Technosoftware_SLA.pdf 15 | */ 16 | 17 | #include "Base/Mutex_WINCE.h" 18 | 19 | namespace Technosoftware 20 | { 21 | namespace Base 22 | { 23 | 24 | 25 | MutexImpl::MutexImpl() 26 | { 27 | mutex_ = CreateMutexW(NULL, FALSE, NULL); 28 | if (!mutex_) throw SystemException("cannot create mutex"); 29 | } 30 | 31 | 32 | MutexImpl::~MutexImpl() 33 | { 34 | CloseHandle(mutex_); 35 | } 36 | 37 | 38 | void MutexImpl::lockImpl() 39 | { 40 | switch (WaitForSingleObject(mutex_, INFINITE)) 41 | { 42 | case WAIT_OBJECT_0: 43 | return; 44 | default: 45 | throw SystemException("cannot lock mutex"); 46 | } 47 | } 48 | 49 | 50 | bool MutexImpl::tryLockImpl() 51 | { 52 | switch (WaitForSingleObject(mutex_, 0)) 53 | { 54 | case WAIT_TIMEOUT: 55 | return false; 56 | case WAIT_OBJECT_0: 57 | return true; 58 | default: 59 | throw SystemException("cannot lock mutex"); 60 | } 61 | } 62 | 63 | 64 | bool MutexImpl::tryLockImpl(long milliseconds) 65 | { 66 | switch (WaitForSingleObject(mutex_, milliseconds + 1)) 67 | { 68 | case WAIT_TIMEOUT: 69 | return false; 70 | case WAIT_OBJECT_0: 71 | return true; 72 | default: 73 | throw SystemException("cannot lock mutex"); 74 | } 75 | } 76 | 77 | 78 | void MutexImpl::unlockImpl() 79 | { 80 | ReleaseMutex(mutex_); 81 | } 82 | 83 | 84 | } 85 | } 86 | -------------------------------------------------------------------------------- /src/Technosoftware/Base/RWLock.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * Definition of the RWLock class. 7 | * 8 | * Based on: POCO C++ Foundation Library 9 | * Copyright (c) 2005-2007, Applied Informatics Software Engineering GmbH. 10 | * and Contributors. 11 | * 12 | * The source code in this file is covered under a dual-license scenario: 13 | * - Owner of a purchased license: SCLA 1.0 14 | * - GPL V3: everybody else 15 | * 16 | * SCLA license terms accompanied with this source code. 17 | * See SCLA 1.0: https://technosoftware.com/license/Source_Code_License_Agreement.pdf 18 | * 19 | * GNU General Public License as published by the Free Software Foundation; 20 | * version 3 of the License are accompanied with this source code. 21 | * See https://technosoftware.com/license/GPLv3License.txt 22 | * 23 | * This source code is distributed in the hope that it will be useful, but 24 | * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 25 | * or FITNESS FOR A PARTICULAR PURPOSE. 26 | */ 27 | 28 | #include "Base/RWLock.h" 29 | 30 | #if defined(TECHNOSOFTWARE_OS_FAMILY_WINDOWS) 31 | #if defined(_WIN32_WCE) 32 | #include "RWLock_WINCE.cpp" 33 | #else 34 | #include "RWLock_WIN32.cpp" 35 | #endif 36 | #elif TECHNOSOFTWARE_OS == TECHNOSOFTWARE_OS_ANDROID 37 | #include "RWLock_Android.cpp" 38 | #elif defined(TECHNOSOFTWARE_VXWORKS) 39 | #include "RWLock_VX.cpp" 40 | #else 41 | #include "RWLock_POSIX.cpp" 42 | #endif 43 | 44 | 45 | namespace Technosoftware 46 | { 47 | namespace Base 48 | { 49 | RWLock::RWLock() 50 | { 51 | } 52 | 53 | RWLock::~RWLock() 54 | { 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /src/Technosoftware/Base/RWLock_Android.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * Definition of the RWLockImpl class for Android Threads. 7 | * 8 | * Based on: POCO C++ Foundation Library 9 | * Copyright (c) 2005-2007, Applied Informatics Software Engineering GmbH. 10 | * and Contributors. 11 | * 12 | * The Software is subject to the Technosoftware GmbH Software License Agreement, 13 | * which can be found here: 14 | * https://technosoftware.com/documents/Technosoftware_SLA.pdf 15 | */ 16 | 17 | #include "Base/RWLock_Android.h" 18 | 19 | namespace Technosoftware 20 | { 21 | namespace Base 22 | { 23 | 24 | 25 | RWLockImpl::RWLockImpl() 26 | { 27 | pthread_mutexattr_t attr; 28 | pthread_mutexattr_init(&attr); 29 | if (pthread_mutex_init(&mutex_, &attr)) 30 | { 31 | pthread_mutexattr_destroy(&attr); 32 | throw SystemException("cannot create mutex"); 33 | } 34 | pthread_mutexattr_destroy(&attr);} 35 | 36 | 37 | RWLockImpl::~RWLockImpl() 38 | { 39 | pthread_mutex_destroy(&mutex_); 40 | } 41 | 42 | 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /src/Technosoftware/Base/RWLock_POSIX.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * Definition of the RWLockImpl class for POSIX Threads. 7 | * 8 | * Based on: POCO C++ Foundation Library 9 | * Copyright (c) 2005-2007, Applied Informatics Software Engineering GmbH. 10 | * and Contributors. 11 | * 12 | * The Software is subject to the Technosoftware GmbH Software License Agreement, 13 | * which can be found here: 14 | * https://technosoftware.com/documents/Technosoftware_SLA.pdf 15 | */ 16 | 17 | 18 | #include "Base/RWLock_POSIX.h" 19 | 20 | 21 | namespace Technosoftware 22 | { 23 | namespace Base 24 | { 25 | 26 | 27 | RWLockImpl::RWLockImpl() 28 | { 29 | if (pthread_rwlock_init(&_rwl, NULL)) 30 | throw SystemException("cannot create reader/writer lock"); 31 | } 32 | 33 | 34 | RWLockImpl::~RWLockImpl() 35 | { 36 | pthread_rwlock_destroy(&_rwl); 37 | } 38 | 39 | 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/Technosoftware/Base/RWLock_VX.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * Definition of the RWLockImpl class for POSIX Threads (VxWorks). 7 | * 8 | * Based on: POCO C++ Foundation Library 9 | * Copyright (c) 2005-2007, Applied Informatics Software Engineering GmbH. 10 | * and Contributors. 11 | * 12 | * The Software is subject to the Technosoftware GmbH Software License Agreement, 13 | * which can be found here: 14 | * https://technosoftware.com/documents/Technosoftware_SLA.pdf 15 | */ 16 | 17 | 18 | #include "Base/RWLock_VX.h" 19 | #include 20 | 21 | 22 | namespace Technosoftware 23 | { 24 | namespace Base 25 | { 26 | 27 | 28 | RWLockImpl::RWLockImpl() 29 | { 30 | #if defined(TECHNOSOFTWARE_VXWORKS) 31 | // This workaround is for VxWorks 5.x where 32 | // pthread_mutex_init() won't properly initialize the mutex 33 | // resulting in a subsequent freeze in pthread_mutex_destroy() 34 | // if the mutex has never been used. 35 | std::memset(&mutex_, 0, sizeof(mutex_)); 36 | #endif 37 | pthread_mutexattr_t attr; 38 | pthread_mutexattr_init(&attr); 39 | if (pthread_mutex_init(&mutex_, &attr)) 40 | { 41 | pthread_mutexattr_destroy(&attr); 42 | throw SystemException("cannot create mutex"); 43 | } 44 | pthread_mutexattr_destroy(&attr); 45 | } 46 | 47 | 48 | RWLockImpl::~RWLockImpl() 49 | { 50 | pthread_mutex_destroy(&mutex_); 51 | } 52 | 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /src/Technosoftware/Base/ServerStates.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * 7 | * The Software is subject to the Technosoftware GmbH Software License Agreement, 8 | * which can be found here: 9 | * https://technosoftware.com/documents/Technosoftware_SLA.pdf 10 | */ 11 | 12 | #include "Base/ServerStates.h" 13 | 14 | namespace Technosoftware 15 | { 16 | namespace Base 17 | { 18 | namespace ServerStates 19 | { 20 | 21 | using namespace Technosoftware::Base::ServerStates; 22 | 23 | std::string ToString(ServerState state) 24 | { 25 | switch (state) 26 | { 27 | case Running: return "Running"; 28 | case Failed: return "Failed"; 29 | case NoConfiguration: return "NoConfiguration"; 30 | case Suspended: return "Suspended"; 31 | case Shutdown: return "Shutdown"; 32 | case Test: return "Test"; 33 | case CommunicationFault: return "CommunicationFault"; 34 | case Unknown: return "Unknown"; 35 | default: return "INVALID"; 36 | } 37 | } 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/Technosoftware/Base/Timezone.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * Definition of the Timezone class. 7 | * 8 | * Based on: POCO C++ Foundation Library 9 | * Copyright (c) 2005-2007, Applied Informatics Software Engineering GmbH. 10 | * and Contributors. 11 | * 12 | * The source code in this file is covered under a dual-license scenario: 13 | * - Owner of a purchased license: SCLA 1.0 14 | * - GPL V3: everybody else 15 | * 16 | * SCLA license terms accompanied with this source code. 17 | * See SCLA 1.0: https://technosoftware.com/license/Source_Code_License_Agreement.pdf 18 | * 19 | * GNU General Public License as published by the Free Software Foundation; 20 | * version 3 of the License are accompanied with this source code. 21 | * See https://technosoftware.com/license/GPLv3License.txt 22 | * 23 | * This source code is distributed in the hope that it will be useful, but 24 | * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 25 | * or FITNESS FOR A PARTICULAR PURPOSE. 26 | */ 27 | 28 | #include "Base/Timezone.h" 29 | #include 30 | 31 | 32 | #if defined(TECHNOSOFTWARE_OS_FAMILY_WINDOWS) 33 | #if defined(_WIN32_WCE) 34 | #include "Timezone_WINCE.cpp" 35 | #else 36 | #include "Timezone_WIN32.cpp" 37 | #endif 38 | #elif defined(TECHNOSOFTWARE_VXWORKS) 39 | #include "Timezone_VX.cpp" 40 | #else 41 | #include "Timezone_UNIX.cpp" 42 | #endif 43 | 44 | 45 | namespace Technosoftware 46 | { 47 | namespace Base 48 | { 49 | int Timezone::GetTimezoneDifference() 50 | { 51 | return GetUtcOffset() + GetDaylightSavingOffset(); 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /src/Technosoftware/Base/Timezone_VX.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * Definition of the Timezone class. 7 | * 8 | * Based on: POCO C++ Foundation Library 9 | * Copyright (c) 2005-2007, Applied Informatics Software Engineering GmbH. 10 | * and Contributors. 11 | * 12 | * The Software is subject to the Technosoftware GmbH Software License Agreement, 13 | * which can be found here: 14 | * https://technosoftware.com/documents/Technosoftware_SLA.pdf 15 | */ 16 | 17 | #include "Base/Timezone.h" 18 | #include "Base/Exception.h" 19 | #include "Base/Environment.h" 20 | #include 21 | 22 | 23 | namespace Technosoftware 24 | { 25 | namespace Base 26 | { 27 | 28 | 29 | int Timezone::GetUtcOffset() 30 | { 31 | std::time_t now = std::time(NULL); 32 | struct std::tm t; 33 | gmtime_r(&now, &t); 34 | std::time_t utc = std::mktime(&t); 35 | return now - utc; 36 | } 37 | 38 | 39 | int Timezone::GetDaylightSavingOffset() 40 | { 41 | std::time_t now = std::time(NULL); 42 | struct std::tm t; 43 | if (localtime_r(&now, &t) != OK) 44 | throw Base::SystemException("cannot get local time DST offset"); 45 | return t.tm_isdst == 1 ? 3600 : 0; 46 | } 47 | 48 | 49 | bool Timezone::IsDaylightSaving(const Timestamp& timestamp) 50 | { 51 | std::time_t time = timestamp.epochTime(); 52 | struct std::tm* tms = std::localtime(&time); 53 | if (!tms) throw Base::SystemException("cannot get local time DST flag"); 54 | return tms->tm_isdst > 0; 55 | } 56 | 57 | 58 | std::string Timezone::GetName() 59 | { 60 | // format of TIMEZONE environment variable: 61 | // name_of_zone:<(unused)>:time_in_minutes_from_UTC:daylight_start:daylight_end 62 | std::string tz = Environment::get("TIMEZONE", "UTC"); 63 | std::string::size_type pos = tz.find(':'); 64 | if (pos != std::string::npos) 65 | return tz.substr(0, pos); 66 | else 67 | return tz; 68 | } 69 | 70 | 71 | std::string Timezone::GetStandardName() 72 | { 73 | return name(); 74 | } 75 | 76 | 77 | std::string Timezone::GetDaylightSavingName() 78 | { 79 | return name(); 80 | } 81 | 82 | 83 | } 84 | } 85 | -------------------------------------------------------------------------------- /src/Technosoftware/Base/strtod.h: -------------------------------------------------------------------------------- 1 | // Copyright 2010 the V8 project authors. All rights reserved. 2 | // Redistribution and use in source and binary forms, with or without 3 | // modification, are permitted provided that the following conditions are 4 | // met: 5 | // 6 | // * Redistributions of source code must retain the above copyright 7 | // notice, this list of conditions and the following disclaimer. 8 | // * Redistributions in binary form must reproduce the above 9 | // copyright notice, this list of conditions and the following 10 | // disclaimer in the documentation and/or other materials provided 11 | // with the distribution. 12 | // * Neither the name of Google Inc. nor the names of its 13 | // contributors may be used to endorse or promote products derived 14 | // from this software without specific prior written permission. 15 | // 16 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 17 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 18 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 19 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 20 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 21 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 22 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 26 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | 28 | #ifndef DOUBLE_CONVERSION_STRTOD_H_ 29 | #define DOUBLE_CONVERSION_STRTOD_H_ 30 | 31 | #include "utils.h" 32 | 33 | namespace double_conversion { 34 | 35 | // The buffer must only contain digits in the range [0-9]. It must not 36 | // contain a dot or a sign. It must not start with '0', and must not be empty. 37 | double Strtod(Vector buffer, int exponent); 38 | 39 | // The buffer must only contain digits in the range [0-9]. It must not 40 | // contain a dot or a sign. It must not start with '0', and must not be empty. 41 | float Strtof(Vector buffer, int exponent); 42 | 43 | } // namespace double_conversion 44 | 45 | #endif // DOUBLE_CONVERSION_STRTOD_H_ 46 | -------------------------------------------------------------------------------- /src/Technosoftware/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2011-2018 Technosoftware GmbH. All rights reserved 3 | # Web: https://technosoftware.com 4 | # 5 | # Purpose: 6 | # 7 | # This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 8 | # WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 9 | # 10 | 11 | add_subdirectory(${PROJECT_SOURCE_DIR}/Technosoftware/Base) 12 | add_subdirectory(${PROJECT_SOURCE_DIR}/Technosoftware/Core) 13 | add_subdirectory(${PROJECT_SOURCE_DIR}/Technosoftware/Client) 14 | if (WIN32) 15 | add_subdirectory(${PROJECT_SOURCE_DIR}/Technosoftware/DaAeHdaClient) 16 | endif (WIN32) -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/Ae/AeServerStatus.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://www.technosoftware.com 4 | * 5 | * The source code in this file is covered under a dual-license scenario: 6 | * - Owner of a purchased license: SCLA 1.0 7 | * - GPL V3: everybody else 8 | * 9 | * SCLA license terms accompanied with this source code. 10 | * See SCLA 1.0: https://technosoftware.com/license/Source_Code_License_Agreement.pdf 11 | * 12 | * GNU General Public License as published by the Free Software Foundation; 13 | * version 3 of the License are accompanied with this source code. 14 | * See https://technosoftware.com/license/GPLv3License.txt 15 | * 16 | * This source code is distributed in the hope that it will be useful, but 17 | * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 18 | * or FITNESS FOR A PARTICULAR PURPOSE. 19 | */ 20 | 21 | #include "OpcInternal.h" 22 | #include "DaAeHdaClient/Ae/AeServerStatus.h" 23 | 24 | namespace Technosoftware 25 | { 26 | namespace DaAeHdaClient 27 | { 28 | AeServerStatus::AeServerStatus() throw () 29 | { 30 | memset(&startTime_, 0, sizeof(Base::Timestamp)); 31 | memset(¤tTime_, 0, sizeof(Base::Timestamp)); 32 | memset(&lastUpdateTime_, 0, sizeof(Base::Timestamp)); 33 | serverState_ = Technosoftware::Base::ServerStates::ServerState::Unknown; 34 | majorVersion_ = 0; 35 | minorVersion_ = 0; 36 | buildNumber_ = 0; 37 | } 38 | 39 | AeServerStatus::~AeServerStatus() throw () {} 40 | 41 | string AeServerStatus::GetVersionAsText() 42 | { 43 | string rval; 44 | char buf[30]; 45 | sprintf(buf, "%d.%d (Build %d)", majorVersion_, minorVersion_, buildNumber_); 46 | rval = buf; 47 | return rval; 48 | } 49 | } 50 | } -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/Da/DaServerStatus.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://www.technosoftware.com 4 | * 5 | * The source code in this file is covered under a dual-license scenario: 6 | * - Owner of a purchased license: SCLA 1.0 7 | * - GPL V3: everybody else 8 | * 9 | * SCLA license terms accompanied with this source code. 10 | * See SCLA 1.0: https://technosoftware.com/license/Source_Code_License_Agreement.pdf 11 | * 12 | * GNU General Public License as published by the Free Software Foundation; 13 | * version 3 of the License are accompanied with this source code. 14 | * See https://technosoftware.com/license/GPLv3License.txt 15 | * 16 | * This source code is distributed in the hope that it will be useful, but 17 | * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 18 | * or FITNESS FOR A PARTICULAR PURPOSE. 19 | */ 20 | 21 | #include "OpcInternal.h" 22 | #include "DaAeHdaClient/Da/DaServerStatus.h" 23 | 24 | namespace Technosoftware 25 | { 26 | namespace DaAeHdaClient 27 | { 28 | DaServerStatus::DaServerStatus() throw () 29 | { 30 | memset(&startTime_, 0, sizeof(Base::Timestamp)); 31 | memset(¤tTime_, 0, sizeof(Base::Timestamp)); 32 | memset(&lastUpdateTime_, 0, sizeof(Base::Timestamp)); 33 | serverState_ = Technosoftware::Base::ServerStates::ServerState::Unknown; 34 | groupCount_ = 0; 35 | bandWidth_ = 0; 36 | majorVersion_ = 0; 37 | minorVersion_ = 0; 38 | buildNumber_ = 0; 39 | reserved_ = 0; 40 | } 41 | 42 | DaServerStatus::~DaServerStatus() throw () {} 43 | 44 | string DaServerStatus::GetVersionAsText() 45 | { 46 | string rval; 47 | char buf[30]; 48 | sprintf(buf, "%d.%d (Build %d)", majorVersion_, minorVersion_, buildNumber_); 49 | rval = buf; 50 | return rval; 51 | } 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/Da/MatchPattern.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * 7 | * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 8 | * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 9 | */ 10 | 11 | 12 | 13 | #ifndef __MATCHPATTERN_H 14 | #define __MATCHPATTERN_H 15 | 16 | #if _MSC_VER >= 1000 17 | #pragma once 18 | #endif // _MSC_VER >= 1000 19 | 20 | 21 | // By redefining MCHAR, _M and _ismdigit you may alter the type 22 | // of string MatchPattern() works with. For example to operate on 23 | // wide strings, make the following definitions: 24 | // #define MCHAR WCHAR 25 | // #define _M(x) L ## x 26 | // #define _ismdigit iswdigit 27 | 28 | 29 | 30 | #ifndef MCHAR 31 | // The ClientSdk requires a wide-char version 32 | #define MCHAR WCHAR 33 | #define _M(a) L ## a 34 | #define _ismdigit iswdigit 35 | 36 | //#define MCHAR TCHAR 37 | //#define _M(a) _T(a) 38 | //#define _ismdigit _istdigit 39 | 40 | #endif 41 | 42 | 43 | 44 | extern BOOL MatchPattern( const MCHAR* String, const MCHAR * Pattern, BOOL bCaseSensitive = FALSE ); 45 | 46 | 47 | #endif 48 | 49 | -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/Hda/HdaServerImpl.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/src/Technosoftware/DaAeHdaClient/Hda/HdaServerImpl.h -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/Hda/HdaServerStatus.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://www.technosoftware.com 4 | * 5 | * The source code in this file is covered under a dual-license scenario: 6 | * - Owner of a purchased license: SCLA 1.0 7 | * - GPL V3: everybody else 8 | * 9 | * SCLA license terms accompanied with this source code. 10 | * See SCLA 1.0: https://technosoftware.com/license/Source_Code_License_Agreement.pdf 11 | * 12 | * GNU General Public License as published by the Free Software Foundation; 13 | * version 3 of the License are accompanied with this source code. 14 | * See https://technosoftware.com/license/GPLv3License.txt 15 | * 16 | * This source code is distributed in the hope that it will be useful, but 17 | * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 18 | * or FITNESS FOR A PARTICULAR PURPOSE. 19 | */ 20 | 21 | #include "OpcInternal.h" 22 | #include "DaAeHdaClient/Hda/HdaServerStatus.h" 23 | 24 | namespace Technosoftware 25 | { 26 | namespace DaAeHdaClient 27 | { 28 | HdaServerStatus::HdaServerStatus() throw () 29 | { 30 | memset(&m_ftStartTime, 0, sizeof(Base::Timestamp)); 31 | memset(&m_ftCurrentTime, 0, sizeof(Base::Timestamp)); 32 | memset(&m_ftLastUpdateTime, 0, sizeof(Base::Timestamp)); 33 | m_dwServerState = Technosoftware::Base::ServerStates::ServerState::Unknown; 34 | m_dwMaxReturnValues = 0; 35 | m_wMajorVersion = 0; 36 | m_wMinorVersion = 0; 37 | m_wBuildNumber = 0; 38 | } 39 | 40 | HdaServerStatus::~HdaServerStatus() throw () {} 41 | 42 | string HdaServerStatus::GetVersionAsText() 43 | { 44 | string rval; 45 | char buf[30]; 46 | sprintf(buf, "%d.%d (Build %d)", m_wMajorVersion, m_wMinorVersion, m_wBuildNumber); 47 | rval = buf; 48 | return rval; 49 | } 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/OpcUtils.h: -------------------------------------------------------------------------------- 1 | #ifndef _OpcUtils_H 2 | #define _OpcUtils_H 3 | 4 | #if _MSC_VER >= 1000 5 | #pragma once 6 | #endif // _MSC_VER >= 1000 7 | 8 | #include "opccomn.h" 9 | 10 | #define OPCUTILS_API 11 | 12 | #include "OpcDefs.h" 13 | #include "COpcFile.h" 14 | #include "OpcMatch.h" 15 | #include "COpcCriticalSection.h" 16 | #include "OpcList.h" 17 | #include "COpcSortedArray.h" 18 | #include "COpcText.h" 19 | #include "COpcTextReader.h" 20 | #include "COpcThread.h" 21 | #include "OpcCategory.h" 22 | #include "OpcRegistry.h" 23 | #include "OpcXmlType.h" 24 | #include "COpcXmlAnyType.h" 25 | #include "COpcXmlElement.h" 26 | #include "COpcXmlDocument.h" 27 | #include "COpcVariant.h" 28 | #include "COpcComObject.h" 29 | #include "COpcClassFactory.h" 30 | #include "COpcComModule.h" 31 | #include "COpcCommon.h" 32 | #include "COpcConnectionPoint.h" 33 | #include "COpcCPContainer.h" 34 | #include "COpcEnumCPs.h" 35 | #include "COpcEnumString.h" 36 | #include "COpcEnumUnknown.h" 37 | #include "COpcSecurity.h" 38 | #include "COpcThreadPool.h" 39 | #include "COpcBrowseElement.h" 40 | 41 | #endif // _OpcUtils_H 42 | 43 | -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/Version.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/src/Technosoftware/DaAeHdaClient/Version.rc -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/dllmain.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://www.technosoftware.com 4 | * 5 | * The source code in this file is covered under a dual-license scenario: 6 | * - Owner of a purchased license: SCLA 1.0 7 | * - GPL V3: everybody else 8 | * 9 | * SCLA license terms accompanied with this source code. 10 | * See SCLA 1.0: https://technosoftware.com/license/Source_Code_License_Agreement.pdf 11 | * 12 | * GNU General Public License as published by the Free Software Foundation; 13 | * version 3 of the License are accompanied with this source code. 14 | * See https://technosoftware.com/license/GPLv3License.txt 15 | * 16 | * This source code is distributed in the hope that it will be useful, but 17 | * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 18 | * or FITNESS FOR A PARTICULAR PURPOSE. 19 | */ 20 | 21 | #include "pch.h" 22 | 23 | BOOL APIENTRY DllMain(HMODULE /* hModule */, DWORD ul_reason_for_call, LPVOID /* lpReserved */) 24 | { 25 | switch (ul_reason_for_call) 26 | { 27 | case DLL_PROCESS_ATTACH: 28 | break; 29 | case DLL_THREAD_ATTACH: 30 | break; 31 | case DLL_THREAD_DETACH: 32 | break; 33 | case DLL_PROCESS_DETACH: 34 | break; 35 | default: ; 36 | } 37 | return TRUE; 38 | } 39 | -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/pch.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://www.technosoftware.com 4 | * 5 | * The source code in this file is covered under a dual-license scenario: 6 | * - Owner of a purchased license: SCLA 1.0 7 | * - GPL V3: everybody else 8 | * 9 | * SCLA license terms accompanied with this source code. 10 | * See SCLA 1.0: https://technosoftware.com/license/Source_Code_License_Agreement.pdf 11 | * 12 | * GNU General Public License as published by the Free Software Foundation; 13 | * version 3 of the License are accompanied with this source code. 14 | * See https://technosoftware.com/license/GPLv3License.txt 15 | * 16 | * This source code is distributed in the hope that it will be useful, but 17 | * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 18 | * or FITNESS FOR A PARTICULAR PURPOSE. 19 | */ 20 | 21 | #include "pch.h" 22 | -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/pch.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * 7 | * The Software is subject to the Technosoftware GmbH Software License Agreement, 8 | * which can be found here: 9 | * https://technosoftware.com/documents/Technosoftware_SLA.pdf 10 | */ 11 | 12 | #pragma once 13 | 14 | #include "targetver.h" 15 | 16 | #ifndef WIN32_LEAN_AND_MEAN 17 | #define WIN32_LEAN_AND_MEAN 18 | #endif 19 | 20 | #include 21 | #include 22 | #include 23 | #include 24 | #include -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by Version.rc 4 | 5 | // Next default values for new objects 6 | // 7 | #ifdef APSTUDIO_INVOKED 8 | #ifndef APSTUDIO_READONLY_SYMBOLS 9 | #define _APS_NEXT_RESOURCE_VALUE 101 10 | #define _APS_NEXT_COMMAND_VALUE 40001 11 | #define _APS_NEXT_CONTROL_VALUE 1001 12 | #define _APS_NEXT_SYMED_VALUE 101 13 | #endif 14 | #endif 15 | -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/system/ClientSdk.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * 7 | * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 8 | * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 9 | */ 10 | 11 | 12 | 13 | #ifndef __OCSTK_H_230AC692_5F6C_11d2_88DD_00104B965F5E 14 | #define __OCSTK_H_230AC692_5F6C_11d2_88DD_00104B965F5E 15 | 16 | #ifdef _WIN32 17 | 18 | #include "inc32\opccomn.h" // IIDs and CLSIDs for OPC Common Definitions 19 | #include "inc32\OpcEnum.h" // IIDs and CLSIDs for OPC Server List / Enumerator 20 | #include "inc32\opcda.h" // IIDs and CLSIDs for OPC Data Access 21 | #include "inc32\opc_ae.h" // IIDs and CLSIDs for OPC Alarsm & Events 22 | #include "inc32\opcda.h" // IIDs and CLSIDs for OPC Data Access 23 | #include "inc32\opcaedef.h" // OPC Alarms & Events Definitions 24 | #include "inc32\opchda.h" // IIDs and CLSIDs for OPC Historical Data Access 25 | #include "inc32\OpcHda_Error.h" // Errors for OPC Historical Data Access 26 | #else 27 | 28 | #ifdef _WIN64 29 | 30 | #include "inc64\opccomn.h" // IIDs and CLSIDs for OPC Common Definitions 31 | #include "inc64\OpcEnum.h" // IIDs and CLSIDs for OPC Server List / Enumerator 32 | #include "inc64\opcda.h" // IIDs and CLSIDs for OPC Data Access 33 | #include "inc64\opc_ae.h" // IIDs and CLSIDs for OPC Alarsm & Events 34 | #include "inc64\opcaedef.h" // OPC Alarms & Events Definitions 35 | #include "inc64\opchda.h" // IIDs and CLSIDs for OPC Historical Data Access 36 | #include "inc64\OpcHda_Error.h" // Errors for OPC Historical Data Access 37 | 38 | #else 39 | 40 | #error "Platform not supported" 41 | 42 | #endif // _WIN64 43 | 44 | #endif // _WIN32 45 | 46 | #endif // __OCSTK_H_230AC692_5F6C_11d2_88DD_00104B965F5E 47 | -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/system/ClientSdk_i.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://www.technosoftware.com 4 | * 5 | * The source code in this file is covered under a dual-license scenario: 6 | * - Owner of a purchased license: SCLA 1.0 7 | * - GPL V3: everybody else 8 | * 9 | * SCLA license terms accompanied with this source code. 10 | * See SCLA 1.0: https://technosoftware.com/license/Source_Code_License_Agreement.pdf 11 | * 12 | * GNU General Public License as published by the Free Software Foundation; 13 | * version 3 of the License are accompanied with this source code. 14 | * See https://technosoftware.com/license/GPLv3License.txt 15 | * 16 | * This source code is distributed in the hope that it will be useful, but 17 | * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 18 | * or FITNESS FOR A PARTICULAR PURPOSE. 19 | */ 20 | 21 | 22 | 23 | #ifndef TECHNOSOFTWARE_CLIENTSDK_I_C_ 24 | #define TECHNOSOFTWARE_CLIENTSDK_I_C_ 25 | 26 | #ifdef _WIN32 27 | 28 | #include "Classic/inc32/opccomn_i.c" // IIDs and CLSIDs for OPC Common Definitions 29 | #include "Classic/inc32/OpcEnum_i.c" // IIDs and CLSIDs for OPC Server List / Enumerator 30 | #include "Classic/inc32/opcda_i.c" // IIDs and CLSIDs for OPC Data Access 31 | #include "Classic/inc32/opc_ae_i.c" // IIDs and CLSIDs for OPC Alarsm & Events 32 | #include "Classic/inc32/opchda_i.c" // IIDs and CLSIDs for OPC Historical Data Access 33 | 34 | #else 35 | 36 | #ifdef _WIN64 37 | 38 | #include "Classic/inc64/opccomn_i.c" // IIDs and CLSIDs for OPC Common Definitions 39 | #include "Classic/inc64/OpcEnum_i.c" // IIDs and CLSIDs for OPC Server List / Enumerator 40 | #include "Classic/inc64/opcda_i.c" // IIDs and CLSIDs for OPC Data Access 41 | #include "Classic/inc64/opc_ae_i.c" // IIDs and CLSIDs for OPC Alarsm & Events 42 | #include "Classic/inc64/opchda_i.c" // IIDs and CLSIDs for OPC Historical Data Access 43 | 44 | #else 45 | 46 | #error "Platform not supported" 47 | 48 | #endif // _WIN64 49 | 50 | #endif // _WIN32 51 | #endif // TECHNOSOFTWARE_CLIENTSDK_I_C_ 52 | -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/system/OpcErrors.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * 7 | * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 8 | * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 9 | */ 10 | 11 | 12 | 13 | #ifndef __OCSERROR_H_14EB9DC1_6E64_11d2_88EE_00104B965F5E 14 | #define __OCSERROR_H_14EB9DC1_6E64_11d2_88EE_00104B965F5E 15 | 16 | #ifdef _WIN32 17 | 18 | #include "inc32\opcerror.h" // IIDs and CLSIDs for OPC Common Definitions 19 | #include "inc32\opcae_er.h" // IIDs and CLSIDs for OPC Server List / Enumerator 20 | 21 | #else 22 | 23 | #ifdef _WIN64 24 | 25 | #include "inc64\opcerror.h" // IIDs and CLSIDs for OPC Common Definitions 26 | #include "inc64\opcae_er.h" // IIDs and CLSIDs for OPC Server List / Enumerator 27 | 28 | #else 29 | 30 | #error "Platform not supported" 31 | 32 | #endif // _WIN64 33 | 34 | #endif // _WIN32 35 | 36 | #endif // __OCSERROR_H_14EB9DC1_6E64_11d2_88EE_00104B965F5E 37 | -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/system/inc32/OpcCmdPs.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/src/Technosoftware/DaAeHdaClient/system/inc32/OpcCmdPs.dll -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/system/inc32/OpcCmd_i.c: -------------------------------------------------------------------------------- 1 | 2 | 3 | /* this ALWAYS GENERATED file contains the IIDs and CLSIDs */ 4 | 5 | /* link this file in with the server and any clients */ 6 | 7 | 8 | /* File created by MIDL compiler version 7.00.0500 */ 9 | /* at Mon Jan 17 19:41:32 2011 10 | */ 11 | /* Compiler settings for .\OpcCmd.idl: 12 | Oicf, W1, Zp8, env=Win32 (32b run) 13 | protocol : dce , ms_ext, c_ext 14 | error checks: allocation ref bounds_check enum stub_data 15 | VC __declspec() decoration level: 16 | __declspec(uuid()), __declspec(selectany), __declspec(novtable) 17 | DECLSPEC_UUID(), MIDL_INTERFACE() 18 | */ 19 | //@@MIDL_FILE_HEADING( ) 20 | 21 | #pragma warning( disable: 4049 ) /* more than 64k source lines */ 22 | 23 | 24 | #ifdef __cplusplus 25 | extern "C"{ 26 | #endif 27 | 28 | 29 | #include 30 | #include 31 | 32 | #ifdef _MIDL_USE_GUIDDEF_ 33 | 34 | #ifndef INITGUID 35 | #define INITGUID 36 | #include 37 | #undef INITGUID 38 | #else 39 | #include 40 | #endif 41 | 42 | #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ 43 | DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) 44 | 45 | #else // !_MIDL_USE_GUIDDEF_ 46 | 47 | #ifndef __IID_DEFINED__ 48 | #define __IID_DEFINED__ 49 | 50 | typedef struct _IID 51 | { 52 | unsigned long x; 53 | unsigned short s1; 54 | unsigned short s2; 55 | unsigned char c[8]; 56 | } IID; 57 | 58 | #endif // __IID_DEFINED__ 59 | 60 | #ifndef CLSID_DEFINED 61 | #define CLSID_DEFINED 62 | typedef IID CLSID; 63 | #endif // CLSID_DEFINED 64 | 65 | #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ 66 | const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}} 67 | 68 | #endif !_MIDL_USE_GUIDDEF_ 69 | 70 | MIDL_DEFINE_GUID(IID, IID_CATID_OPCCMDServer10,0x2D869D5C,0x3B05,0x41fb,0x85,0x1A,0x64,0x2F,0xB2,0xB8,0x01,0xA0); 71 | 72 | 73 | MIDL_DEFINE_GUID(IID, IID_IOPCComandCallback,0x3104B527,0x2016,0x442d,0x96,0x96,0x12,0x75,0xDE,0x97,0x87,0x78); 74 | 75 | 76 | MIDL_DEFINE_GUID(IID, IID_IOPCCommandInformation,0x3104B525,0x2016,0x442d,0x96,0x96,0x12,0x75,0xDE,0x97,0x87,0x78); 77 | 78 | 79 | MIDL_DEFINE_GUID(IID, IID_IOPCCommandExecution,0x3104B526,0x2016,0x442d,0x96,0x96,0x12,0x75,0xDE,0x97,0x87,0x78); 80 | 81 | 82 | MIDL_DEFINE_GUID(IID, LIBID_OpcCmdLib,0x3104B520,0x2016,0x442d,0x96,0x96,0x12,0x75,0xDE,0x97,0x87,0x78); 83 | 84 | #undef MIDL_DEFINE_GUID 85 | 86 | #ifdef __cplusplus 87 | } 88 | #endif 89 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/system/inc32/OpcDxError.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/src/Technosoftware/DaAeHdaClient/system/inc32/OpcDxError.h -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/system/inc32/OpcDxPs.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/src/Technosoftware/DaAeHdaClient/system/inc32/OpcDxPs.dll -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/system/inc32/OpcDx_i.c: -------------------------------------------------------------------------------- 1 | 2 | 3 | /* this ALWAYS GENERATED file contains the IIDs and CLSIDs */ 4 | 5 | /* link this file in with the server and any clients */ 6 | 7 | 8 | /* File created by MIDL compiler version 7.00.0500 */ 9 | /* at Mon Jan 17 19:41:27 2011 10 | */ 11 | /* Compiler settings for .\OpcDx.idl: 12 | Oicf, W1, Zp8, env=Win32 (32b run) 13 | protocol : dce , ms_ext, c_ext 14 | error checks: allocation ref bounds_check enum stub_data 15 | VC __declspec() decoration level: 16 | __declspec(uuid()), __declspec(selectany), __declspec(novtable) 17 | DECLSPEC_UUID(), MIDL_INTERFACE() 18 | */ 19 | //@@MIDL_FILE_HEADING( ) 20 | 21 | #pragma warning( disable: 4049 ) /* more than 64k source lines */ 22 | 23 | 24 | #ifdef __cplusplus 25 | extern "C"{ 26 | #endif 27 | 28 | 29 | #include 30 | #include 31 | 32 | #ifdef _MIDL_USE_GUIDDEF_ 33 | 34 | #ifndef INITGUID 35 | #define INITGUID 36 | #include 37 | #undef INITGUID 38 | #else 39 | #include 40 | #endif 41 | 42 | #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ 43 | DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) 44 | 45 | #else // !_MIDL_USE_GUIDDEF_ 46 | 47 | #ifndef __IID_DEFINED__ 48 | #define __IID_DEFINED__ 49 | 50 | typedef struct _IID 51 | { 52 | unsigned long x; 53 | unsigned short s1; 54 | unsigned short s2; 55 | unsigned char c[8]; 56 | } IID; 57 | 58 | #endif // __IID_DEFINED__ 59 | 60 | #ifndef CLSID_DEFINED 61 | #define CLSID_DEFINED 62 | typedef IID CLSID; 63 | #endif // CLSID_DEFINED 64 | 65 | #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ 66 | const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}} 67 | 68 | #endif !_MIDL_USE_GUIDDEF_ 69 | 70 | MIDL_DEFINE_GUID(IID, IID_CATID_OPCDXServer10,0xA0C85BB8,0x4161,0x4fd6,0x86,0x55,0xBB,0x58,0x46,0x01,0xC9,0xE0); 71 | 72 | 73 | MIDL_DEFINE_GUID(IID, IID_IOPCConfiguration,0xC130D281,0xF4AA,0x4779,0x88,0x46,0xC2,0xC4,0xCB,0x44,0x4F,0x2A); 74 | 75 | 76 | MIDL_DEFINE_GUID(IID, LIBID_OpcDxLib,0x3CA18B30,0x1088,0x47d5,0x89,0x52,0x0B,0x12,0xB0,0x27,0xED,0x32); 77 | 78 | #undef MIDL_DEFINE_GUID 79 | 80 | #ifdef __cplusplus 81 | } 82 | #endif 83 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/system/inc32/OpcEnum.h: -------------------------------------------------------------------------------- 1 | 2 | 3 | /* this ALWAYS GENERATED file contains the definitions for the interfaces */ 4 | 5 | 6 | /* File created by MIDL compiler version 7.00.0500 */ 7 | /* at Mon Jan 17 19:41:21 2011 8 | */ 9 | /* Compiler settings for .\OpcEnum.idl: 10 | Oicf, W1, Zp8, env=Win32 (32b run) 11 | protocol : dce , ms_ext, c_ext, robust 12 | error checks: allocation ref bounds_check enum stub_data 13 | VC __declspec() decoration level: 14 | __declspec(uuid()), __declspec(selectany), __declspec(novtable) 15 | DECLSPEC_UUID(), MIDL_INTERFACE() 16 | */ 17 | //@@MIDL_FILE_HEADING( ) 18 | 19 | #pragma warning( disable: 4049 ) /* more than 64k source lines */ 20 | 21 | 22 | /* verify that the version is high enough to compile this file*/ 23 | #ifndef __REQUIRED_RPCNDR_H_VERSION__ 24 | #define __REQUIRED_RPCNDR_H_VERSION__ 475 25 | #endif 26 | 27 | #include "rpc.h" 28 | #include "rpcndr.h" 29 | 30 | #ifndef __RPCNDR_H_VERSION__ 31 | #error this stub requires an updated version of 32 | #endif // __RPCNDR_H_VERSION__ 33 | 34 | 35 | #ifndef __OpcEnum_h__ 36 | #define __OpcEnum_h__ 37 | 38 | #if defined(_MSC_VER) && (_MSC_VER >= 1020) 39 | #pragma once 40 | #endif 41 | 42 | /* Forward Declarations */ 43 | 44 | #ifndef __OpcServerList_FWD_DEFINED__ 45 | #define __OpcServerList_FWD_DEFINED__ 46 | 47 | #ifdef __cplusplus 48 | typedef class OpcServerList OpcServerList; 49 | #else 50 | typedef struct OpcServerList OpcServerList; 51 | #endif /* __cplusplus */ 52 | 53 | #endif /* __OpcServerList_FWD_DEFINED__ */ 54 | 55 | 56 | /* header files for imported files */ 57 | #include "opccomn.h" 58 | 59 | #ifdef __cplusplus 60 | extern "C"{ 61 | #endif 62 | 63 | 64 | 65 | #ifndef __OpcEnumLib_LIBRARY_DEFINED__ 66 | #define __OpcEnumLib_LIBRARY_DEFINED__ 67 | 68 | /* library OpcEnumLib */ 69 | /* [helpstring][version][uuid] */ 70 | 71 | 72 | EXTERN_C const IID LIBID_OpcEnumLib; 73 | 74 | EXTERN_C const CLSID CLSID_OpcServerList; 75 | 76 | #ifdef __cplusplus 77 | 78 | class DECLSPEC_UUID("13486D51-4821-11D2-A494-3CB306C10000") 79 | OpcServerList; 80 | #endif 81 | #endif /* __OpcEnumLib_LIBRARY_DEFINED__ */ 82 | 83 | /* Additional Prototypes for ALL interfaces */ 84 | 85 | /* end of Additional Prototypes */ 86 | 87 | #ifdef __cplusplus 88 | } 89 | #endif 90 | 91 | #endif 92 | 93 | 94 | -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/system/inc32/OpcEnum.idl: -------------------------------------------------------------------------------- 1 | //============================================================================ 2 | // TITLE: OpcEnum.idl 3 | // 4 | // CONTENTS: 5 | // 6 | // IDL declaration for OpcEnum. 7 | // 8 | // (c) Copyright 1998-2002 The OPC Foundation 9 | // ALL RIGHTS RESERVED. 10 | // 11 | // DISCLAIMER: 12 | // This code is provided by the OPC Foundation solely to assist in 13 | // understanding and use of the appropriate OPC Specification(s) and may be 14 | // used as set forth in the License Grant section of the OPC Specification. 15 | // This code is provided as-is and without warranty or support of any sort 16 | // and is subject to the Warranty and Liability Disclaimers which appear 17 | // in the printed OPC Specification. 18 | // 19 | // MODIFICATION LOG: 20 | // 21 | // Date By Notes 22 | // ---------- --- ----- 23 | // 2002/06/12 mar Add IOPCServerList2 to OpcServerList object 24 | // 25 | 26 | import "opccomn.idl"; 27 | 28 | [ 29 | uuid(13486D43-4821-11D2-A494-3CB306C10000), 30 | version(1.1), 31 | helpstring("OpcEnum 1.1 Type Library") 32 | ] 33 | library OpcEnumLib 34 | { 35 | importlib("stdole32.tlb"); 36 | importlib("stdole2.tlb"); 37 | 38 | [ 39 | uuid(13486D51-4821-11D2-A494-3CB306C10000), 40 | helpstring("OpcEnum Class") 41 | ] 42 | coclass OpcServerList 43 | { 44 | [default] interface IOpcServerList2; 45 | interface IOpcServerList; 46 | }; 47 | }; 48 | 49 | -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/system/inc32/OpcEnum_i.c: -------------------------------------------------------------------------------- 1 | 2 | 3 | /* this ALWAYS GENERATED file contains the IIDs and CLSIDs */ 4 | 5 | /* link this file in with the server and any clients */ 6 | 7 | 8 | /* File created by MIDL compiler version 7.00.0500 */ 9 | /* at Mon Jan 17 19:41:21 2011 10 | */ 11 | /* Compiler settings for .\OpcEnum.idl: 12 | Oicf, W1, Zp8, env=Win32 (32b run) 13 | protocol : dce , ms_ext, c_ext, robust 14 | error checks: allocation ref bounds_check enum stub_data 15 | VC __declspec() decoration level: 16 | __declspec(uuid()), __declspec(selectany), __declspec(novtable) 17 | DECLSPEC_UUID(), MIDL_INTERFACE() 18 | */ 19 | //@@MIDL_FILE_HEADING( ) 20 | 21 | #pragma warning( disable: 4049 ) /* more than 64k source lines */ 22 | 23 | 24 | #ifdef __cplusplus 25 | extern "C"{ 26 | #endif 27 | 28 | 29 | #include 30 | #include 31 | 32 | #ifdef _MIDL_USE_GUIDDEF_ 33 | 34 | #ifndef INITGUID 35 | #define INITGUID 36 | #include 37 | #undef INITGUID 38 | #else 39 | #include 40 | #endif 41 | 42 | #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ 43 | DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) 44 | 45 | #else // !_MIDL_USE_GUIDDEF_ 46 | 47 | #ifndef __IID_DEFINED__ 48 | #define __IID_DEFINED__ 49 | 50 | typedef struct _IID 51 | { 52 | unsigned long x; 53 | unsigned short s1; 54 | unsigned short s2; 55 | unsigned char c[8]; 56 | } IID; 57 | 58 | #endif // __IID_DEFINED__ 59 | 60 | #ifndef CLSID_DEFINED 61 | #define CLSID_DEFINED 62 | typedef IID CLSID; 63 | #endif // CLSID_DEFINED 64 | 65 | #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ 66 | const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}} 67 | 68 | #endif !_MIDL_USE_GUIDDEF_ 69 | 70 | MIDL_DEFINE_GUID(IID, LIBID_OpcEnumLib,0x13486D43,0x4821,0x11D2,0xA4,0x94,0x3C,0xB3,0x06,0xC1,0x00,0x00); 71 | 72 | 73 | MIDL_DEFINE_GUID(CLSID, CLSID_OpcServerList,0x13486D51,0x4821,0x11D2,0xA4,0x94,0x3C,0xB3,0x06,0xC1,0x00,0x00); 74 | 75 | #undef MIDL_DEFINE_GUID 76 | 77 | #ifdef __cplusplus 78 | } 79 | #endif 80 | 81 | 82 | 83 | -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/system/inc32/opcSec.idl: -------------------------------------------------------------------------------- 1 | //============================================================================== 2 | // TITLE: OpcSec.idl 3 | // 4 | // CONTENTS: 5 | // 6 | // Interface declarations for the OPC Security specifications. 7 | // 8 | // (c) Copyright 1999-2003 The OPC Foundation 9 | // ALL RIGHTS RESERVED. 10 | // 11 | // DISCLAIMER: 12 | // This code is provided by the OPC Foundation solely to assist in 13 | // understanding and use of the appropriate OPC Specification(s) and may be 14 | // used as set forth in the License Grant section of the OPC Specification. 15 | // This code is provided as-is and without warranty or support of any sort 16 | // and is subject to the Warranty and Liability Disclaimers which appear 17 | // in the printed OPC Specification. 18 | // 19 | // MODIFICATION LOG: 20 | // 21 | // Date By Notes 22 | // ---------- --- ----- 23 | // 2000/08/03 DJ Finalized for spec release 1.00 24 | // 2003/01/06 RSA Fixed formatting to comply with coding guidelines. 25 | // 26 | 27 | import "oaidl.idl"; 28 | 29 | //============================================================================== 30 | // IOPCSecurityNT 31 | 32 | [ 33 | object, 34 | uuid(7AA83A01-6C77-11d3-84F9-00008630A38B), 35 | pointer_default(unique) 36 | ] 37 | interface IOPCSecurityNT : IUnknown 38 | { 39 | HRESULT IsAvailableNT( 40 | [out] BOOL* pbAvailable 41 | ); 42 | 43 | HRESULT QueryMinImpersonationLevel( 44 | [out] DWORD* pdwMinImpLevel 45 | ); 46 | 47 | HRESULT ChangeUser( 48 | void 49 | ); 50 | }; 51 | 52 | //============================================================================== 53 | // IOPCSecurityPrivate 54 | 55 | [ 56 | object, 57 | uuid(7AA83A02-6C77-11d3-84F9-00008630A38B), 58 | pointer_default(unique) 59 | ] 60 | interface IOPCSecurityPrivate : IUnknown 61 | { 62 | HRESULT IsAvailablePriv( 63 | [out] BOOL* pbAvailable 64 | ); 65 | 66 | HRESULT Logon( 67 | [in, string] LPCWSTR szUserID, 68 | [in, string] LPCWSTR szPassword 69 | ); 70 | 71 | HRESULT Logoff( 72 | void 73 | ); 74 | }; 75 | 76 | //============================================================================== 77 | // Type Library 78 | 79 | [ 80 | uuid(7AA83AFF-6C77-11d3-84F9-00008630A38B), 81 | version(1.00), 82 | helpstring("OPC Security 1.00 Type Library") 83 | ] 84 | library OPCSEC 85 | { 86 | importlib("stdole32.tlb"); 87 | importlib("stdole2.tlb"); 88 | 89 | interface IOPCSecurityNT; 90 | interface IOPCSecurityPrivate; 91 | }; 92 | 93 | -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/system/inc32/opcSec_i.c: -------------------------------------------------------------------------------- 1 | 2 | 3 | /* this ALWAYS GENERATED file contains the IIDs and CLSIDs */ 4 | 5 | /* link this file in with the server and any clients */ 6 | 7 | 8 | /* File created by MIDL compiler version 7.00.0500 */ 9 | /* at Mon Jan 17 19:41:19 2011 10 | */ 11 | /* Compiler settings for .\OpcSec.idl: 12 | Oicf, W1, Zp8, env=Win32 (32b run) 13 | protocol : dce , ms_ext, c_ext 14 | error checks: allocation ref bounds_check enum stub_data 15 | VC __declspec() decoration level: 16 | __declspec(uuid()), __declspec(selectany), __declspec(novtable) 17 | DECLSPEC_UUID(), MIDL_INTERFACE() 18 | */ 19 | //@@MIDL_FILE_HEADING( ) 20 | 21 | #pragma warning( disable: 4049 ) /* more than 64k source lines */ 22 | 23 | 24 | #ifdef __cplusplus 25 | extern "C"{ 26 | #endif 27 | 28 | 29 | #include 30 | #include 31 | 32 | #ifdef _MIDL_USE_GUIDDEF_ 33 | 34 | #ifndef INITGUID 35 | #define INITGUID 36 | #include 37 | #undef INITGUID 38 | #else 39 | #include 40 | #endif 41 | 42 | #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ 43 | DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) 44 | 45 | #else // !_MIDL_USE_GUIDDEF_ 46 | 47 | #ifndef __IID_DEFINED__ 48 | #define __IID_DEFINED__ 49 | 50 | typedef struct _IID 51 | { 52 | unsigned long x; 53 | unsigned short s1; 54 | unsigned short s2; 55 | unsigned char c[8]; 56 | } IID; 57 | 58 | #endif // __IID_DEFINED__ 59 | 60 | #ifndef CLSID_DEFINED 61 | #define CLSID_DEFINED 62 | typedef IID CLSID; 63 | #endif // CLSID_DEFINED 64 | 65 | #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ 66 | const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}} 67 | 68 | #endif !_MIDL_USE_GUIDDEF_ 69 | 70 | MIDL_DEFINE_GUID(IID, IID_IOPCSecurityNT,0x7AA83A01,0x6C77,0x11d3,0x84,0xF9,0x00,0x00,0x86,0x30,0xA3,0x8B); 71 | 72 | 73 | MIDL_DEFINE_GUID(IID, IID_IOPCSecurityPrivate,0x7AA83A02,0x6C77,0x11d3,0x84,0xF9,0x00,0x00,0x86,0x30,0xA3,0x8B); 74 | 75 | 76 | MIDL_DEFINE_GUID(IID, LIBID_OPCSEC,0x7AA83AFF,0x6C77,0x11d3,0x84,0xF9,0x00,0x00,0x86,0x30,0xA3,0x8B); 77 | 78 | #undef MIDL_DEFINE_GUID 79 | 80 | #ifdef __cplusplus 81 | } 82 | #endif 83 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/system/inc32/opc_aeps.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/src/Technosoftware/DaAeHdaClient/system/inc32/opc_aeps.dll -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/system/inc32/opcbc_ps.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/src/Technosoftware/DaAeHdaClient/system/inc32/opcbc_ps.dll -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/system/inc32/opccomn_i.c: -------------------------------------------------------------------------------- 1 | 2 | 3 | /* this ALWAYS GENERATED file contains the IIDs and CLSIDs */ 4 | 5 | /* link this file in with the server and any clients */ 6 | 7 | 8 | /* File created by MIDL compiler version 7.00.0500 */ 9 | /* at Mon Jan 17 19:41:18 2011 10 | */ 11 | /* Compiler settings for .\opccomn.idl: 12 | Oicf, W1, Zp8, env=Win32 (32b run) 13 | protocol : dce , ms_ext, c_ext 14 | error checks: allocation ref bounds_check enum stub_data 15 | VC __declspec() decoration level: 16 | __declspec(uuid()), __declspec(selectany), __declspec(novtable) 17 | DECLSPEC_UUID(), MIDL_INTERFACE() 18 | */ 19 | //@@MIDL_FILE_HEADING( ) 20 | 21 | #pragma warning( disable: 4049 ) /* more than 64k source lines */ 22 | 23 | 24 | #ifdef __cplusplus 25 | extern "C"{ 26 | #endif 27 | 28 | 29 | #include 30 | #include 31 | 32 | #ifdef _MIDL_USE_GUIDDEF_ 33 | 34 | #ifndef INITGUID 35 | #define INITGUID 36 | #include 37 | #undef INITGUID 38 | #else 39 | #include 40 | #endif 41 | 42 | #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ 43 | DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) 44 | 45 | #else // !_MIDL_USE_GUIDDEF_ 46 | 47 | #ifndef __IID_DEFINED__ 48 | #define __IID_DEFINED__ 49 | 50 | typedef struct _IID 51 | { 52 | unsigned long x; 53 | unsigned short s1; 54 | unsigned short s2; 55 | unsigned char c[8]; 56 | } IID; 57 | 58 | #endif // __IID_DEFINED__ 59 | 60 | #ifndef CLSID_DEFINED 61 | #define CLSID_DEFINED 62 | typedef IID CLSID; 63 | #endif // CLSID_DEFINED 64 | 65 | #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ 66 | const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}} 67 | 68 | #endif !_MIDL_USE_GUIDDEF_ 69 | 70 | MIDL_DEFINE_GUID(IID, IID_IOPCShutdown,0xF31DFDE1,0x07B6,0x11d2,0xB2,0xD8,0x00,0x60,0x08,0x3B,0xA1,0xFB); 71 | 72 | 73 | MIDL_DEFINE_GUID(IID, IID_IOPCCommon,0xF31DFDE2,0x07B6,0x11d2,0xB2,0xD8,0x00,0x60,0x08,0x3B,0xA1,0xFB); 74 | 75 | 76 | MIDL_DEFINE_GUID(IID, IID_IOPCServerList,0x13486D50,0x4821,0x11D2,0xA4,0x94,0x3C,0xB3,0x06,0xC1,0x00,0x00); 77 | 78 | 79 | MIDL_DEFINE_GUID(IID, IID_IOPCEnumGUID,0x55C382C8,0x21C7,0x4e88,0x96,0xC1,0xBE,0xCF,0xB1,0xE3,0xF4,0x83); 80 | 81 | 82 | MIDL_DEFINE_GUID(IID, IID_IOPCServerList2,0x9DD0B56C,0xAD9E,0x43ee,0x83,0x05,0x48,0x7F,0x31,0x88,0xBF,0x7A); 83 | 84 | 85 | MIDL_DEFINE_GUID(IID, LIBID_OPCCOMN,0xB28EEDB1,0xAC6F,0x11d1,0x84,0xD5,0x00,0x60,0x8C,0xB8,0xA7,0xE9); 86 | 87 | #undef MIDL_DEFINE_GUID 88 | 89 | #ifdef __cplusplus 90 | } 91 | #endif 92 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/system/inc32/opccomn_ps.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/src/Technosoftware/DaAeHdaClient/system/inc32/opccomn_ps.dll -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/system/inc32/opcda.idl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/src/Technosoftware/DaAeHdaClient/system/inc32/opcda.idl -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/system/inc32/opchda_ps.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/src/Technosoftware/DaAeHdaClient/system/inc32/opchda_ps.dll -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/system/inc32/opcproxy.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/src/Technosoftware/DaAeHdaClient/system/inc32/opcproxy.dll -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/system/inc32/opcsec_ps.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/src/Technosoftware/DaAeHdaClient/system/inc32/opcsec_ps.dll -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/system/inc64/OpcCmd_i.c: -------------------------------------------------------------------------------- 1 | 2 | 3 | /* this ALWAYS GENERATED file contains the IIDs and CLSIDs */ 4 | 5 | /* link this file in with the server and any clients */ 6 | 7 | 8 | /* File created by MIDL compiler version 7.00.0500 */ 9 | /* at Mon Jan 17 19:13:42 2011 10 | */ 11 | /* Compiler settings for .\OpcCmd.idl: 12 | Oicf, W1, Zp8, env=Win64 (32b run) 13 | protocol : dce , ms_ext, c_ext, robust 14 | error checks: allocation ref bounds_check enum stub_data 15 | VC __declspec() decoration level: 16 | __declspec(uuid()), __declspec(selectany), __declspec(novtable) 17 | DECLSPEC_UUID(), MIDL_INTERFACE() 18 | */ 19 | //@@MIDL_FILE_HEADING( ) 20 | 21 | #pragma warning( disable: 4049 ) /* more than 64k source lines */ 22 | 23 | 24 | #ifdef __cplusplus 25 | extern "C"{ 26 | #endif 27 | 28 | 29 | #include 30 | #include 31 | 32 | #ifdef _MIDL_USE_GUIDDEF_ 33 | 34 | #ifndef INITGUID 35 | #define INITGUID 36 | #include 37 | #undef INITGUID 38 | #else 39 | #include 40 | #endif 41 | 42 | #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ 43 | DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) 44 | 45 | #else // !_MIDL_USE_GUIDDEF_ 46 | 47 | #ifndef __IID_DEFINED__ 48 | #define __IID_DEFINED__ 49 | 50 | typedef struct _IID 51 | { 52 | unsigned long x; 53 | unsigned short s1; 54 | unsigned short s2; 55 | unsigned char c[8]; 56 | } IID; 57 | 58 | #endif // __IID_DEFINED__ 59 | 60 | #ifndef CLSID_DEFINED 61 | #define CLSID_DEFINED 62 | typedef IID CLSID; 63 | #endif // CLSID_DEFINED 64 | 65 | #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ 66 | const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}} 67 | 68 | #endif !_MIDL_USE_GUIDDEF_ 69 | 70 | MIDL_DEFINE_GUID(IID, IID_CATID_OPCCMDServer10,0x2D869D5C,0x3B05,0x41fb,0x85,0x1A,0x64,0x2F,0xB2,0xB8,0x01,0xA0); 71 | 72 | 73 | MIDL_DEFINE_GUID(IID, IID_IOPCComandCallback,0x3104B527,0x2016,0x442d,0x96,0x96,0x12,0x75,0xDE,0x97,0x87,0x78); 74 | 75 | 76 | MIDL_DEFINE_GUID(IID, IID_IOPCCommandInformation,0x3104B525,0x2016,0x442d,0x96,0x96,0x12,0x75,0xDE,0x97,0x87,0x78); 77 | 78 | 79 | MIDL_DEFINE_GUID(IID, IID_IOPCCommandExecution,0x3104B526,0x2016,0x442d,0x96,0x96,0x12,0x75,0xDE,0x97,0x87,0x78); 80 | 81 | 82 | MIDL_DEFINE_GUID(IID, LIBID_OpcCmdLib,0x3104B520,0x2016,0x442d,0x96,0x96,0x12,0x75,0xDE,0x97,0x87,0x78); 83 | 84 | #undef MIDL_DEFINE_GUID 85 | 86 | #ifdef __cplusplus 87 | } 88 | #endif 89 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/system/inc64/OpcDx_i.c: -------------------------------------------------------------------------------- 1 | 2 | 3 | /* this ALWAYS GENERATED file contains the IIDs and CLSIDs */ 4 | 5 | /* link this file in with the server and any clients */ 6 | 7 | 8 | /* File created by MIDL compiler version 7.00.0500 */ 9 | /* at Mon Jan 17 19:13:42 2011 10 | */ 11 | /* Compiler settings for .\OpcDx.idl: 12 | Oicf, W1, Zp8, env=Win64 (32b run) 13 | protocol : dce , ms_ext, c_ext, robust 14 | error checks: allocation ref bounds_check enum stub_data 15 | VC __declspec() decoration level: 16 | __declspec(uuid()), __declspec(selectany), __declspec(novtable) 17 | DECLSPEC_UUID(), MIDL_INTERFACE() 18 | */ 19 | //@@MIDL_FILE_HEADING( ) 20 | 21 | #pragma warning( disable: 4049 ) /* more than 64k source lines */ 22 | 23 | 24 | #ifdef __cplusplus 25 | extern "C"{ 26 | #endif 27 | 28 | 29 | #include 30 | #include 31 | 32 | #ifdef _MIDL_USE_GUIDDEF_ 33 | 34 | #ifndef INITGUID 35 | #define INITGUID 36 | #include 37 | #undef INITGUID 38 | #else 39 | #include 40 | #endif 41 | 42 | #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ 43 | DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) 44 | 45 | #else // !_MIDL_USE_GUIDDEF_ 46 | 47 | #ifndef __IID_DEFINED__ 48 | #define __IID_DEFINED__ 49 | 50 | typedef struct _IID 51 | { 52 | unsigned long x; 53 | unsigned short s1; 54 | unsigned short s2; 55 | unsigned char c[8]; 56 | } IID; 57 | 58 | #endif // __IID_DEFINED__ 59 | 60 | #ifndef CLSID_DEFINED 61 | #define CLSID_DEFINED 62 | typedef IID CLSID; 63 | #endif // CLSID_DEFINED 64 | 65 | #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ 66 | const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}} 67 | 68 | #endif !_MIDL_USE_GUIDDEF_ 69 | 70 | MIDL_DEFINE_GUID(IID, IID_CATID_OPCDXServer10,0xA0C85BB8,0x4161,0x4fd6,0x86,0x55,0xBB,0x58,0x46,0x01,0xC9,0xE0); 71 | 72 | 73 | MIDL_DEFINE_GUID(IID, IID_IOPCConfiguration,0xC130D281,0xF4AA,0x4779,0x88,0x46,0xC2,0xC4,0xCB,0x44,0x4F,0x2A); 74 | 75 | 76 | MIDL_DEFINE_GUID(IID, LIBID_OpcDxLib,0x3CA18B30,0x1088,0x47d5,0x89,0x52,0x0B,0x12,0xB0,0x27,0xED,0x32); 77 | 78 | #undef MIDL_DEFINE_GUID 79 | 80 | #ifdef __cplusplus 81 | } 82 | #endif 83 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/system/inc64/OpcSec_i.c: -------------------------------------------------------------------------------- 1 | 2 | 3 | /* this ALWAYS GENERATED file contains the IIDs and CLSIDs */ 4 | 5 | /* link this file in with the server and any clients */ 6 | 7 | 8 | /* File created by MIDL compiler version 7.00.0500 */ 9 | /* at Mon Jan 17 19:13:34 2011 10 | */ 11 | /* Compiler settings for .\OpcSec.idl: 12 | Oicf, W1, Zp8, env=Win64 (32b run) 13 | protocol : dce , ms_ext, c_ext, robust 14 | error checks: allocation ref bounds_check enum stub_data 15 | VC __declspec() decoration level: 16 | __declspec(uuid()), __declspec(selectany), __declspec(novtable) 17 | DECLSPEC_UUID(), MIDL_INTERFACE() 18 | */ 19 | //@@MIDL_FILE_HEADING( ) 20 | 21 | #pragma warning( disable: 4049 ) /* more than 64k source lines */ 22 | 23 | 24 | #ifdef __cplusplus 25 | extern "C"{ 26 | #endif 27 | 28 | 29 | #include 30 | #include 31 | 32 | #ifdef _MIDL_USE_GUIDDEF_ 33 | 34 | #ifndef INITGUID 35 | #define INITGUID 36 | #include 37 | #undef INITGUID 38 | #else 39 | #include 40 | #endif 41 | 42 | #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ 43 | DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) 44 | 45 | #else // !_MIDL_USE_GUIDDEF_ 46 | 47 | #ifndef __IID_DEFINED__ 48 | #define __IID_DEFINED__ 49 | 50 | typedef struct _IID 51 | { 52 | unsigned long x; 53 | unsigned short s1; 54 | unsigned short s2; 55 | unsigned char c[8]; 56 | } IID; 57 | 58 | #endif // __IID_DEFINED__ 59 | 60 | #ifndef CLSID_DEFINED 61 | #define CLSID_DEFINED 62 | typedef IID CLSID; 63 | #endif // CLSID_DEFINED 64 | 65 | #define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ 66 | const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}} 67 | 68 | #endif !_MIDL_USE_GUIDDEF_ 69 | 70 | MIDL_DEFINE_GUID(IID, IID_IOPCSecurityNT,0x7AA83A01,0x6C77,0x11d3,0x84,0xF9,0x00,0x00,0x86,0x30,0xA3,0x8B); 71 | 72 | 73 | MIDL_DEFINE_GUID(IID, IID_IOPCSecurityPrivate,0x7AA83A02,0x6C77,0x11d3,0x84,0xF9,0x00,0x00,0x86,0x30,0xA3,0x8B); 74 | 75 | 76 | MIDL_DEFINE_GUID(IID, LIBID_OPCSEC,0x7AA83AFF,0x6C77,0x11d3,0x84,0xF9,0x00,0x00,0x86,0x30,0xA3,0x8B); 77 | 78 | #undef MIDL_DEFINE_GUID 79 | 80 | #ifdef __cplusplus 81 | } 82 | #endif 83 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/system/inc64/opcSec.idl: -------------------------------------------------------------------------------- 1 | //============================================================================== 2 | // TITLE: OpcSec.idl 3 | // 4 | // CONTENTS: 5 | // 6 | // Interface declarations for the OPC Security specifications. 7 | // 8 | // (c) Copyright 1999-2003 The OPC Foundation 9 | // ALL RIGHTS RESERVED. 10 | // 11 | // DISCLAIMER: 12 | // This code is provided by the OPC Foundation solely to assist in 13 | // understanding and use of the appropriate OPC Specification(s) and may be 14 | // used as set forth in the License Grant section of the OPC Specification. 15 | // This code is provided as-is and without warranty or support of any sort 16 | // and is subject to the Warranty and Liability Disclaimers which appear 17 | // in the printed OPC Specification. 18 | // 19 | // MODIFICATION LOG: 20 | // 21 | // Date By Notes 22 | // ---------- --- ----- 23 | // 2000/08/03 DJ Finalized for spec release 1.00 24 | // 2003/01/06 RSA Fixed formatting to comply with coding guidelines. 25 | // 26 | 27 | import "oaidl.idl"; 28 | 29 | //============================================================================== 30 | // IOPCSecurityNT 31 | 32 | [ 33 | object, 34 | uuid(7AA83A01-6C77-11d3-84F9-00008630A38B), 35 | pointer_default(unique) 36 | ] 37 | interface IOPCSecurityNT : IUnknown 38 | { 39 | HRESULT IsAvailableNT( 40 | [out] BOOL* pbAvailable 41 | ); 42 | 43 | HRESULT QueryMinImpersonationLevel( 44 | [out] DWORD* pdwMinImpLevel 45 | ); 46 | 47 | HRESULT ChangeUser( 48 | void 49 | ); 50 | }; 51 | 52 | //============================================================================== 53 | // IOPCSecurityPrivate 54 | 55 | [ 56 | object, 57 | uuid(7AA83A02-6C77-11d3-84F9-00008630A38B), 58 | pointer_default(unique) 59 | ] 60 | interface IOPCSecurityPrivate : IUnknown 61 | { 62 | HRESULT IsAvailablePriv( 63 | [out] BOOL* pbAvailable 64 | ); 65 | 66 | HRESULT Logon( 67 | [in, string] LPCWSTR szUserID, 68 | [in, string] LPCWSTR szPassword 69 | ); 70 | 71 | HRESULT Logoff( 72 | void 73 | ); 74 | }; 75 | 76 | //============================================================================== 77 | // Type Library 78 | 79 | [ 80 | uuid(7AA83AFF-6C77-11d3-84F9-00008630A38B), 81 | version(1.00), 82 | helpstring("OPC Security 1.00 Type Library") 83 | ] 84 | library OPCSEC 85 | { 86 | importlib("stdole32.tlb"); 87 | importlib("stdole2.tlb"); 88 | 89 | interface IOPCSecurityNT; 90 | interface IOPCSecurityPrivate; 91 | }; 92 | 93 | -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/system/inc64/opcda.idl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-rocket/opcdaaehda-client-solution-cpp/f4ea55b6d4f7e722d67d8f618ebb21fe93ec18c8/src/Technosoftware/DaAeHdaClient/system/inc64/opcda.idl -------------------------------------------------------------------------------- /src/Technosoftware/DaAeHdaClient/targetver.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * 7 | * The Software is subject to the Technosoftware GmbH Software License Agreement, 8 | * which can be found here: 9 | * https://technosoftware.com/documents/Technosoftware_SLA.pdf 10 | */ 11 | 12 | 13 | 14 | #pragma once 15 | 16 | // Including SDKDDKVer.h defines the highest available Windows platform. 17 | 18 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 19 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 20 | 21 | // #include 22 | #include 23 | 24 | #ifndef _WIN32_WINNT // Specifies that the minimum required platform is Windows Vista. 25 | #define _WIN32_WINNT 0x0600 // Change this to the appropriate value to target other versions of Windows. 26 | #endif -------------------------------------------------------------------------------- /src/Technosoftware/targetver.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2011-2021 Technosoftware GmbH. All rights reserved 3 | * Web: https://technosoftware.com 4 | * 5 | * Purpose: 6 | * 7 | * The Software is subject to the Technosoftware GmbH Software License Agreement, 8 | * which can be found here: 9 | * https://technosoftware.com/documents/Technosoftware_SLA.pdf 10 | */ 11 | 12 | 13 | #ifdef _MSC_VER 14 | 15 | #pragma once 16 | 17 | // Including SDKDDKVer.h defines the highest available Windows platform. 18 | 19 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 20 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 21 | 22 | // #include 23 | #include 24 | 25 | #ifndef _WIN32_WINNT // Specifies that the minimum required platform is Windows Vista. 26 | #define _WIN32_WINNT 0x0600 // Change this to the appropriate value to target other versions of Windows. 27 | #endif 28 | 29 | #endif --------------------------------------------------------------------------------