1 /************** MongoFam H Declares Source Code File (.H) **************/ 2 /* Name: jmgfam.h Version 1.1 */ 3 /* */ 4 /* (C) Copyright to the author Olivier BERTRAND 2017 - 2020 */ 5 /* */ 6 /* This file contains the JAVA MongoDB access method classes declares */ 7 /***********************************************************************/ 8 #pragma once 9 10 /***********************************************************************/ 11 /* Include MongoDB library header files. */ 12 /***********************************************************************/ 13 #include "block.h" 14 //#include "mongo.h" 15 #include "jmgoconn.h" 16 17 typedef class JMGFAM *PJMGFAM; 18 typedef class MGODEF *PMGODEF; 19 20 /***********************************************************************/ 21 /* This is the Java MongoDB Access Method class declaration. */ 22 /***********************************************************************/ 23 class DllExport JMGFAM : public DOSFAM { 24 friend void mongo_init(bool); 25 public: 26 // Constructor 27 JMGFAM(PJDEF tdp); 28 #if defined(BSON_SUPPORT) 29 JMGFAM(PBDEF tdp); 30 #endif // BSON_SUPPORT 31 JMGFAM(PJMGFAM txfp); 32 33 // Implementation GetAmType(void)34 virtual AMT GetAmType(void) { return TYPE_AM_MGO; } GetUseTemp(void)35 virtual bool GetUseTemp(void) { return false; } 36 virtual int GetPos(void); 37 virtual int GetNextPos(void); Duplicate(PGLOBAL g)38 virtual PTXF Duplicate(PGLOBAL g) { return (PTXF)new(g) JMGFAM(this); } SetLrecl(int lrecl)39 void SetLrecl(int lrecl) { Lrecl = lrecl; } 40 41 // Methods 42 virtual void Reset(void); 43 virtual int GetFileLength(PGLOBAL g); 44 virtual int Cardinality(PGLOBAL g); 45 virtual int MaxBlkSize(PGLOBAL g, int s); AllocateBuffer(PGLOBAL g)46 virtual bool AllocateBuffer(PGLOBAL g) { return false; } 47 virtual int GetRowID(void); 48 virtual bool RecordPos(PGLOBAL g); 49 virtual bool SetPos(PGLOBAL g, int recpos); 50 virtual int SkipRecord(PGLOBAL g, bool header); 51 virtual bool OpenTableFile(PGLOBAL g); 52 virtual int ReadBuffer(PGLOBAL g); 53 virtual int WriteBuffer(PGLOBAL g); 54 virtual int DeleteRecords(PGLOBAL g, int irc); 55 virtual void CloseTableFile(PGLOBAL g, bool abort); 56 virtual void Rewind(void); 57 58 protected: OpenTempFile(PGLOBAL g)59 virtual bool OpenTempFile(PGLOBAL g) { return false; } MoveIntermediateLines(PGLOBAL g,bool * b)60 virtual bool MoveIntermediateLines(PGLOBAL g, bool *b) { return false; } RenameTempFile(PGLOBAL g)61 virtual int RenameTempFile(PGLOBAL g) { return RC_OK; } 62 virtual int InitDelete(PGLOBAL g, int fpos, int spos); 63 bool Init(PGLOBAL g); 64 //bool MakeCursor(PGLOBAL g); 65 66 // Members 67 JMgoConn *Jcp; // Points to a Mongo connection class 68 JDBCPARM Ops; // Additional parameters 69 PFBLOCK To_Fbt; // Pointer to temp file block 70 MODE Mode; 71 PCSZ Uristr; 72 PCSZ Db_name; 73 PCSZ Coll_name; 74 PCSZ Options; 75 PCSZ Filter; 76 PSZ Wrapname; 77 bool Done; // Init done 78 bool Pipe; 79 int Version; 80 int Curpos; // Cursor position of last fetch 81 }; // end of class JMGFAM 82 83