WSF
WsfXIO_Query.hpp
Go to the documentation of this file.
1// ****************************************************************************
2// CUI
3//
4// The Advanced Framework for Simulation, Integration, and Modeling (AFSIM)
5//
6// Copyright 2003-2015 The Boeing Company. All rights reserved.
7//
8// The use, dissemination or disclosure of data in this file is subject to
9// limitation or restriction. See accompanying README and LICENSE for details.
10// ****************************************************************************
11
12#ifndef WSFXIO_QUERY_HPP
13#define WSFXIO_QUERY_HPP
14
15#include "wsf_export.h"
16
17#include <vector>
18
19#include "GenUniqueId.hpp"
20#include "UtCallback.hpp"
21#include "UtCallbackHolder.hpp"
22#include "xio/WsfXIO.hpp"
26
30{
31public:
32 WsfXIO_Query(WsfXIO_Connection* aConnectionPtr);
33 virtual ~WsfXIO_Query();
34
35 void SetTimeout(double aTimeoutSeconds);
36
37 const GenUniqueId& GetQueryId() const { return mId; }
38
39 virtual void HandleResolution(WsfXIO_QueryResolutionPkt& aPkt);
40
41 virtual void Complete();
42
45
48
50 UtCallbackListN<void(WsfXIO_Query*)> OnComplete;
51
52protected:
53 virtual void HandleDisconnect(WsfXIO_Connection* aConnectionPtr);
54 virtual void HandleTimeout();
55
57 GenUniqueId mId;
59 UtCallbackHolder mCallbacks;
60};
61
66{
67public:
68 typedef std::vector<WsfXIO_Query*> QueryList;
69
71 : mInterfacePtr(aInterfacePtr)
72 {
73 }
74
76
77 void AddQuery(WsfXIO_Query* aQueryPtr);
78
79 void SetTimeout(double aWaitTimeSeconds);
80
81 void Clear();
82
85 UtCallbackListN<void(WsfXIO_QuerySet*)> OnComplete;
86
90 void GetCompleteQueries(QueryList& aQueryList) const { aQueryList = mCompleteQueries; }
92 void GetIncompleteQueries(QueryList& aQueryList) const { aQueryList = mIncompleteQueries; }
93
94 void GetSuccessfulQueries(QueryList& aQueryList) const;
95
96protected:
97 void HandleTimeout();
98 void HandleQueryComplete(WsfXIO_Query* aQueryPtr);
99
101 UtCallbackHolder mCallbacks;
104};
105
106#endif
#define WSF_EXPORT
Definition WsfXIO_Export.hpp:35
Definition WsfXIO_Connection.hpp:37
Definition WsfXIO_Interface.hpp:54
Query response for simple or failed queries.
Definition WsfXIO_PacketRegistry.hpp:390
std::vector< WsfXIO_Query * > QueryList
Definition WsfXIO_Query.hpp:68
WsfXIO_Interface * mInterfacePtr
Definition WsfXIO_Query.hpp:100
void HandleTimeout()
Definition WsfXIO_Query.cpp:137
UtCallbackHolder mCallbacks
Definition WsfXIO_Query.hpp:101
QueryList mCompleteQueries
Definition WsfXIO_Query.hpp:102
WsfXIO_QuerySet(WsfXIO_Interface *aInterfacePtr)
Definition WsfXIO_Query.hpp:70
QueryList mIncompleteQueries
Definition WsfXIO_Query.hpp:103
void AddQuery(WsfXIO_Query *aQueryPtr)
Adds a query to the query set. This object takes ownership of aQuery.
Definition WsfXIO_Query.cpp:88
void GetSuccessfulQueries(QueryList &aQueryList) const
Copies the list of successful queries to aQueryList.
Definition WsfXIO_Query.cpp:117
const QueryList & GetCompleteQueries() const
Returns a list of completed queries.
Definition WsfXIO_Query.hpp:88
void GetIncompleteQueries(QueryList &aQueryList) const
Copies the list of incomplete queries to aQueryList.
Definition WsfXIO_Query.hpp:92
void HandleQueryComplete(WsfXIO_Query *aQueryPtr)
Definition WsfXIO_Query.cpp:101
void GetCompleteQueries(QueryList &aQueryList) const
Gets a list of completed queries.
Definition WsfXIO_Query.hpp:90
~WsfXIO_QuerySet()
Definition WsfXIO_Query.hpp:75
UtCallbackListN< void(WsfXIO_QuerySet *)> OnComplete
Definition WsfXIO_Query.hpp:85
void Clear()
Removes all queries from the query set.
Definition WsfXIO_Query.cpp:144
void SetTimeout(double aWaitTimeSeconds)
Definition WsfXIO_Query.cpp:132
Definition WsfXIO_Query.hpp:30
UtCallbackHolder mCallbacks
Definition WsfXIO_Query.hpp:59
wsf::xio::QueryResult GetResult() const
Returns the result of the query.
Definition WsfXIO_Query.hpp:47
WsfXIO_Connection * GetConnection() const
Returns the connection to the requested application.
Definition WsfXIO_Query.hpp:44
UtCallbackListN< void(WsfXIO_Query *)> OnComplete
Callback list invoked when the query is completed.
Definition WsfXIO_Query.hpp:50
void SetTimeout(double aTimeoutSeconds)
Definition WsfXIO_Query.cpp:61
WsfXIO_Connection * mConnectionPtr
Definition WsfXIO_Query.hpp:58
wsf::xio::QueryResult mResult
Definition WsfXIO_Query.hpp:56
virtual void HandleTimeout()
Definition WsfXIO_Query.cpp:67
GenUniqueId mId
Definition WsfXIO_Query.hpp:57
virtual void HandleDisconnect(WsfXIO_Connection *aConnectionPtr)
Definition WsfXIO_Query.cpp:49
WsfXIO_Query(WsfXIO_Connection *aConnectionPtr)
Definition WsfXIO_Query.cpp:25
const GenUniqueId & GetQueryId() const
Definition WsfXIO_Query.hpp:37
QueryResult
Definition WsfXIO.hpp:31
Copyrights Multiple, All Rights Reserved