source: issm/trunk/src/c/objects/Hook.h@ 9777

Last change on this file since 9777 was 9777, checked in by Eric.Larour, 14 years ago

Discarded Marshall, Demarshall and MarshallSize routines for parallel compilation, where it is never used.
Only activated according to _SERIAL_ symbol.

File size: 1.6 KB
Line 
1/*!\file Hook.h
2 * \brief: header file for hook object.
3 * A hook is a class that can store the id, offset, and object corresponding to this id and offset into a dataset.
4 * For example, an element has a hook to its nodes. A node has a hook to its vertex. The hook abstracts the need for having
5 * ids and offsets (necesarry for proper configuration of an object) in our objects.
6 */
7
8#ifndef _HOOK_H_
9#define _HOOK_H_
10
11/*Headers:*/
12/*{{{1*/
13#include "./Object.h"
14class DataSet;
15/*}}}*/
16
17class Hook{
18
19 private:
20
21 int num; //number of objects being hooked onto
22 Object** objects; //list of object pointers. we do not allocate objects, just a list a pointers, that will get to point to the real objects from a dataset.
23 int* ids; //list of object ids, to go look for them in datasets.
24 int* offsets; //list of object offsets into datasets, to speed up lookup.
25
26 public:
27
28 /*Hook constructors, destructors: {{{*/
29 Hook();
30 Hook(int* ids, int num);
31 ~Hook();
32 /*}}}*/
33 /*Object like functionality:{{{1*/
34 void Echo(void);
35 void DeepEcho(void);
36 #ifdef _SERIAL_
37 void Marshall(char** pmarshalled_dataset);
38 int MarshallSize();
39 void Demarshall(char** pmarshalled_dataset);
40 #endif
41 Object* copy(void);
42 /*}}}*/
43 /*Hook management: {{{1*/
44 Object* delivers(void); //single object deliver
45 Object** deliverp(void); //deliver all objects
46 void configure(DataSet* dataset);
47 Hook* Spawn(int* indices, int numindices);
48 Object** GetObjects(void);
49 int* Ids(void);
50 int* GetOffsets(void);
51 int GetNum(void);
52 /*}}}*/
53};
54
55#endif /* _HOOK_H_ */
Note: See TracBrowser for help on using the repository browser.