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
I do not mind the changes and moving to headers.
If you need some change then it is required and should be done.
I suggest little refactoring in address space. :)
Let remove subscriptions from address space internal.
Address space can hold only map with pair (SubscriptionID, callback) and
will return only subscription ID. Other fields like
RevisedPublishingInterval will be filled by InternalSubscription.
Publish queue will be migrated to the Internal subscription. Then there
will not be required method PopPublishResult.



2014-09-12 20:15 GMT+04:00 oroulet <notifications@github.com>:

> 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();
>
> If you really want I can move them back, but isn't best practice to have
> headers? Later we should anyway move requestqueue to a session object. They
> are part of session
> … <#1486aa609359ed3e_>
> On Sep 12, 2014 5:40 PM, "Olivier Roulet-Dubonnet" <
> olivier.roulet@gmail.com> wrote: I completely agree. But I thought it
> would help to take headers out.
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/FreeOpcUa/freeopcua/pull/46/files#r17487496>.
>



-- 
Best regards,
Alexander Rykovanov.