A singleton object is declared as a struct in the specification file. For example:
struct object_0_t {
/* attributes of object_0 */
};
The singleton object is instantiated as a package object in the implementation file, as follows:
struct object_0_t object_0;
Because there can be only one instance of a singleton, its operations do not include a context pointer as their first argument. For example, for a singleton object A with an operation op1() with one argument a1, the following function prototype is generated:
/*## operation op1(int) */ void A_op1(int a1);
If the same object were not a singleton, the following function prototype would be generated:
/*## operation op1(int) */ void A_op1(struct A_t* const me, int a1);