libtrbase  1.0.2
Web server and task management solution.
indexable.h File Reference
#include "tr/interface.h"
+ Include dependency graph for indexable.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Typedefs

typedef void *(* fptr_TR_getIndex) (void *)
 

Functions

 TR_INTERFACE (TR_Indexable)
 
void * TR_getIndex (void *indexable)
 

Detailed Description

This interface provides only one function at all. indexUuid will generate a uuid to the current object.

This one is not generic enough for an interface...I don't want to rely on Uuid here....The Uuid stuff is more an implementation of this interface.

An implementation of indexable::index should always return an instance of class Index / or an class that implements the index interface. Uuid would then be a candidate for such a class.

Todo:
Maybe merge hashable and indexable. Thus we might get an easy way to exchange the hashing mechanism used for my associative arrays.
Author
Georg Hopp

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Definition in file indexable.h.

Typedef Documentation

typedef void*(* fptr_TR_getIndex) (void *)

Definition at line 45 of file indexable.h.

Function Documentation

void* TR_getIndex ( void *  indexable)
inline

Get it's index from an indexable object.

Definition at line 57 of file indexable.h.

References TR_RETCALL.

58 {
59  void * ret;
60  TR_RETCALL(indexable, TR_Indexable, index, ret);
61  return ret;
62 }
#define TR_RETCALL(object, _iface, method, ret,...)
Definition: class.h:270
TR_INTERFACE ( TR_Indexable  )

Definition at line 47 of file indexable.h.

References TR_IFID.

47  {
48  TR_IFID;
49  fptr_TR_getIndex index;
50 };
#define TR_IFID
Definition: interface.h:61
void *(* fptr_TR_getIndex)(void *)
Definition: indexable.h:45