/*
 * zGo2Profile.h
 * 
 * Gocator system communication library
 * Copyright (C) 2010 by LMI Technologies Inc.
 * 
 * Licensed under The MIT License.
 * Redistributions of files must retain the above copyright notice.
 */
#ifndef LMITECH_GO2_Z_PROFILE_H_INCLUDED
#define LMITECH_GO2_Z_PROFILE_H_INCLUDED

#include <Go2Profile.h>
#include <z/zGo2Object.h>
#include <Go2System.h>
#include <zXml.h>
#include <zList.h>
#include <Go2ApiBegin.h>

typedef struct Go2ProfileClass
{
    GO2_OBJECT_FIELDS(); 

    Go2Object system; 
    
    zBool xAnchorEnabled; 
    Go2ProfileFeature xAnchorFeature; 
    zBool zAnchorEnabled; 
    Go2ProfileFeature zAnchorFeature; 

    zList measurements; 
} Go2ProfileClass; 

GO2_EXPORT(Go2Status) Go2Profile_Construct(Go2Profile* profile, Go2Object system); 
GO2_EXPORT(Go2Status) Go2Profile_Destroy(Go2Profile profile); 

GO2_EXPORT(Go2Status) Go2Profile_Init(Go2Profile profile, Go2Object system); 
GO2_EXPORT(Go2Status) Go2Profile_VRelease(Go2Profile profile); 

GO2_EXPORT(Go2Status) Go2Profile_Read(Go2Profile profile, zXml xml, zXmlItem item); 
GO2_EXPORT(Go2Status) Go2Profile_Write(Go2Profile profile, zXml xml, zXmlItem item); 

GO2_EXPORT(Go2Status) Go2Profile_FindMeasurement(Go2Profile profile, Go2Type type, Go2UInt32 id, Go2Measurement* measurement); 
GO2_EXPORT(Go2Status) Go2Profile_CreateMeasurement(Go2Profile profile, Go2Type type, Go2UInt32 id, Go2Measurement* measurement); 

GO2_EXPORT(Go2Status) Go2Profile_ParseType(const Go2Char* typeName, Go2Type* type);
GO2_EXPORT(Go2Status) Go2Profile_FormatType(Go2Type type, Go2Char* typeName, Go2UInt32 capacity);

#include <Go2ApiEnd.h>

#endif          /* #ifndef LMITECH_GO2_Z_PROFILE_H_INCLUDED */
