blob: 172da99c80e2ef80d1a7b93d04c891ac53ed60b7 [file]
/* $Id$
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to you under the Apache License, Version
* 2.0 (the "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/*
* perf_valufact.h
* perf implementation of value factory
*/
#ifndef PERF_VALUFACT_H
#define PERF_VALUFACT_H
#include "etch_defvalufact.h"
typedef default_value_factory perf_value_factory;
typedef struct perfvf_statics perfvf_statics;
unsigned short CLASSID_PERF_VALUFACT_IMPL;
unsigned short CLASSID_SERIALIZER_PERF_POINT;
/**
* perfvf_statics
*/
typedef struct perfvf_statics
{
etch_type* _mt_etch_xmpl_perfserver_add;
etch_type* _mt_etch_xmpl_perfclient_result_add;
etch_type* _mt_etch_xmpl_perfserver_sum;
etch_type* _mt_etch_xmpl_perfclient_result_sum;
etch_type* _mt_etch_xmpl_perfserver_report;
etch_type* _mt_etch_xmpl_perfclient_result_report;
etch_type* _mt_etch_xmpl_perfserver_dist;
etch_type* _mt_etch_xmpl_perfclient_result_dist;
etch_type* _mt_etch_xmpl_perfserver_add2;
etch_type* _mt_etch_xmpl_perfclient_result_add2;
etch_type* _mt_etch_xmpl_perfserver_report2;
etch_type* _mt_etch_xmpl_perfclient_result_report2;
etch_type* _mt_etch_xmpl_perf_point;
etch_field* _mf_x;
etch_field* _mf_y;
etch_field* _mf_values;
etch_field* _mf_code;
etch_field* _mf_a;
etch_field* _mf_b;
etch_field* _mf_ts;
etch_field* _mf_ms;
etch_serializer* serializer_point;
wchar_t* str_etch_perf_x;
wchar_t* str_etch_perf_y;
wchar_t* str_etch_perf_values;
wchar_t* str_etch_perf_code;
wchar_t* str_etch_perf_a;
wchar_t* str_etch_perf_b;
wchar_t* str_etch_perf_ts;
wchar_t* str_etch_perf_ms;
wchar_t* str_etch_perf_srv_add;
wchar_t* str_etch_perf_cli_result_add;
wchar_t* str_etch_perf_srv_sum;
wchar_t* str_etch_perf_cli_result_sum;
wchar_t* str_etch_perf_srv_report;
wchar_t* str_etch_perf_srv_dist;
wchar_t* str_etch_perf_cli_result_dist;
wchar_t* str_etch_perf_srv_add2;
wchar_t* str_etch_perf_cli_result_add2;
wchar_t* str_etch_perf_srv_report2;
wchar_t* str_etch_perf_point;
} perfvf_statics;
/* todo make this a true singleton */
perfvf_statics* _g_perf_statics;
/**
* perf_value_factory_impl
* perf extension of default value factory
*/
typedef struct perf_value_factory_impl
{
unsigned int hashkey;
unsigned short obj_type;
unsigned short class_id;
struct i_value_factory* vtab;
int (*destroy)(void*);
void*(*clone) (void*);
obj_gethashkey get_hashkey;
struct objmask* parent;
etchresult* result;
unsigned int refcount;
unsigned int length;
unsigned char is_null;
unsigned char is_copy;
unsigned char is_static;
unsigned char reserved;
perfvf_statics statics;
} perf_value_factory_impl;
perf_value_factory* new_perf_value_factory ();
#endif /* #ifndef PERF_VALUFACT_H */