This is Unofficial EPICS BASE Doxygen Site
pvac::detail::PutBuilder Class Reference

#include "client.h"

Classes

struct  Exec
 

Public Member Functions

PutBuilderset (const std::string &name, const epics::pvData::AnyScalar &value, bool required=true)
 
template<typename T >
PutBuilderset (const std::string &name, T value, bool required=true)
 
PutBuilderset (const std::string &name, const epics::pvData::shared_vector< const void > &value, bool required=true)
 
template<typename T >
PutBuilderset (const std::string &name, const epics::pvData::shared_vector< const T > &value, bool required=true)
 
void exec (double timeout=3.0)
 

Friends

class pvac::ClientChannel
 

Detailed Description

Helper to accumulate values to for a Put operation. Make sure to call exec() to begin operation.

Definition at line 467 of file client.h.

Member Function Documentation

void pvac::detail::PutBuilder::exec ( double  timeout = 3.0)

Definition at line 264 of file clientSync.cpp.

265 {
266  Exec work(*this);
267  {
268  Operation op(channel.put(&work, request));
269  work.wait(timeout);
270  }
271  switch(work.result.event) {
272  case PutEvent::Success: return;
273  case PutEvent::Fail:
274  throw std::runtime_error(work.result.message);
275  case PutEvent::Cancel:
276  THROW_EXCEPTION2(std::logic_error, "Cancelled!?!");
277  }
278 }
double timeout
Definition: pvutils.cpp:25
Operation put(PutCallback *cb, epics::pvData::PVStructure::const_shared_pointer pvRequest=epics::pvData::PVStructure::const_shared_pointer(), bool getprevious=false)
Definition: clientPut.cpp:211
#define THROW_EXCEPTION2(TYPE, MSG)
request cancelled before completion
Definition: client.h:92
request ends in failure. Check message
Definition: client.h:91
ChannelPut::shared_pointer op
Definition: pvAccess.cpp:132
It worked!
Definition: client.h:93
PutBuilder& pvac::detail::PutBuilder::set ( const std::string &  name,
const epics::pvData::AnyScalar value,
bool  required = true 
)
inline

Definition at line 494 of file client.h.

494  {
495  scalars.push_back(scalars_t::value_type(name, value, required));
496  return *this;
497  }
template<typename T >
PutBuilder& pvac::detail::PutBuilder::set ( const std::string &  name,
value,
bool  required = true 
)
inline

Definition at line 499 of file client.h.

499  {
500  return set(name, epics::pvData::AnyScalar(value), required);
501  }
Definition: link.h:174
PutBuilder& pvac::detail::PutBuilder::set ( const std::string &  name,
const epics::pvData::shared_vector< const void > &  value,
bool  required = true 
)
inline

Definition at line 502 of file client.h.

502  {
503  arrays.push_back(arrays_t::value_type(name, value, required));
504  return *this;
505  }
template<typename T >
PutBuilder& pvac::detail::PutBuilder::set ( const std::string &  name,
const epics::pvData::shared_vector< const T > &  value,
bool  required = true 
)
inline

Definition at line 507 of file client.h.

507  {
508  return set(name, epics::pvData::static_shared_vector_cast<const void>(value), required);
509  }

Friends And Related Function Documentation

friend class pvac::ClientChannel
friend

Definition at line 487 of file client.h.


The documentation for this class was generated from the following files: