⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ndb.hpp

📁 在AS4下编译通过
💻 HPP
📖 第 1 页 / 共 5 页
字号:
   * for more details.   *   * @param aMillisecondNumber Timeout specifier   *            Polling without wait is achieved by setting the    *            millisecond timer to zero.   * @param minNoOfEventsToWakeup Minimum number of transactions    *            which has to wake up before the poll-call will return.   *            If minNoOfEventsToWakeup is   *            set to a value larger than 1 then this is the minimum    *            number of transactions that need to complete before the    *            poll-call will return.   *            Setting it to zero means that one should wait for all   *            outstanding transactions to return before waking up.   * @param forceSend When operations should be sent to NDB Kernel.   *                  (See @ref secAdapt.)   * - 0: non-force, adaptive algorithm notices it (default);    * - 1: force send, adaptive algorithm notices it;    * - 2: non-force, adaptive algorithm does not notice the send.   * @return Number of transactions polled.   */  int  sendPollNdb(int aMillisecondNumber = WAITFOR_RESPONSE_TIMEOUT,		   int minNoOfEventsToWakeup = 1,		   int forceSend = 0);  /** @} *********************************************************************/#endif    /**    * @name Error Handling   * @{   */  /**   * Get the NdbError object   *   * @note The NdbError object is valid until a new NDB API method is called.   */  const NdbError & getNdbError() const;    /**   * Get a NdbError object for a specific error code   *   * The NdbError object is valid until you call a new NDB API method.   */  const NdbError & getNdbError(int errorCode);  /** @} *********************************************************************/#ifndef DOXYGEN_SHOULD_SKIP_INTERNAL  /**   * Get the application node identity.     *   * @return Node id of this application.   */  int getNodeId();  bool usingFullyQualifiedNames();  /**   * Different types of tampering with the NDB Cluster.   * <b>Only for debugging purposes only.</b>   */  enum TamperType	{     LockGlbChp = 1,           ///< Lock GCP    UnlockGlbChp,             ///< Unlock GCP    CrashNode,                ///< Crash an NDB node    ReadRestartGCI,           ///< Request the restart GCI id from NDB Cluster    InsertError               ///< Execute an error in NDB Cluster                               ///< (may crash system)  };  /**   * For testing purposes it is possible to tamper with the NDB Cluster   * (i.e. send a special signal to DBDIH, the NDB distribution handler).   * <b>This feature should only used for debugging purposes.</b>   * In a release versions of NDB Cluster,   * this call always return -1 and does nothing.   *    * @param aAction Action to be taken according to TamperType above   *   * @param aNode  Which node the action will be taken   *              -1:   Master DIH.   *            0-16:   Nodnumber.   * @return -1 indicates error, other values have meaning dependent    *          on type of tampering.   */  int NdbTamper(TamperType aAction, int aNode);    /**   * Return a unique tuple id for a table.  The id sequence is   * ascending but may contain gaps.   *   * @param aTableName table name   *   * @param cacheSize number of values to cache in this Ndb object   *   * @return 0 or -1 on error, and autoValue in out parameter   */  int getAutoIncrementValue(const char* aTableName,                             Uint64 & autoValue, Uint32 cacheSize, 			    Uint64 step = 1, Uint64 start = 1);  int getAutoIncrementValue(const NdbDictionary::Table * aTable,                             Uint64 & autoValue, Uint32 cacheSize, 			    Uint64 step = 1, Uint64 start = 1);  int readAutoIncrementValue(const char* aTableName,                             Uint64 & autoValue);  int readAutoIncrementValue(const NdbDictionary::Table * aTable,                             Uint64 & autoValue);  int setAutoIncrementValue(const char* aTableName,                            Uint64 autoValue, bool modify);  int setAutoIncrementValue(const NdbDictionary::Table * aTable,                            Uint64 autoValue, bool modify);private:  int getTupleIdFromNdb(Ndb_local_table_info* info,                        Uint64 & tupleId, Uint32 cacheSize,			Uint64 step = 1, Uint64 start = 1 );  int readTupleIdFromNdb(Ndb_local_table_info* info,                         Uint64 & tupleId);  int setTupleIdInNdb(Ndb_local_table_info* info,                      Uint64 tupleId, bool modify);  int checkTupleIdInNdb(Ndb_local_table_info* info,                         Uint64 tupleId);  int opTupleIdOnNdb(Ndb_local_table_info* info, Uint64 & opValue, Uint32 op);public:  /**   */  NdbTransaction* hupp( NdbTransaction* );  Uint32 getReference() const { return theMyRef;}  struct Free_list_usage  {    const char * m_name;    Uint32 m_created;    Uint32 m_free;    Uint32 m_sizeof;  };  Free_list_usage * get_free_list_usage(Free_list_usage*);#endif  /***************************************************************************** *	These are service routines used by the other classes in the NDBAPI. ****************************************************************************/private:    void setup(Ndb_cluster_connection *ndb_cluster_connection,	     const char* aCatalogName, const char* aSchemaName);  void connected(Uint32 block_reference);   NdbTransaction*  startTransactionLocal(Uint32 aPrio, Uint32 aFragmentId); // Connect the connection object to the Database.  int NDB_connect(Uint32 tNode);  NdbTransaction* doConnect(Uint32 nodeId);   void    doDisconnect();	     NdbReceiver*	        getNdbScanRec();// Get a NdbScanReceiver from idle list  NdbLabel*		getNdbLabel();	// Get a NdbLabel from idle list  NdbBranch*            getNdbBranch();	// Get a NdbBranch from idle list  NdbSubroutine*	getNdbSubroutine();// Get a NdbSubroutine from idle  NdbCall*		getNdbCall();	// Get a NdbCall from idle list  NdbApiSignal*	        getSignal();	// Get an operation from idle list  NdbRecAttr*	        getRecAttr();	// Get a receeive attribute object from					// idle list of the Ndb object.  NdbOperation* 	getOperation();	// Get an operation from idle list  NdbIndexScanOperation* getScanOperation(); // Get a scan operation from idle  NdbIndexOperation* 	getIndexOperation();// Get an index operation from idle  class NdbGlobalEventBufferHandle* getGlobalEventBufferHandle();  NdbBlob*              getNdbBlob();// Get a blob handle etc  void			releaseSignal(NdbApiSignal* anApiSignal);  void                  releaseSignalsInList(NdbApiSignal** pList);  void			releaseNdbScanRec(NdbReceiver* aNdbScanRec);  void			releaseNdbLabel(NdbLabel* anNdbLabel);  void			releaseNdbBranch(NdbBranch* anNdbBranch);  void			releaseNdbSubroutine(NdbSubroutine* anNdbSubroutine);  void			releaseNdbCall(NdbCall* anNdbCall);  void			releaseRecAttr (NdbRecAttr* aRecAttr);	  void		 	releaseOperation(NdbOperation* anOperation);	  void		 	releaseScanOperation(NdbIndexScanOperation*);  void                  releaseNdbBlob(NdbBlob* aBlob);  void                  check_send_timeout();  void                  remove_sent_list(Uint32);  Uint32                insert_completed_list(NdbTransaction*);  Uint32                insert_sent_list(NdbTransaction*);  // Handle a received signal. Used by both  // synchronous and asynchronous interface  void handleReceivedSignal(NdbApiSignal* anApiSignal, struct LinearSectionPtr ptr[3]);    // Receive response signals  int			receiveResponse(int waitTime = WAITFOR_RESPONSE_TIMEOUT);  int			sendRecSignal(Uint16 aNodeId,				      Uint32 aWaitState,				      NdbApiSignal* aSignal,                                      Uint32 nodeSequence);    // Sets Restart GCI in Ndb object  void			RestartGCI(int aRestartGCI);  // Get block number of this NDBAPI object  int			getBlockNumber();    /****************************************************************************   *	These are local service routines used by this class.	   ***************************************************************************/    int			createConIdleList(int aNrOfCon);  int 		createOpIdleList( int nrOfOp );	  void	freeOperation();          // Free the first idle operation.  void	freeScanOperation();      // Free the first idle scan operation.  void	freeIndexOperation();     // Free the first idle index operation.  void	freeNdbCon();	// Free the first idle connection.  void	freeSignal();	// Free the first idle signal	  void	freeRecAttr();	// Free the first idle receive attr obj	  void	freeNdbLabel();	// Free the first idle NdbLabel obj  void	freeNdbBranch();// Free the first idle NdbBranch obj  void	freeNdbSubroutine();// Free the first idle NdbSubroutine obj  void	freeNdbCall();	    // Free the first idle NdbCall obj  void	freeNdbScanRec();   // Free the first idle NdbScanRec obj  void  freeNdbBlob();      // Free the first etc  NdbTransaction* getNdbCon();	// Get a connection from idle list    /**   * Get a connected NdbTransaction to nodeId   *   Returns NULL if none found   */  NdbTransaction* getConnectedNdbTransaction(Uint32 nodeId);  // Release and disconnect from DBTC a connection  // and seize it to theConIdleList  void	releaseConnectToNdb (NdbTransaction*);  // Release a connection to idle list  void 	releaseNdbCon (NdbTransaction*);    int	checkInitState();		// Check that we are initialized  void	report_node_failure(Uint32 node_id);           // Report Failed node  void	report_node_failure_completed(Uint32 node_id); // Report Failed node(NF comp.)  void	checkFailedNode();		// Check for failed nodes  int   NDB_connect();     // Perform connect towards NDB Kernel  // Release arrays of NdbTransaction pointers  void  releaseTransactionArrays();       Uint32  pollCompleted(NdbTransaction** aCopyArray);  void    sendPrepTrans(int forceSend);  void    reportCallback(NdbTransaction** aCopyArray, Uint32 aNoOfComplTrans);  void    waitCompletedTransactions(int milliSecs, int noOfEventsToWaitFor);  void    completedTransaction(NdbTransaction* aTransaction);  void    completedScanTransaction(NdbTransaction* aTransaction);  void    abortTransactionsAfterNodeFailure(Uint16 aNodeId);  static  const char * externalizeTableName(const char * internalTableName,                                    bool fullyQualifiedNames);  const char * externalizeTableName(const char * internalTableName);  const BaseString internalize_table_name(const char * external_name) const;  static  const char * externalizeIndexName(const char * internalIndexName,                                    bool fullyQualifiedNames);  const char * externalizeIndexName(const char * internalIndexName);  const BaseString internalize_index_name(const NdbTableImpl * table,                                          const char * external_name) const;  static  const BaseString getDatabaseFromInternalName(const char * internalName);  static   const BaseString getSchemaFromInternalName(const char * internalName);  void*              int2void     (Uint32 val);  NdbReceiver*       void2rec     (void* val);  NdbTransaction*     void2con     (void* val);  NdbOperation*      void2rec_op  (void* val);  NdbIndexOperation* void2rec_iop (void* val);/****************************************************************************** *	These are the private variables in this class.	 *****************************************************************************/  NdbTransaction**       thePreparedTransactionsArray;  NdbTransaction**       theSentTransactionsArray;  NdbTransaction**       theCompletedTransactionsArray;  Uint32                theNoOfPreparedTransactions;  Uint32                theNoOfSentTransactions;  Uint32                theNoOfCompletedTransactions;  Uint32                theRemainingStartTransactions;  Uint32                theMaxNoOfTransactions;  Uint32                theMinNoOfEventsToWakeUp;  Uint32                theNextConnectNode;  bool fullyQualifiedNames;  class NdbImpl * theImpl;  class NdbDictionaryImpl* theDictionary;  class NdbGlobalEventBufferHandle* theGlobalEventBufferHandle;  NdbTransaction*	theTransactionList;  NdbTransaction**      theConnectionArray;  Uint32   theMyRef;        // My block reference    Uint32   theNode;         // The node number of our node    Uint64               the_last_check_time;  Uint64         

⌨️ 快捷键说明

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