00001
#ifndef FIELDEXT_H
00002
#define FIELDEXT_H
00003
00004
#include <vector>
00005
#include "OFunction.h"
00006
#include "DataType.h"
00007
00008
using namespace std;
00009
BOREALIS_NAMESPACE_BEGIN
00010
00011 class FieldExt :
public OFunction
00012 {
00013
public:
00014
FieldExt( int32 port,
char type, int32 offset, int32 size );
00015
FieldExt(
const char* ident_string );
00016
FieldExt(
const string ident_string );
00017
virtual ~FieldExt();
00018 FieldExt() { COREDUMP <<
"Should not be called!"; };
00019
00020
virtual char*
evaluate(
char *tuple );
00021
00022
virtual char*
evaluateAsChar(
char *tuple,
00023 int32 &return_size );
00024
00025
virtual char*
evaluateAsChar(
char *tuple,
00026 int32 &return_size,
00027
bool addnull );
00028
00029
virtual char*
evaluate(
char *tuple1,
char *tuple2 );
00030
00034
void evaluateIntoLocation(
char *tuple,
char *loc );
00035
00036 int32
getReturnedSize();
00037
char getType();
00038 int32
getOffset();
00039
void setPort( int32 i );
00040
00041 vector<DataType>
getReturnTypes();
00042
00044 string
as_string() const;
00045
00046
00047 private:
00048
void initFromString( const
char* ident_string );
00049
00050 int32 _port;
00051
char _type;
00052 int32 _offset;
00053 int32 _size;
00054 };
00055
00056 BOREALIS_NAMESPACE_END
00057 #endif