return Ret;
}
+/**
+ * @ingroup HashListAccess
+ * @brief resets a hash-linear iterator object
+ * @param Hash the list we reference
+ * @param StepWidth in which step width should we iterate?
+ * @param it the iterator object to manipulate
+ * If negative, the last position matching the
+ * step-raster is provided.
+ * @return the hash iterator
+ */
+void RewindHashPos(const HashList *Hash, HashPos *it, int StepWidth)
+{
+ if (StepWidth != 0)
+ it->StepWidth = StepWidth;
+ else
+ it->StepWidth = 1;
+ if (it->StepWidth < 0) {
+ it->Position = Hash->nLookupTableItems - 1;
+ }
+ else {
+ it->Position = 0;
+ }
+}
+
/**
* @ingroup HashListAccess
* @brief Set iterator object to point to key. If not found, don't change iterator
AxAideU = 6
}eUsrAxlvl;
-enum RoomNetCfg {
+typedef enum __RoomNetCfg {
subpending,
unsubpending,
lastsent, /* Server internal use only */
participate,
roommailalias,
maxRoomNetCfg
-};
+} RoomNetCfg;
enum GNET_POP3_PARTS { /* pop3client splits into these columns: */
GNET_POP3_HOST = 1,
int dbg_PrintHash(HashList *Hash, PrintHashContent first, PrintHashContent Second);
int PrintHash(HashList *Hash, TransitionFunc Trans, PrintHashDataFunc PrintEntry);
HashPos *GetNewHashPos(const HashList *Hash, int StepWidth);
+void RewindHashPos(const HashList *Hash, HashPos *it, int StepWidth);
int GetHashPosFromKey(HashList *Hash, const char *HKey, long HKLen, HashPos *At);
int DeleteEntryFromHash(HashList *Hash, HashPos *At);
int GetHashPosCounter(HashList *Hash, HashPos *At);