aggoperatorconf.nc

来自「nesC写的heed算法」· NC 代码 · 共 101 行

NC
101
字号
// $Id: AggOperatorConf.nc,v 1.4.4.3 2003/09/03 23:14:04 smadden Exp $/*									tab:4 * "Copyright (c) 2000-2003 The Regents of the University  of California.   * All rights reserved. * * Permission to use, copy, modify, and distribute this software and its * documentation for any purpose, without fee, and without written agreement is * hereby granted, provided that the above copyright notice, the following * two paragraphs and the author appear in all copies of this software. *  * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *  * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS." * * Copyright (c) 2002-2003 Intel Corporation * All rights reserved. * * This file is distributed under the terms in the attached INTEL-LICENSE      * file. If you do not find these files, copies can be found by writing to * Intel Research Berkeley, 2150 Shattuck Avenue, Suite 1300, Berkeley, CA,  * 94704.  Attention:  Intel License Inquiry. *//** * This configuration wires AggOperator to individual aggregates */ #ifndef NETWORK_MODULE#define NETWORK_MODULE	NetworkC#endifincludes Aggregates;configuration AggOperatorConf {provides {    interface Operator;    command TinyDBError addResults(QueryResult *qr, ParsedQuery *q, Expr *e);    command TinyDBError finalizeAggExpr(QueryResult *qr, ParsedQueryPtr q, Expr *e, char *result_buf);    command short getGroupNoFromQr(QueryResult *qr);  }}implementation {	components AggOperator, TinyAlloc, TupleRouterM, Tuple, ParsedQuery, ExprEvalC,			   NoLeds, QueryResult;	components AggregateUseM, MaxM, MinM, CountM, SumM, AvgM, ExpAvgM,			   WinMinM, WinMaxM, WinCountM, WinSumM, WinAvgM;#ifdef kFANCY_AGGS	components WinRandM, AdpDeltaM, DeltaM, TrendM, RandomLFSR, NETWORK_MODULE;#endif			   	Operator = AggOperator;	addResults = AggOperator.addResults;	finalizeAggExpr = AggOperator.finalizeAggExpr;	getGroupNoFromQr = AggOperator.getGroupNoFromQr;		AggOperator.MemAlloc -> TinyAlloc;	AggOperator.QueryProcessor -> TupleRouterM;	AggOperator.TupleIntf -> Tuple; 	AggOperator.ParsedQueryIntf -> ParsedQuery;	AggOperator.ExprEval -> ExprEvalC;	AggOperator.Leds -> NoLeds;	AggOperator.QueryResultIntf -> QueryResult;	AggOperator.signalError -> TupleRouterM.signalError;		//hook up aggregates	AggOperator.AggregateUse -> AggregateUseM;		//maybe we need a config for AggregateUse?    MaxM.Aggregate <- AggregateUseM.Agg[kMAX];    MinM.Aggregate <- AggregateUseM.Agg[kMIN];    CountM.Aggregate <- AggregateUseM.Agg[kCOUNT];    SumM.Aggregate <- AggregateUseM.Agg[kSUM];    AvgM.Aggregate <- AggregateUseM.Agg[kAVG];    ExpAvgM.Aggregate <- AggregateUseM.Agg[kEXP_AVG];    WinMinM.Aggregate <- AggregateUseM.Agg[kWIN_MIN];    WinMaxM.Aggregate <- AggregateUseM.Agg[kWIN_MAX];    WinCountM.Aggregate <- AggregateUseM.Agg[kWIN_COUNT];    WinSumM.Aggregate <- AggregateUseM.Agg[kWIN_SUM];    WinAvgM.Aggregate <- AggregateUseM.Agg[kWIN_AVG];#ifdef kFANCY_AGGS	WinRandM.Aggregate <- AggregateUseM.Agg[kWIN_RAND];	AdpDeltaM.Aggregate <- AggregateUseM.Agg[kADP_DELTA];	DeltaM.Aggregate <- AggregateUseM.Agg[kDELTA];	TrendM.Aggregate <- AggregateUseM.Agg[kTREND];	    WinRandM.Random -> RandomLFSR;	AdpDeltaM.NetworkMonitor -> NETWORK_MODULE;#endif}	

⌨️ 快捷键说明

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