mrfioc2
2.3.0
|
#include <ostream>
#include <iostream>
#include <sstream>
#include <map>
#include <set>
#include <cstring>
#include <string>
#include <memory>
#include <stdexcept>
#include <typeinfo>
#include <compilerDependencies.h>
#include <epicsThread.h>
#include <epicsTypes.h>
#include "mrfCommon.h"
Go to the source code of this file.
Classes | |
class | alarm_exception |
class | mrf::opNotImplemented |
Requested operation is not implemented by the property. More... | |
struct | mrf::propertyBase |
An un-typed property. More... | |
struct | mrf::property< P > |
A bound, typed scalar property. More... | |
struct | mrf::property< P[1]> |
A bound, typed array property. More... | |
struct | mrf::property< void > |
A momentary/command. More... | |
struct | mrf::detail::unboundPropertyBase< C > |
An un-typed, un-bound property for class C. More... | |
class | mrf::detail::unboundProperty< C, P > |
An un-bound, typed scalar property. More... | |
class | mrf::detail::unboundProperty< C, P[1]> |
An un-bound, typed array property. More... | |
class | mrf::detail::unboundProperty< C, void > |
An un-bound momentary/command. More... | |
class | mrf::detail::propertyInstance< C, P > |
final scalar implementation More... | |
class | mrf::detail::propertyInstance< C, P[1]> |
final array implementation More... | |
class | mrf::detail::propertyInstance< C, void > |
class | mrf::Object |
Base object inspection. More... | |
struct | mrf::Object::_compName |
class | mrf::ObjectInst< C, Base > |
User implementation hook. More... | |
Namespaces | |
mrf | |
mrf::detail | |
Macros | |
#define | EPICS_UNUSED |
#define | OBJECT_BEGIN2(klass, Base) |
#define | OBJECT_BEGIN(klass) OBJECT_BEGIN2(klass, Object) |
#define | OBJECT_PROP1(NAME, GET) props->insert(std::make_pair(static_cast<const char*>(NAME), detail::makeUnboundProperty(NAME, GET) )) |
#define | OBJECT_PROP2(NAME, GET, SET) props->insert(std::make_pair(static_cast<const char*>(NAME), detail::makeUnboundProperty(NAME, GET, SET) )) |
#define | OBJECT_FACTORY(FN) addFactory(klassname, FN) |
#define | OBJECT_END(klass) |
#define EPICS_UNUSED |
Defines a scheme for working with "properties". A property being a some methods (eg. pair of setter and getter) used to move a value in and out of an otherwise opaque object.
Properties are associated with a class by a property name which can be used to retrieve a property.
Method signatures supported
get/set of scalar value P
void klass::setter(P v); P klass::getter() const;
get/set of array value P
void klass::setter(const P* vals, epicsUInt32 nelem); epicsUInt32 klass::getter(P* vals, epicsUInt32 maxelem); // returns nelem
A momentery/command
void klass::execer();
#define OBJECT_BEGIN | ( | klass | ) | OBJECT_BEGIN2(klass, Object) |
#define OBJECT_BEGIN2 | ( | klass, | |
Base | |||
) |
#define OBJECT_END | ( | klass | ) |
#define OBJECT_PROP1 | ( | NAME, | |
GET | |||
) | props->insert(std::make_pair(static_cast<const char*>(NAME), detail::makeUnboundProperty(NAME, GET) )) |