00001
00002
00003
00004
00009 #ifndef __CUSTOM_H__
00010 #define __CUSTOM_H__
00011
00012 #ifndef __FIELD_H__
00013 #include "field.h"
00014 #endif
00015 #ifndef __STORE_H__
00016 #include "handler.h"
00017 #endif
00018
00020
00021 class c4_CustomSeq : public c4_HandlerSeq
00022 {
00023 c4_CustomViewer* _viewer;
00024 bool _inited;
00025
00026 public:
00027 c4_CustomSeq (c4_CustomViewer* viewer_);
00028 virtual ~c4_CustomSeq ();
00029
00030 virtual int NumRows() const;
00031
00032 virtual bool RestrictSearch(c4_Cursor, int&, int&);
00033
00034 virtual void InsertAt(int, c4_Cursor, int =1);
00035 virtual void RemoveAt(int, int =1);
00036 virtual void Move(int from_, int);
00037
00038 bool DoGet(int row_, int col_, c4_Bytes& buf_) const;
00039 void DoSet(int row_, int col_, const c4_Bytes& buf_);
00040
00041 private:
00042 virtual c4_Handler* CreateHandler(const c4_Property&);
00043 };
00044
00046
00047 extern c4_CustomViewer* f4_CustSlice(c4_Sequence&, int, int , int);
00048 extern c4_CustomViewer* f4_CustProduct(c4_Sequence&, const c4_View&);
00049 extern c4_CustomViewer* f4_CustRemapWith(c4_Sequence&, const c4_View&);
00050 extern c4_CustomViewer* f4_CustPair(c4_Sequence&, const c4_View&);
00051 extern c4_CustomViewer* f4_CustConcat(c4_Sequence&, const c4_View&);
00052 extern c4_CustomViewer* f4_CustRename(c4_Sequence&,
00053 const c4_Property&, const c4_Property&);
00054 extern c4_CustomViewer* f4_CustGroupBy(c4_Sequence&,
00055 const c4_View&, const c4_Property&);
00056 extern c4_CustomViewer* f4_CustJoinProp(c4_Sequence&,
00057 const c4_ViewProp&, bool);
00058 extern c4_CustomViewer* f4_CustJoin(c4_Sequence&,
00059 const c4_View&, const c4_View&, bool);
00060
00062
00063 #endif