fix subscription server  bug introduced when porting to async, add support for event in server, reorganization

lots of changes. I should have tested more but there are so many changes it is better to merge otherwise it will be hard to merge
No the main reason i popPublishRequest .  publishrequest are shared
between  subscriptions.
And i thought it was anyway good practice to have header files...
On Sep 12, 2014 4:12 PM, "Alexander Rykovanov" <notifications@github.com>
wrote:

> In src/server/address_space_internal.h:
>
> > +        virtual std::vector<StatusCode> DeleteSubscriptions(const std::vector<IntegerID>& subscriptions);
> > +        virtual SubscriptionData CreateSubscription(const CreateSubscriptionRequest& request, std::function<void (PublishResult)> callback);
> > +        virtual MonitoredItemsData CreateMonitoredItems(const MonitoredItemsParameters& params);
> > +        virtual std::vector<StatusCode> DeleteMonitoredItems(const DeleteMonitoredItemsParameters& params);
> > +        virtual std::vector<AddNodesResult> AddNodes(const std::vector<AddNodesItem>& items);
> > +        virtual std::vector<StatusCode> AddReferences(const std::vector<AddReferencesItem>& items);
> > +        virtual std::vector<BrowsePathResult> TranslateBrowsePathsToNodeIds(const TranslateBrowsePathsParameters& params) const;
> > +        virtual std::vector<ReferenceDescription> Browse(const OpcUa::NodesQuery& query) const;
> > +        virtual std::vector<ReferenceDescription> BrowseNext() const;
> > +        virtual std::vector<DataValue> Read(const ReadParameters& params) const;
> > +        virtual std::vector<StatusCode> Write(const std::vector<OpcUa::WriteValue>& values);
> > +        virtual void Publish(const PublishRequest& request);
> > +
> > +        //Server side methods
> > +        void DeleteAllSubscriptions();
> > +        boost::asio::io_service& GetIOService();
>
> As I understand this is main purpose for moving definition into header.
> This is not right.
> Let pass io_service to the constructor and to the CreateAddressSpace.
> At high level will be one instance of io_service. It may be created on
> stack and baing holded as member of OPCUAServer.
> Also is better to create an addon. This addon can be configured in the
> config file. For example with number of threads for processing requests,
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/FreeOpcUa/freeopcua/pull/46/files#r17480442>.
>