/*
 * zGo2Range.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_RANGE_H_INCLUDED
#define LMITECH_GO2_Z_RANGE_H_INCLUDED

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

typedef struct Go2RangeClass
{
    GO2_OBJECT_FIELDS(); 

    Go2Object system;

    zList measurements; 
} Go2RangeClass; 

GO2_EXPORT(Go2Status) Go2Range_Construct(Go2Range* range, Go2Object system); 
GO2_EXPORT(Go2Status) Go2Range_Destroy(Go2Range range); 

GO2_EXPORT(Go2Status) Go2Range_Init(Go2Range range, Go2Object system); 
GO2_EXPORT(Go2Status) Go2Range_VRelease(Go2Range range); 

GO2_EXPORT(Go2Status) Go2Range_Read(Go2Range range, zXml xml, zXmlItem item); 
GO2_EXPORT(Go2Status) Go2Range_Write(Go2Range range, zXml xml, zXmlItem item); 

GO2_EXPORT(Go2Status) Go2Range_FindMeasurement(Go2Range range, Go2Type type, Go2UInt32 id, Go2Measurement* measurement); 
GO2_EXPORT(Go2Status) Go2Range_CreateMeasurement(Go2Range range, Go2Type type, Go2UInt32 id, Go2Measurement* measurement); 

GO2_EXPORT(Go2Status) Go2Range_ParseType(const Go2Char* typeName, Go2Type* type); 
GO2_EXPORT(Go2Status) Go2Range_FormatType(Go2Type type, Go2Char* typeName, Go2UInt32 capacity); 

#include <Go2ApiEnd.h>

#endif      /* #ifndef LMITECH_GO2_Z_RANGE_H_INCLUDED */
