00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef ZOLTAN_MIGRATIONOBJECT_H_
00013 #define ZOLTAN_MIGRATIONOBJECT_H_
00014
00015 #include "EpetraExt_ConfigDefs.h"
00016
00017 #include <zoltan.h>
00018
00019 namespace Zoltan {
00020
00022
00027 class MigrationObject
00028 {
00029
00030 public:
00031
00033
00035 virtual int Object_Size ( void * data,
00036 int num_gid_entries,
00037 int num_lid_entries,
00038 ZOLTAN_ID_PTR global_id,
00039 ZOLTAN_ID_PTR local_id,
00040 int * ierr );
00041
00043
00045
00047 virtual void Pre_Migrate ( void * data,
00048 int num_gid_entries,
00049 int num_lid_entries,
00050 int num_import,
00051 ZOLTAN_ID_PTR import_global_ids,
00052 ZOLTAN_ID_PTR import_local_ids,
00053 int * import_procs,
00054 int num_export,
00055 ZOLTAN_ID_PTR export_global_ids,
00056 ZOLTAN_ID_PTR export_local_ids,
00057 int * export_procs,
00058 int * ierr );
00059
00061 virtual void Mid_Migrate ( void * data,
00062 int num_gid_entries,
00063 int num_lid_entries,
00064 int num_import,
00065 ZOLTAN_ID_PTR import_global_ids,
00066 ZOLTAN_ID_PTR import_local_ids,
00067 int * import_procs,
00068 int num_export,
00069 ZOLTAN_ID_PTR export_global_ids,
00070 ZOLTAN_ID_PTR export_local_ids,
00071 int * export_procs,
00072 int * ierr );
00073
00075 virtual void Post_Migrate ( void * data,
00076 int num_gid_entries,
00077 int num_lid_entries,
00078 int num_import,
00079 ZOLTAN_ID_PTR import_global_ids,
00080 ZOLTAN_ID_PTR import_local_ids,
00081 int * import_procs,
00082 int num_export,
00083 ZOLTAN_ID_PTR export_global_ids,
00084 ZOLTAN_ID_PTR export_local_ids,
00085 int * export_procs,
00086 int * ierr );
00087
00089
00091
00093 virtual void Pack_Object ( void * data,
00094 int num_gid_entries,
00095 int num_lid_entries,
00096 ZOLTAN_ID_PTR global_id,
00097 ZOLTAN_ID_PTR local_id,
00098 int destination_processor,
00099 int size,
00100 char * buffer,
00101 int * ierr );
00102
00104 virtual void Unpack_Object ( void * data,
00105 int num_gid_entries,
00106 ZOLTAN_ID_PTR global_id,
00107 int size,
00108 char * buffer,
00109 int * ierr );
00110
00112
00113 };
00114
00115 }
00116
00117 #endif