CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
IArrayHandler.h
Go to the documentation of this file.
1 #ifndef INCLUDE_ORA_IARRAYHANDLER_H
2 #define INCLUDE_ORA_IARRAYHANDLER_H
3 
4 #include <cstddef>
5 
6 namespace Reflex {
7  class Type;
8 }
9 
10 namespace ora {
11 
13  public:
16 
18  virtual void increment() = 0;
19 
21  virtual void* object() = 0;
22 
24  virtual Reflex::Type& returnType() = 0;
25  };
26 
27 
28  class IArrayHandler {
29 
30  public:
32  virtual ~IArrayHandler() {}
33 
35  virtual size_t size( const void* address ) = 0;
36 
38  virtual size_t startElementIndex( const void* ){ return 0; };
39 
41  virtual IArrayIteratorHandler* iterate( const void* address ) = 0;
42 
44  virtual void appendNewElement( void* address, void* data ) = 0;
45 
47  virtual void clear( const void* address ) = 0;
48 
50  virtual bool isAssociative() const { return false; }
51 
53  virtual size_t* persistentSize( const void* address ){ return 0; }
54 
56  virtual void finalize( void* ){ }
57 
59  virtual Reflex::Type& iteratorReturnType() = 0;
60  };
61 
62 }
63 
64 
65 #endif
virtual size_t startElementIndex(const void *)
Returns the index of the first element.
Definition: IArrayHandler.h:38
virtual size_t * persistentSize(const void *address)
Returns the size of the container. Only differs in the PVector.
Definition: IArrayHandler.h:53
char * address
Definition: mlp_lapack.h:14
virtual void increment()=0
Increments itself.
virtual Reflex::Type & iteratorReturnType()=0
Returns the iterator return type.
virtual void clear(const void *address)=0
Clear the content of the container.
virtual size_t size(const void *address)=0
Returns the size of the container.
virtual ~IArrayHandler()
Destructor.
Definition: IArrayHandler.h:32
virtual ~IArrayIteratorHandler()
Destructor.
Definition: IArrayHandler.h:15
virtual void * object()=0
Returns the current object.
virtual void finalize(void *)
execute the ending procedure for the container
Definition: IArrayHandler.h:56
virtual void appendNewElement(void *address, void *data)=0
Appends a new element and returns its address.
virtual Reflex::Type & returnType()=0
Returns the return type of the iterator dereference method.
virtual bool isAssociative() const
Returns the associativeness of the container.
Definition: IArrayHandler.h:50
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
virtual IArrayIteratorHandler * iterate(const void *address)=0
Returns an initialized iterator.