This is Unofficial EPICS BASE Doxygen Site
epics::pvCopy::PVTimestampFilter Class Reference

A filter that sets a timeStamp to/from the current field or pvCopy. More...

#include "pvTimestampPlugin.h"

+ Inheritance diagram for epics::pvCopy::PVTimestampFilter:
+ Collaboration diagram for epics::pvCopy::PVTimestampFilter:

Public Member Functions

 POINTER_DEFINITIONS (PVTimestampFilter)
 
virtual ~PVTimestampFilter ()
 
bool filter (const epics::pvData::PVFieldPtr &pvCopy, const epics::pvData::BitSetPtr &bitSet, bool toCopy)
 
std::string getName ()
 
- Public Member Functions inherited from epics::pvCopy::PVFilter
 POINTER_DEFINITIONS (PVFilter)
 
virtual ~PVFilter ()
 

Static Public Member Functions

static PVTimestampFilterPtr create (const std::string &requestValue, const epics::pvData::PVFieldPtr &master)
 

Detailed Description

A filter that sets a timeStamp to/from the current field or pvCopy.

Definition at line 61 of file pvTimestampPlugin.h.

Constructor & Destructor Documentation

epics::pvCopy::PVTimestampFilter::~PVTimestampFilter ( )
virtual

Definition at line 57 of file pvTimestampPlugin.cpp.

58 {
59 }

Member Function Documentation

PVTimestampFilterPtr epics::pvCopy::PVTimestampFilter::create ( const std::string &  requestValue,
const epics::pvData::PVFieldPtr master 
)
static

Create a PVTimestampFilter.

Parameters
requestValueThe value part of a name=value request option.
masterThe field in the master PVStructure to which the PVFilter will be attached.
Returns
The PVFilter. A null is returned if master or requestValue is not appropriate for the plugin.

Definition at line 62 of file pvTimestampPlugin.cpp.

65 {
66  PVTimeStamp pvTimeStamp;
67  if(!pvTimeStamp.attach(master)) return PVTimestampFilterPtr();
68  bool current = false;
69  bool copy = false;
70  if(requestValue.compare("current")==0) {
71  current = true;
72  } else if(requestValue.compare("copy")==0){
73  copy = true;
74  } else {
75  return PVTimestampFilterPtr();
76  }
78  new PVTimestampFilter(current,copy,master));
79  return filter;
80 }
void copy(PVValueArray< T > &pvFrom, size_t fromOffset, size_t fromStride, PVValueArray< T > &pvTo, size_t toOffset, size_t toStride, size_t count)
Copy a subarray from one scalar array to another.
Methods for accessing a timeStamp structure.
Definition: pvTimeStamp.h:38
bool filter(const epics::pvData::PVFieldPtr &pvCopy, const epics::pvData::BitSetPtr &bitSet, bool toCopy)
std::tr1::shared_ptr< PVTimestampFilter > PVTimestampFilterPtr
bool attach(PVFieldPtr const &pvField)
Definition: pvTimeStamp.cpp:26
bool epics::pvCopy::PVTimestampFilter::filter ( const epics::pvData::PVFieldPtr pvCopy,
const epics::pvData::BitSetPtr bitSet,
bool  toCopy 
)
virtual

Perform a filter operation

Parameters
pvCopyThe field in the copy PVStructure.
bitSetA bitSet for copyPVStructure.
toCopy(true,false) means copy (from master to copy,from copy to master)
Returns
if filter (modified, did not modify) destination. Null is returned if master or requestValue is not appropriate for the plugin.

Implements epics::pvCopy::PVFilter.

Definition at line 90 of file pvTimestampPlugin.cpp.

91 {
92  if(current) {
93  timeStamp.getCurrent();
94  if(toCopy) {
95  if(!pvTimeStamp.attach(pvCopy)) return false;
96  } else {
97  if(!pvTimeStamp.attach(master)) return false;
98  }
99  pvTimeStamp.set(timeStamp);
100  bitSet->set(pvCopy->getFieldOffset());
101  return true;
102  }
103  if(copy) {
104  if(toCopy) {
105  if(!pvTimeStamp.attach(master)) return false;
106  pvTimeStamp.get(timeStamp);
107  if(!pvTimeStamp.attach(pvCopy)) return false;
108  pvTimeStamp.set(timeStamp);
109  bitSet->set(pvCopy->getFieldOffset());
110  } else {
111  if(!pvTimeStamp.attach(pvCopy)) return false;
112  pvTimeStamp.get(timeStamp);
113  if(!pvTimeStamp.attach(master)) return false;
114  pvTimeStamp.set(timeStamp);
115  }
116  return true;
117  }
118  return false;
119 }
void get(TimeStamp &timeStamp) const
Definition: pvTimeStamp.cpp:61
void copy(PVValueArray< T > &pvFrom, size_t fromOffset, size_t fromStride, PVValueArray< T > &pvTo, size_t toOffset, size_t toStride, size_t count)
Copy a subarray from one scalar array to another.
bool attach(PVFieldPtr const &pvField)
Definition: pvTimeStamp.cpp:26
bool set(TimeStamp const &timeStamp)
Definition: pvTimeStamp.cpp:70
string epics::pvCopy::PVTimestampFilter::getName ( )
virtual

Get the filter name.

Returns
The name.

Implements epics::pvCopy::PVFilter.

Definition at line 121 of file pvTimestampPlugin.cpp.

122 {
123  return name;
124 }
epics::pvCopy::PVTimestampFilter::POINTER_DEFINITIONS ( PVTimestampFilter  )

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