Project

General

Profile

Feature #336

Add "return value marshalling" to entry methods

Added by Nicolas Bock over 5 years ago. Updated almost 3 years ago.

Status:
Merged
Priority:
Normal
Assignee:
-
Category:
-
Target version:
Start date:
11/13/2013
Due date:
% Done:

0%


Description

Charm++ already supports parameter marshalling of objects that provide a pup() method. Since a similar mechanism for return values does not exist, objects can only be "pushed" to other chares, but not "pulled". I would like to suggest the addition of "return value marshalling", which would extend the return types of [sync] entry methods significantly to include any object that provides a pup() method. In other words, given

/* In the class definition. */
#include <charm++.h>
class Foo {
public:
void pup (PUP::er &p) { ... }
}

one should be able to write

/* In the interface. */
chare Work {
entry [sync] Foo * getFoo (void);
};

/* In the class definition. */
class Work : public CBase_Work {
private:
Foo myFoo;
public:
Foo * getFoo (void) { return myFoo; }
};


Related issues

Duplicates Charm++ - Feature #331: Return any type that has a PUP routine from [sync] entry methods Merged 07/11/2016

History

#1 Updated by Vipul Harsh about 3 years ago

  • Status changed from New to Merged

#2 Updated by Phil Miller almost 3 years ago

  • Target version set to 6.8.0-beta1

Also available in: Atom PDF