diff --git a/conman.h b/conman.h index 757dcbbb..c88a9042 100644 --- a/conman.h +++ b/conman.h @@ -169,16 +169,25 @@ typedef int (*writeFunc)(struct __SConnection *pCon, int ConSicsAction(SConnection *pCon, SicsInterp *pSics, void *pData, int argc, char *argv[]); /******************************** Store ************************************/ -typedef struct { - SConnection *pCon; - long ident; -} SCStore; +typedef struct SCStore *SCStore; -void SCSave(SCStore *con, SConnection *pCon); -/* save a connection for later use. */ +SCStore SCSave(SConnection *pCon, SCStore oldStore); +/* save a connection and its context for later use. */ -SConnection *SCLoad(SCStore *con); -/* check con and return SConnection if still valid or NULL otherwise. */ +SConnection *SCLoad(SCStore conStore); +/* check con and return SConnection if still valid or a dummy connection otherwise. */ + +SConnection *SCStorePush(SCStore conStore); +/* load connection and push stored context. Must be paired with an SCStorePop command */ + +void SCStorePop(SCStore conStore); +/* pop context */ + +int SCStoreConnected(SCStore conStore); +/* check if a stored connection is not closed */ + +void SCStoreFree(SCStore conStore); +/* free an SCStore */ void KillFreeConnections(void);