Program Listing for File standardPVField.h

Return to documentation for file (src/pv/standardPVField.h)

/* standardPVField.h */
/*
 * Copyright information and license terms for this software can be
 * found in the file LICENSE that is included with the distribution
 */
#ifndef STANDARDPVFIELD_H
#define STANDARDPVFIELD_H

#include <string>
#include <stdexcept>

#include <pv/pvIntrospect.h>
#include <pv/pvData.h>
#include <pv/standardField.h>

#include <shareLib.h>

namespace epics { namespace pvData {

class StandardPVField;
typedef std::tr1::shared_ptr<StandardPVField> StandardPVFieldPtr;

class epicsShareClass StandardPVField {
    EPICS_NOT_COPYABLE(StandardPVField)
public:
    static StandardPVFieldPtr getStandardPVField();
    ~StandardPVField();
    PVStructurePtr scalar(ScalarType type,std::string const & properties);
    PVStructurePtr scalarArray(ScalarType elementType, std::string const & properties);
    PVStructurePtr structureArray(StructureConstPtr const &structure,std::string const & properties);
    PVStructurePtr unionArray(UnionConstPtr const &punion,std::string const & properties);
    PVStructurePtr enumerated(StringArray const &choices);
    PVStructurePtr enumerated(StringArray const &choices, std::string const & properties);
private:
    StandardPVField();
    StandardFieldPtr standardField;
    FieldCreatePtr fieldCreate;
    PVDataCreatePtr pvDataCreate;
    std::string notImplemented;
};

epicsShareExtern StandardPVFieldPtr getStandardPVField();

}}
#endif  /* STANDARDPVFIELD_H */