# PvaClientGet

pvaClientGet is a synchronous wrapper for the pvAccess::ChannelGet API, which is a callback based API. Thus it is easier to use than pvAccess::ChannelGet itself.

An instance of PvaClientGet is created via a call to one of the following:

    class PvaClientChannel
    ...
    {
    ...
        PvaClientGetPtr get(std::string const & request = "field(value,alarm,timeStamp)");
        PvaClientGetPtr createGet(std::string const & request = "");
        PvaClientGetPtr createGet(epics::pvData::PVStructurePtr const &  pvRequest);
    ...
    };
    An instance of PvaClientGet connects to a single channel.
    PvaClientGet has both synchronous methods, which block, and non blocking methods.

    PvaClientChannel has methods:

    connect             Calls issueConnect and then waitConnect.
    issueConnect        issues a request to the server to create the server side of ChannelPut.
    waitConnect         blocks until server responds that it has created the ChannelPut.
    get                 Calls issueGet and then waitGet.
    issueGet            issues a get request to the server.
    waitGet             waits until the server send a message that the get is complete.
    getData             get the data.

    issueConnect and issueGet do not block.
    All other methods can block.