⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stafdatatypes.h

📁 Software Testing Automation Framework (STAF)的开发代码
💻 H
字号:
/*****************************************************************************//* Software Testing Automation Framework (STAF)                              *//* (C) Copyright IBM Corp. 2001                                              *//*                                                                           *//* This software is licensed under the Common Public License (CPL) V1.0.     *//*****************************************************************************/#ifndef STAF_DataTypes#define STAF_DataTypes#include "STAFString.h"#ifdef __cplusplusextern "C" {#endif/* Begin C language definitions */typedef enum{    kSTAFNoneObject               = 0,    kSTAFScalarStringObject       = 1,    kSTAFListObject               = 2,    kSTAFMapObject                = 3,    kSTAFMarshallingContextObject = 4} STAFObjectType_t;typedef struct STAFObjectImpl *STAFObject_t;typedef struct STAFObjectIteratorImpl *STAFObjectIterator_t;typedef enum{    kSTAFMarshallingDefaults = 0x00000000} STAFObjectMarshallingFlags_t;typedef enum{    kSTAFUnmarshallingDefaults = 0x00000000,    kSTAFIgnoreIndirectObjects = 0x00000001} STAFObjectUnmarshallingFlags_t;// Object constructors/destructors//// Note: When a STAFObject is destructed, it recursively deletes all nested//       objects//// Note: Might need to require a Marshalling Context in order to be able//       to construct objects.  It could be handy for validating metadata, etc.STAFRC_t STAFObjectConstructCopy(STAFObject_t *copy, STAFObject_t source);STAFRC_t STAFObjectConstructReference(STAFObject_t *ref, STAFObject_t source);STAFRC_t STAFObjectConstructNone(STAFObject_t *pNone);STAFRC_t STAFObjectConstructScalarString(STAFObject_t *pScalar,                                         STAFStringConst_t string);STAFRC_t STAFObjectConstructList(STAFObject_t *list);STAFRC_t STAFObjectConstructMap(STAFObject_t *map);STAFRC_t STAFObjectConstructMarshallingContext(STAFObject_t *context);STAFRC_t STAFObjectDestruct(STAFObject_t *object);// General functionsSTAFRC_t STAFObjectIsStringMarshalledData(STAFStringConst_t string,                                          unsigned int *isMarshalledData);// Object functionsSTAFRC_t STAFObjectGetType(STAFObject_t object, STAFObjectType_t *type);STAFRC_t STAFObjectGetSize(STAFObject_t object, unsigned int *size);STAFRC_t STAFObjectIsReference(STAFObject_t object, unsigned int *isRef);STAFRC_t STAFObjectUnmarshallFromString(STAFObject_t *newContext,                                        STAFStringConst_t string,                                        STAFObject_t context,                                        unsigned int flags);STAFRC_t STAFObjectMarshallToString(STAFObject_t object, STAFObject_t context,                                    STAFString_t *string, unsigned int flags);STAFRC_t STAFObjectGetStringValue(STAFObject_t object, STAFString_t *string);STAFRC_t STAFObjectGetFormattedStringValue(STAFObject_t object,                                           STAFString_t *string,                                           unsigned int flags);// Scalar functionsSTAFRC_t STAFObjectScalarGetStringValue(STAFObject_t object,                                        STAFStringConst_t *string);STAFRC_t STAFObjectScalarGetUIntValue(STAFObject_t object,                                      unsigned int *uInt,                                      unsigned int defaultValue);// List functionsSTAFRC_t STAFObjectListAppend(STAFObject_t list, STAFObject_t object);// Iterator functionsSTAFRC_t STAFObjectConstructListIterator(STAFObjectIterator_t *iter,                                         STAFObject_t list);STAFRC_t STAFObjectIteratorHasNext(STAFObjectIterator_t iter,                                   unsigned int *hasNext);STAFRC_t STAFObjectIteratorGetNext(STAFObjectIterator_t iter,                                   STAFObject_t *object);STAFRC_t STAFObjectIteratorDestruct(STAFObjectIterator_t *iter);// Map functionsSTAFRC_t STAFObjectMapGet(STAFObject_t map, STAFStringConst_t key,                          STAFObject_t *object);STAFRC_t STAFObjectMapPut(STAFObject_t map, STAFStringConst_t key,                          STAFObject_t object);STAFRC_t STAFObjectMapHasKey(STAFObject_t map, STAFStringConst_t key,                             unsigned int *hasKey);STAFRC_t STAFObjectConstructMapKeyIterator(STAFObjectIterator_t *pIter,                                           STAFObject_t map);STAFRC_t STAFObjectConstructMapValueIterator(STAFObjectIterator_t *pIter,                                             STAFObject_t map);// Marshalling Context functionsSTAFRC_t STAFObjectMarshallingContextSetMapClassDefinition(    STAFObject_t context,    STAFStringConst_t name,    STAFObject_t mapClassDefinition);STAFRC_t STAFObjectMarshallingContextGetMapClassDefinition(    STAFObject_t context,    STAFStringConst_t name,    STAFObject_t *mapClassDefinition);STAFRC_t STAFObjectMarshallingContextHasMapClassDefinition(    STAFObject_t context,    STAFStringConst_t name,    unsigned int *pHasMapClassDefinition);STAFRC_t STAFObjectMarshallingContextSetRootObject(STAFObject_t context,                                                   STAFObject_t object);STAFRC_t STAFObjectMarshallingContextGetRootObject(STAFObject_t context,                                                   STAFObject_t *object);STAFRC_t STAFObjectMarshallingContextAdoptRootObject(STAFObject_t context,                                                     STAFObject_t *object);STAFRC_t STAFObjectMarshallingContextGetPrimaryObject(STAFObject_t context,                                                      STAFObject_t *object);STAFRC_t STAFObjectConstructMapClassDefinitionIterator(    STAFObjectIterator_t *pIter, STAFObject_t context);/* End C language definitions */#ifdef __cplusplus}/* Begin C++ language definitions */#include "STAFRefPtr.h"class STAFObject;typedef STAFRefPtr<STAFObject> STAFObjectPtr;class STAFObjectIterator{public:    bool hasNext();    STAFObjectPtr next();    ~STAFObjectIterator();private:    // Don't allow copy construction or assignment    STAFObjectIterator(const STAFObjectIterator &);    STAFObjectIterator &operator=(const STAFObjectIterator &);    STAFObjectIterator(STAFObjectIterator_t iter);    friend class STAFObject;    STAFObjectIterator_t fIter;};typedef STAFRefPtr<STAFObjectIterator> STAFObjectIteratorPtr;class STAFMapClassDefinition;typedef STAFRefPtr<STAFMapClassDefinition> STAFMapClassDefinitionPtr;class STAFMapClassDefinition{public:    static STAFMapClassDefinitionPtr create(const STAFString &name);    static STAFMapClassDefinitionPtr createReference(        STAFMapClassDefinitionPtr source);    STAFObjectPtr createInstance();    STAFMapClassDefinitionPtr reference();    void addKey(const STAFString &keyName);    void addKey(const STAFString &keyName, const STAFString &displayName);    void setKeyProperty(const STAFString &keyName, const STAFString &propName,                        const STAFString &propValue);    STAFObjectIteratorPtr keyIterator();    STAFString name() const;    STAFObjectPtr getMapClassDefinitionObject();private:    STAFMapClassDefinition(STAFObjectPtr mapClassDefObj);    friend class STAFObject;    STAFObjectPtr fMapClassDefObj;};class STAFObject{public:    // Creation methods    static STAFObjectPtr create(STAFObject_t source);    static STAFObjectPtr createReference(const STAFObject &source);    static STAFObjectPtr createReference(const STAFObjectPtr &source);    static STAFObjectPtr createReference(STAFObject_t source);    static STAFObjectPtr createNone();    static STAFObjectPtr createScalar(const STAFString &aString);    static STAFObjectPtr createList();    static STAFObjectPtr createMap();    static STAFObjectPtr createMarshallingContext();    // General methods    static bool isMarshalledData(const STAFString &aString);    // General object methods    STAFObjectType_t type();    unsigned int size();    bool isRef();    STAFObjectPtr reference();    STAFString asString();    STAFString asFormattedString();    STAFString marshall(unsigned int flags = kSTAFMarshallingDefaults);    void marshall(STAFString &output,                  unsigned int flags = kSTAFMarshallingDefaults);    // Note: This method always returns a Marshalling Context    static STAFObjectPtr unmarshall(const STAFString &input,                                    unsigned int flags =                                    kSTAFUnmarshallingDefaults);    STAFObject_t getImpl();    // List methods    void append(const STAFObjectPtr &objPtr);    void append(const STAFString &aString);    STAFObjectIteratorPtr iterate();    // Map methods    bool hasKey(const STAFString &key);    STAFObjectPtr get(const STAFString &key);    void put(const STAFString &key, const STAFObjectPtr &objPtr);    void put(const STAFString &key, const STAFString &aString);    STAFObjectIteratorPtr keyIterator();    STAFObjectIteratorPtr valueIterator();    // Marshalling Context methods    void setMapClassDefinition(const STAFMapClassDefinitionPtr &defPtr);    STAFMapClassDefinitionPtr getMapClassDefinition(const STAFString &name);    bool hasMapClassDefinition(const STAFString &name);    STAFObjectIteratorPtr mapClassDefinitionIterator();    void setRootObject(const STAFObjectPtr &objPtr);    STAFObjectPtr getRootObject();    // Destructor    ~STAFObject();private:    // Don't allow copy construction or assignment    STAFObject(const STAFObject &);    STAFObject &operator=(const STAFObject &);    friend class STAFObjectIterator;    enum ObjectType    {        STAF_NONE_OBJECT                = 0,        STAF_LIST_OBJECT                = 1,        STAF_MAP_OBJECT                 = 2,        STAF_MARSHALLING_CONTEXT_OBJECT = 3    };    enum ObjectRef    {        STAF_REF_OBJECT = 0    };    STAFObject(const STAFString &aString);    STAFObject(ObjectType objType);    STAFObject(ObjectRef objRefMarker, STAFObject_t);    STAFObject(STAFObject_t obj);    void append(const STAFObject &obj);    void put(const STAFString &key, const STAFObject &obj);    void setMapClassDefinition(const STAFMapClassDefinition &def);    void setRootObject(const STAFObject &obj);    STAFObject_t fObject;};// Now include inline definitions#ifndef STAF_NATIVE_COMPILER#include "STAFDataTypesInlImpl.cpp"#endif// End C++ language definitions// End #ifdef __cplusplus#endif#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -