server_object.h
Go to the documentation of this file.
00001 /******************************************************************************
00002  *   Copyright (C) 2013-2014 by Alexander Rykovanov                        *
00003  *   rykovanov.as@gmail.com                                                   *
00004  *                                                                            *
00005  *   This library is free software; you can redistribute it and/or modify     *
00006  *   it under the terms of the GNU Lesser General Public License as           *
00007  *   published by the Free Software Foundation; version 3 of the License.     *
00008  *                                                                            *
00009  *   This library is distributed in the hope that it will be useful,          *
00010  *   but WITHOUT ANY WARRANTY; without even the implied warranty of           *
00011  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            *
00012  *   GNU Lesser General Public License for more details.                      *
00013  *                                                                            *
00014  *   You should have received a copy of the GNU Lesser General Public License *
00015  *   along with this library; if not, write to the                            *
00016  *   Free Software Foundation, Inc.,                                          *
00017  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.                *
00018  ******************************************************************************/
00019 
00020 #pragma once
00021 
00022 #include <opc/ua/services/services.h>
00023 #include <opc/ua/model.h>
00024 
00025 #include "timer.h"
00026 
00027 namespace boost
00028 {
00029   namespace asio
00030   {
00031     class io_service;
00032   }
00033 }
00034 
00035 namespace OpcUa
00036 {
00037   namespace Server
00038   {
00039 
00040     class ServerObject
00041     {
00042     public:
00043       DEFINE_CLASS_POINTERS(ServerObject);
00044 
00045     public:
00046       ServerObject(Services::SharedPtr services, boost::asio::io_service& io, bool debug);
00047       ~ServerObject();
00048 
00049     private:
00050       Model::Object CreateServerObject(const Services::SharedPtr& services) const;
00051       void UpdateTime();
00052 
00053     private:
00054       Services::SharedPtr Server;
00055       boost::asio::io_service& Io;
00056       bool Debug = false;
00057       Model::Object Instance;
00058       Model::Variable ServerTime;
00059       PeriodicTimer Timer;
00060     };
00061 
00062   }
00063 }


ros_opcua_impl_freeopcua
Author(s): Denis Štogl
autogenerated on Sat Jun 8 2019 18:24:56