#ifdef __cplusplus extern "C" { #endif // A generic handle pointer these always need to be deleted typedef void * P4HANDLE; // Pointer to error objects, which usually need to be deleted when returned from // methods typedef void * P4ERROR; // --------------------------- // ClientApi // --------------------------- P4HANDLE ClientApi_New(); void ClientApi_Delete(P4HANDLE handle); void ClientApi_DefineClient(P4HANDLE clientApi, const char * client, P4ERROR err); void ClientApi_DefineHost(P4HANDLE clientApi, const char * host, P4ERROR err); void ClientApi_DefinePassword(P4HANDLE clientApi, const char * pwd, P4ERROR err); void ClientApi_DefinePort(P4HANDLE clientApi, const char * port, P4ERROR err); void ClientApi_DefineUser(P4HANDLE clientApi, const char * user, P4ERROR err); int ClientApi_Dropped(P4HANDLE clientApi); int ClientApi_Final(P4HANDLE handle, P4ERROR err); const char * ClientApi_GetClient(P4HANDLE clientApi); const char * ClientApi_GetCwd(P4HANDLE clientApi); const char * ClientApi_GetConfig(P4HANDLE clientApi); const char * ClientApi_GetHost(P4HANDLE clientApi); const char * ClientApi_GetOs(P4HANDLE clientApi); const char * ClientApi_GetPassword(P4HANDLE clientApi); const char * ClientApi_GetPort(P4HANDLE clientApi); const char * ClientApi_GetProtocol(P4HANDLE clientApi, const char * pro); const char * ClientApi_GetUser(P4HANDLE clientApi); void ClientApi_Init(P4HANDLE handle, P4ERROR err); void ClientApi_Run(P4HANDLE apiHandle, const char * cmd, P4HANDLE clientUser); void ClientApi_SetArgv(P4HANDLE apiHandle, int len, void* argv); // TODO this may just need to be a callback function that returns 0 or 1 // void ClientApi_SetBreak(... fxn?); void ClientApi_SetClient(P4HANDLE clientApi, const char * client); void ClientApi_SetCwd(P4HANDLE clientApi, const char * cwd); void ClientApi_SetCwdNoReload(P4HANDLE clientApi, const char * cwd); void ClientApi_SetHost(P4HANDLE clientApi, const char * host); void ClientApi_SetPassword(P4HANDLE clientApi, const char * pwd); void ClientApi_SetPort(P4HANDLE clientApi, const char * port); void ClientApi_SetProg(P4HANDLE clientApi, const char * prog); void ClientApi_SetProtocol(P4HANDLE clientApi, const char * name, const char * value); void ClientApi_SetProtocolV(P4HANDLE clientApi, const char * nv); void ClientApi_SetTicketFile(P4HANDLE clientApi, const char * path); void ClientApi_SetUi(P4HANDLE clientApi, P4HANDLE clientUser); void ClientApi_SetUser(P4HANDLE clientApi, const char * user); void ClientApi_SetVersion(P4HANDLE clientApi, const char * version); // --------------------------- // ClientUser // --------------------------- P4HANDLE ClientUser_New(); void ClientUser_Delete(P4HANDLE handle); void ClientUser_Clear(P4HANDLE handle); P4HANDLE ClientUser_File(P4HANDLE handle, int type); const char * ClientUser_GetOutputError(P4HANDLE handle); const char * ClientUser_GetOutputInfo(P4HANDLE handle); const char * ClientUser_GetOutputText(P4HANDLE handle); void ClientUser_SetInputData(P4HANDLE handle, const char *data); // --------------------------- // FileSys // --------------------------- P4HANDLE FileSys_Create(int type); void FileSys_Delete(P4HANDLE fileSys); void FileSys_Chmod(P4HANDLE fileSys, int filePerm, P4ERROR err); void FileSys_Close(P4HANDLE fileSys, P4ERROR err); void FileSys_Open(P4HANDLE fileSys, int mode, P4ERROR err); void FileSys_Read(P4HANDLE fileSys, char *buf, int len, P4ERROR err); void FileSys_Rename(P4HANDLE fileSys, P4HANDLE fromFileSys, P4ERROR err); void FileSys_Set(P4HANDLE fileSys, const char * path); int FileSys_Stat(P4HANDLE fileSys); int FileSys_StatModTime(P4HANDLE fileSys); void FileSys_Truncate(P4HANDLE fileSys); void FileSys_Unlink(P4HANDLE fileSys, P4ERROR err); void FileSys_Write(P4HANDLE fileSys, const char * buf, int len, P4ERROR err); // --------------------------- // Error // --------------------------- P4ERROR Error_New(); void Error_Delete(P4ERROR error); void Error_Clear(P4ERROR error); void Error_Dump(P4ERROR error, const char *); void Error_Fmt(P4ERROR error, P4HANDLE strBuf); void Error_FmtOpts(P4ERROR error, P4HANDLE strBuf, int opts); int Error_GetGeneric(P4ERROR error); int Error_GetSeverity(P4ERROR error); int Error_IsFatal(P4ERROR error); int Error_IsWarning(P4ERROR error); void Error_Net(P4ERROR error, const char *op, const char *arg); void Error_Add_Int(P4ERROR error, int ii); void Error_Add_Str(P4ERROR error, char *str); void Error_Copy(P4ERROR error, P4ERROR toErr); void Error_Set(P4ERROR error, int errSeverity, const char *fmt); void Error_Sys(P4ERROR error, const char *op, const char *arg); int Error_Test(P4ERROR error); // --------------------------- // StrBuf // --------------------------- P4HANDLE StrBuf_New(P4HANDLE strBuf); void StrBuf_Delete(P4HANDLE strBuf); char * StrBuf_Alloc(P4HANDLE strBuf, int len); void StrBuf_AppendStr(P4HANDLE strBuf, const char *buf); void StrBuf_AppendStrPart(P4HANDLE strBuf, const char *buf, int len); void StrBuf_Clear(P4HANDLE strBuf); void StrBuf_Extend(P4HANDLE strBuf, char c); void StrBuf_ExtendStrPart(P4HANDLE strBuf, const char *buf, int len); void StrBuf_SetStrBuf(P4HANDLE strBuf, P4HANDLE fromStrBuf); void StrBuf_AppendInt(P4HANDLE strBuf, int v); void StrBuf_SetStr(P4HANDLE strBuf, const char *str); void StrBuf_SetStrPart(P4HANDLE strBuf, const char *str, int len); void StrBuf_StringInit(P4HANDLE strBuf); const char * StrBuf_Text(P4HANDLE strBuf); void StrBuf_Terminate(P4HANDLE strBuf); // --------------------------- // String Array // --------------------------- void* CreateStringArray(int length); void AssignString(void* argv, int ii, char* str); void DeleteStringArray(void* argv, int length); #ifdef __cplusplus } #endif
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 10513 | tjuricek |
A basic experiment with using the C++ API in Go May not work completely. I haven't messed with this in over a year. The Go tools may have come a long ways as well, and we may be able to automate things more directly in the typical toolkit then having to use node. |