/* Copyright (C) 2007 Vizim Worldwide. All rights reserved. This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. */ /******************************************************************************* * Name: p4clientuser.h * * Author: Robert Cowham <robert@vizim.com> * * Description: * Wrapper for Perforce ClientUser class ******************************************************************************/ #if !defined(_p4clientuser_H__INCLUDED_) #define _p4clientuser_H__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #ifndef _P4API_H_ #define _P4API_H_ #ifdef SetPort // Windows bug #undef SetPort #endif // P4 API files #include "PerforceAPI.h" #include <p4/spec.h> #include <p4/diff.h> #endif // _P4API_H_ class p4ClientUser : public ClientUser { public: p4ClientUser(); virtual ~p4ClientUser(); virtual void Reset(); virtual void HandleError(Error *err); virtual void ErrorPause(char *errBuf, Error *e); virtual void OutputInfo(char level, const char *data); virtual void OutputError(const char *errBuf); virtual void OutputWarning(const char *errBuf); virtual void OutputText(const char *data, int len); virtual void OutputBinary(const char *data, int len); virtual void Diff( FileSys *f1, FileSys *f2, int doPage, char *diffFlags, Error *e ); virtual void Prompt( const StrPtr &msg, StrBuf &rsp, int noEcho, Error *e ); virtual void OutputStat(StrDict *results); virtual void InputData(StrBuf *strbuf, Error *e); StrPtr *GetVar(LPCSTR varName); StrArray *GetArrayVar(LPCSTR varName); // Caller responsible for deleting virtual void SetVar(LPCSTR varName, LPCSTR newVal); virtual void SetArrayVar(LPCSTR varName, StrArray *newVal); StrArray *InfoArray() {return m_InfoArray;}; StrArray *ErrorArray() {return m_ErrorArray;}; StrArray *WarningArray() {return m_WarningArray;}; virtual StrBuf TextFileName() {return m_TextFileName;}; virtual StrBuf BinaryFileName() {return m_BinaryFileName;}; virtual void SetInput(StrBuf *newVal) {m_input.Set(*newVal);}; virtual void SetErrorLogger(void (*pFn) (char *)) { m_ErrorLogger = pFn; } virtual void CloseFiles(); // closes open files (if there were any) void FormatAndOutputError(LPCSTR m, Error *e); private: SpecDataTable *m_specData; Spec *m_spec; StrBuf m_input; // Arrays used to return text strings to functions StrArray *m_ErrorArray; StrArray *m_InfoArray; StrArray *m_WarningArray; // These are pointers to temporary files used by OutputText and OutputBinary StrBuf m_BinaryFileName; FileSys *m_BinaryFile; StrBuf m_TextFileName; FileSys *m_TextFile; // For reporting errors void (*m_ErrorLogger) (char *); void OutputData(FileSys ** OutFile, StrBuf& FileName, enum FileSysType FType, const char *data, int len); void AddToArray(const char *data, StrArray *sba); void p4ClientUser::OutputDict(StrDict *dict); }; #endif
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#2 | 7502 | Robert Cowham |
- Updated for 2009.1 API - use static version (/MT rather than /MD) - Fixed SetProg/SetVersion calls - ensures they are called at correct moment. - Add SetProtocol - Added some more tests/examples |
||
#1 | 6468 | Robert Cowham | Draft version. |