#include "p4go.h" #include "include.h" #include "GoClientUser.h" #include <stdio.h> // --------------------------- // ClientApi // --------------------------- P4HANDLE ClientApi_New() { ClientApi *api = new ClientApi(); return (P4HANDLE)api; } void ClientApi_Delete(P4HANDLE handle) { ClientApi *api = (ClientApi *)handle; delete api; } void ClientApi_DefineClient(P4HANDLE clientApi, const char * client, P4ERROR err) { ClientApi *api = (ClientApi *)clientApi; Error *error = (Error *)err; api->DefineClient(client, error); } void ClientApi_DefineHost(P4HANDLE clientApi, const char * host, P4ERROR err) { ClientApi *api = (ClientApi *)clientApi; Error *error = (Error *)err; api->DefineHost(host, error); } void ClientApi_DefinePassword(P4HANDLE clientApi, const char * pwd, P4ERROR err) { ClientApi *api = (ClientApi *)clientApi; Error *error = (Error *)err; api->DefinePassword(pwd, error); } void ClientApi_DefinePort(P4HANDLE clientApi, const char * port, P4ERROR err) { ClientApi *api = (ClientApi *)clientApi; Error *error = (Error *)err; api->DefinePort(port, error); } void ClientApi_DefineUser(P4HANDLE clientApi, const char * user, P4ERROR err) { ClientApi *api = (ClientApi *)clientApi; Error *error = (Error *)err; api->DefineUser(user, error); } int ClientApi_Dropped(P4HANDLE clientApi) { ClientApi *api = (ClientApi *)clientApi; return api->Dropped(); } int ClientApi_Final(P4HANDLE handle, P4ERROR error) { ClientApi *api = (ClientApi *)handle; Error *err = (Error *)error; return api->Final(err); } const char * ClientApi_GetClient(P4HANDLE clientApi) { ClientApi *api = (ClientApi *)clientApi; return api->GetClient().Value(); } const char * ClientApi_GetCwd(P4HANDLE clientApi) { ClientApi *api = (ClientApi *)clientApi; return api->GetCwd().Value(); } const char * ClientApi_GetConfig(P4HANDLE clientApi) { ClientApi *api = (ClientApi *)clientApi; return api->GetConfig().Value(); } const char * ClientApi_GetHost(P4HANDLE clientApi) { ClientApi *api = (ClientApi *)clientApi; return api->GetHost().Value(); } const char * ClientApi_GetOs(P4HANDLE clientApi) { ClientApi *api = (ClientApi *)clientApi; return api->GetOs().Value(); } const char * ClientApi_GetPassword(P4HANDLE clientApi) { ClientApi *api = (ClientApi *)clientApi; return api->GetPassword().Value(); } const char * ClientApi_GetPort(P4HANDLE clientApi) { ClientApi *api = (ClientApi *)clientApi; return api->GetPort().Value(); } const char * ClientApi_GetProtocol(P4HANDLE clientApi, const char *pro) { ClientApi *api = (ClientApi *)clientApi; return api->GetProtocol(pro)->Value(); } const char * ClientApi_GetUser(P4HANDLE clientApi) { ClientApi *api = (ClientApi *)clientApi; return api->GetUser().Value(); } void ClientApi_Init(P4HANDLE clientApi, P4ERROR err) { ClientApi *api = (ClientApi *)clientApi; Error *e = (Error *)err; api->Init(e); } void ClientApi_Run(P4HANDLE clientApi, const char * cmd, P4HANDLE uiHandle) { ClientApi *api = (ClientApi *)clientApi; ClientUser *user = (ClientUser *)uiHandle; api->Run(cmd, user); } void ClientApi_SetArgv(P4HANDLE clientApi, int len, void* argv) { ClientApi *api = (ClientApi *)clientApi; api->SetArgv(len, (char * const *)argv); } void ClientApi_SetClient(P4HANDLE clientApi, const char * client) { ClientApi *api = (ClientApi *)clientApi; api->SetClient(client); } void ClientApi_SetCwd(P4HANDLE clientApi, const char * cwd) { ClientApi *api = (ClientApi *)clientApi; api->SetCwd(cwd); } void ClientApi_SetCwdNoReload(P4HANDLE clientApi, const char * cwd) { ClientApi *api = (ClientApi *)clientApi; api->SetCwdNoReload(cwd); } void ClientApi_SetHost(P4HANDLE clientApi, const char * host) { ClientApi *api = (ClientApi *)clientApi; api->SetHost(host); } void ClientApi_SetPassword(P4HANDLE clientApi, const char * pwd) { ClientApi *api = (ClientApi *)clientApi; api->SetPassword(pwd); } void ClientApi_SetPort(P4HANDLE clientApi, const char * port) { ClientApi *api = (ClientApi *)clientApi; api->SetPort(port); } void ClientApi_SetProg(P4HANDLE clientApi, const char * prog) { ClientApi *api = (ClientApi *)clientApi; api->SetProg(prog); } void ClientApi_SetProtocol(P4HANDLE clientApi, const char * name, const char * value) { ClientApi *api = (ClientApi *)clientApi; api->SetProtocol(name, value); } void ClientApi_SetProtocolV(P4HANDLE clientApi, const char * nv) { ClientApi *api = (ClientApi *)clientApi; api->SetProtocolV(nv); } void ClientApi_SetTicketFile(P4HANDLE clientApi, const char * path) { ClientApi *api = (ClientApi *)clientApi; api->SetTicketFile(path); } void ClientApi_SetUi(P4HANDLE clientApi, P4HANDLE clientUser) { ClientApi *api = (ClientApi *)clientApi; ClientUser *user = (ClientUser *)clientUser; api->SetUi(user); } void ClientApi_SetUser(P4HANDLE clientApi, const char * user) { ClientApi *api = (ClientApi *)clientApi; api->SetUser(user); } void ClientApi_SetVersion(P4HANDLE clientApi, const char * version) { ClientApi *api = (ClientApi *)clientApi; api->SetVersion(version); } // --------------------------- // ClientUser // --------------------------- P4HANDLE ClientUser_New() { GoClientUser *user = new GoClientUser(); return (P4HANDLE)user; } void ClientUser_Delete(P4HANDLE handle) { GoClientUser *user = (GoClientUser *)handle; delete user; } void ClientUser_Clear(P4HANDLE handle){ GoClientUser *user = (GoClientUser *)handle; user->clear(); } P4HANDLE ClientUser_File(P4HANDLE handle, int type){ GoClientUser *user = (GoClientUser *)handle; return (P4HANDLE)user->File((FileSysType)type); } const char * ClientUser_GetOutputError(P4HANDLE handle) { GoClientUser *user = (GoClientUser *)handle; return user->getOutputError(); } const char * ClientUser_GetOutputInfo(P4HANDLE handle){ GoClientUser *user = (GoClientUser *)handle; return user->getOutputInfo(); } const char * ClientUser_GetOutputText(P4HANDLE handle) { GoClientUser *user = (GoClientUser *)handle; return user->getOutputText(); } void ClientUser_SetInputData(P4HANDLE handle, const char *data) { GoClientUser *user = (GoClientUser *)handle; user->setInputData(data); } // --------------------------- // FileSys // --------------------------- P4HANDLE FileSys_Create(int type) { FileSys *fs = FileSys::Create((FileSysType)type); return (P4HANDLE)fs; } void FileSys_Delete(P4HANDLE fileSys) { FileSys *fs = (FileSys *)fileSys; delete fs; } void FileSys_Chmod(P4HANDLE fileSys, int filePerm, P4ERROR err) { FileSys *fs = (FileSys *)fileSys; Error *e = (Error *)err; fs->Chmod((FilePerm)filePerm, e); } void FileSys_Close(P4HANDLE fileSys, P4ERROR err) { FileSys *fs = (FileSys *)fileSys; Error *e = (Error *)err; fs->Close(e); } void FileSys_Open(P4HANDLE fileSys, int mode, P4ERROR err) { FileSys *fs = (FileSys *)fileSys; Error *e = (Error *)err; fs->Open((FileOpenMode)mode, e); } void FileSys_Read(P4HANDLE fileSys, char *buf, int len, P4ERROR err) { FileSys *fs = (FileSys *)fileSys; Error *e = (Error *)err; fs->Read(buf, len, e); } void FileSys_Rename(P4HANDLE fileSys, P4HANDLE fromFileSys, P4ERROR err) { FileSys *fs = (FileSys *)fileSys; FileSys *fromFs = (FileSys *)fromFileSys; Error *e = (Error *)err; fs->Rename(fromFs, e); } void FileSys_Set(P4HANDLE fileSys, const char * path) { FileSys *fs = (FileSys *)fileSys; fs->Set(path); } int FileSys_Stat(P4HANDLE fileSys) { FileSys *fs = (FileSys *)fileSys; return fs->Stat(); } int FileSys_StatModTime(P4HANDLE fileSys) { FileSys *fs = (FileSys *)fileSys; return fs->StatModTime(); } void FileSys_Truncate(P4HANDLE fileSys, P4ERROR err) { FileSys *fs = (FileSys *)fileSys; Error *e = (Error *)err; fs->Truncate(e); } void FileSys_Unlink(P4HANDLE fileSys, P4ERROR err) { FileSys *fs = (FileSys *)fileSys; Error *e = (Error *)err; fs->Unlink(e); } void FileSys_Write(P4HANDLE fileSys, const char * buf, int len, P4ERROR err) { FileSys *fs = (FileSys *)fileSys; Error *e = (Error *)err; fs->Write(buf, len, e); } // --------------------------- // Error // --------------------------- P4ERROR Error_New() { Error *e = new Error(); return (P4ERROR)e; } void Error_Delete(P4ERROR error) { Error *err = (Error *)error; delete err; } void Error_Clear(P4ERROR error) { Error *err = (Error *)error; err->Clear(); } void Error_Dump(P4ERROR error, const char *msg) { Error *err = (Error *)error; err->Dump(msg); } void Error_Fmt(P4ERROR error, P4HANDLE buf) { Error *err = (Error *)error; StrBuf *sb = (StrBuf *)buf; err->Fmt(sb); } void Error_FmtOpts(P4ERROR error, P4HANDLE buf, int opts) { Error *err = (Error *)error; StrBuf *sb = (StrBuf *)buf; err->Fmt(sb, opts); } int Error_GetGeneric(P4ERROR error) { Error *err = (Error *)error; return err->GetGeneric(); } int Error_GetSeverity(P4ERROR error) { Error *err = (Error *)error; return err->GetSeverity(); } int Error_IsFatal(P4ERROR error) { Error *err = (Error *)error; return err->IsFatal(); } int Error_IsWarning(P4ERROR error) { Error *err = (Error *)error; return err->IsWarning(); } void Error_Net(P4ERROR error, const char *op, const char *arg) { Error *err = (Error *)error; err->Net(op, arg); } void Error_Add_Int(P4ERROR error, int ii) { Error *err = (Error *)error; *err << ii; } void Error_Add_Str(P4ERROR error, char *str) { Error *err = (Error *)error; *err << str; } void Error_Copy(P4ERROR error, P4ERROR from) { Error *err = (Error *)error; Error *fromE = (Error *)from; err->operator=(*fromE); } void Error_Set(P4ERROR error, int errSeverity, const char *fmt) { Error *err = (Error *)error; err->Set((ErrorSeverity)errSeverity, fmt); } void Error_Sys(P4ERROR error, const char *op, const char *arg) { Error *err = (Error *)error; err->Sys(op, arg); } int Error_Test(P4ERROR error) { Error *err = (Error *)error; return err->Test(); } // --------------------------- // StrBuf // --------------------------- P4HANDLE StrBuf_New(P4HANDLE strBuf) { StrBuf *sb = 0; if (strBuf != 0) { StrBuf *from = (StrBuf*)strBuf; sb = new StrBuf(*from); } else { sb = new StrBuf(); } return (P4HANDLE)sb; } void StrBuf_Delete(P4HANDLE strBuf) { StrBuf *sb = (StrBuf *)strBuf; delete sb; } char * StrBuf_Alloc(P4HANDLE strBuf, int len) { StrBuf *sb = (StrBuf *)strBuf; return sb->Alloc(len); } void StrBuf_AppendStr(P4HANDLE strBuf, const char *buf) { StrBuf *sb = (StrBuf *)strBuf; sb->Append(buf); } void StrBuf_AppendStrPart(P4HANDLE strBuf, const char *buf, int len) { StrBuf *sb = (StrBuf *)strBuf; sb->Append(buf, len); } void StrBuf_Clear(P4HANDLE strBuf) { StrBuf *sb = (StrBuf *)strBuf; sb->Clear(); } void StrBuf_Extend(P4HANDLE strBuf, char c) { StrBuf *sb = (StrBuf *)strBuf; sb->Extend(c); } void StrBuf_ExtendStrPart(P4HANDLE strBuf, const char *buf, int len) { StrBuf *sb = (StrBuf *)strBuf; sb->Extend(buf, len); } void StrBuf_SetStrBuf(P4HANDLE strBuf, P4HANDLE fromStrBuf) { StrBuf *sb = (StrBuf *)strBuf; StrBuf *from = (StrBuf *)fromStrBuf; sb->operator=(*from); } void StrBuf_AppendInt(P4HANDLE strBuf, int v) { StrBuf *sb = (StrBuf *)strBuf; sb->operator<<(v); } void StrBuf_SetStr(P4HANDLE strBuf, const char *str) { StrBuf *sb = (StrBuf *)strBuf; sb->Set(str); } void StrBuf_SetStrPart(P4HANDLE strBuf, const char *str, int len) { StrBuf *sb = (StrBuf *)strBuf; sb->Set(str, len); } void StrBuf_StringInit(P4HANDLE strBuf) { StrBuf *sb = (StrBuf *)strBuf; sb->StringInit(); } const char * StrBuf_Text(P4HANDLE strBuf) { StrBuf *sb = (StrBuf *)strBuf; return sb->Text(); } void StrBuf_Terminate(P4HANDLE strBuf) { StrBuf *sb = (StrBuf *)strBuf; sb->Terminate(); } void* CreateStringArray(int length) { return calloc(length, sizeof(char*)); } void AssignString(void* argv, int ii, char* str) { char** array = (char**)argv; array[ii] = str; } void DeleteStringArray(void* argv, int length) { for (int ii = 0; ii < length; ii++) { free(((char**)argv)[ii]); } free(argv); }
# | 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. |