123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- #pragma once
- /*
- android (linux) implementation
- */
- #include "../field.h"
- #include "Vfs.h"
- #include <stdio.h>
- class ColumnField;
- class RecordBase
- {
- public:
- RecordBase();
- virtual ~RecordBase();
- Field *GetField(unsigned char ID);
- void Retain();
- void Release();
- void RemoveField(Field *field);
- void AddField(Field *field);
- protected:
- void Undelete(void);
- int InsertionPoint; // TODO: benski> might be able to pass this into WriteFields/WriteIndex
- int ref_count;
- typedef nu::PtrDeque2<Field> FieldList;
- FieldList Fields;
- };
- class Record : public RecordBase
- {
- public:
- Record(int RecordPos, int insertionPoint, VFILE *FileHandle,Table *p);
- bool InCache() { return ref_count > 1; }
- ColumnField *GetColumnByName(const char *name);
- int WriteFields(Table *ParentTable, int RecordIndex);
- int WriteIndex(Table *ParentTable, int RecordIndex);
- void Delete(Table *ParentTable, int RecordIndex);
- typedef bool (*FieldsWalker)(Record *record, Field *entry, void *context);
- void WalkFields(FieldsWalker callback, void *context);
- };
|