/* * P4.Net * Copyright (c) 2007 Shawn Hladky Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #pragma once #include "StdAfx.h" #include "Error_m.h" #include <vcclr.h> using namespace System; using namespace System::Collections; namespace p4dn { enum FileSystemType { FST_TEXT = 0x0001, // file is text FST_BINARY = 0x0002, // file is binary FST_GZIP = 0x0003, // file is gzip FST_DIRECTORY = 0x0005, // it's a directory FST_SYMLINK = 0x0006, // it's a symlink FST_RESOURCE = 0x0007, // Macintosh resource file FST_SPECIAL = 0x0008, // not a regular file FST_MISSING = 0x0009, // no file at all FST_CANTTELL = 0x000A, // can read file to find out FST_EMPTY = 0x000B, // file is empty FST_UNICODE = 0x000C, // file is unicode FST_MASK = 0x000F, // mask for types // Modifiers FST_M_APPEND = 0x0010, // open always append FST_M_EXCL = 0x0020, // open exclusive create FST_M_SYNC = 0x0040, // fsync on close FST_M_EXEC = 0x0100, // file is executable FST_M_APPLE = 0x0200, // apple single/double encoding FST_M_COMP = 0x0400, // file is somehow compressed FST_M_MASK = 0x0ff0, // mask for modifiers // Line ending types, loosely mapped to LineType FST_L_LOCAL = 0x0000, // LineTypeLocal FST_L_LF = 0x1000, // LineTypeRaw FST_L_CR = 0x2000, // LineTypeCr FST_L_CRLF = 0x3000, // LineTypeCrLf FST_L_LFCRLF = 0x4000, // LineTypeLfcrlf FST_L_MASK = 0xf000, // mask for LineTypes // Composite types, for filesys.cc FST_ATEXT = 0x0011, // append-only text FST_XTEXT = 0x0101, // executable text FST_RTEXT = 0x1001, // raw text FST_RXTEXT = 0x1101, // executable raw text FST_CBINARY = 0x0402, // pre-compressed binary FST_XBINARY = 0x0102, // executable binary FST_APPLETEXT = 0x0201, // apple format text FST_APPLEFILE = 0x0202, // apple format binary FST_XAPPLEFILE = 0x0302, // executable apple format binary FST_XUNICODE = 0x010C, // executable unicode text FST_RCS = 0x1041 // RCS temporary file: raw text, sync on close }; __gc public class ClientUser { public: ClientUser(); ~ClientUser(){} virtual void InputData( String** buff, p4dn::Error* err ); virtual void InputForm( Hashtable** varList, String** specdef, p4dn::Error* err ); virtual void HandleError( p4dn::Error* err ); virtual void Message( p4dn::Error* err ); virtual void OutputError(String* errString ); virtual void OutputInfo(Char level, String* data ); virtual void OutputBinary(Byte b[] ); virtual void OutputText(String* data ); virtual void SetSpecDef(String* specdef); virtual void OutputStat(Hashtable* varList ); /* virtual void OutputForm(String* specDef, NameValueCollection* varList ); */ virtual void Prompt( const String* msg, String** rsp, bool noEcho, p4dn::Error* err ); virtual void ErrorPause( String* errBuf, Error* err ); virtual void Edit( IO::FileInfo* f1, Error *err ); virtual void Diff( IO::FileInfo* f1, IO::FileInfo* f2, int doPage, String* diffFlags, p4dn::Error *err ); virtual void Merge( IO::FileInfo* base, IO::FileInfo* leg1, IO::FileInfo* leg2, IO::FileInfo* result, p4dn::Error* err ); // int Resolve( ClientMerge *m, Error *e ); virtual void Help( String* help ); virtual void Finished() {} //override and return true if you want OutputText redirected to OutputBinary virtual bool PrintBinary() {return false;} //override to execute P4MERGE during resolve __property bool get_RunMergeTool() { return _runMergeTool; } __property void set_RunMergeTool(bool value) { _runMergeTool = value; } // static void Edit( IO::FileSystemInfo* f1, Enviro * env, Error *e ); // static void Edit( IO::FileSystemInfo* f1, Enviro * env, Error *e ); //static void RunCmd( String* command, // String* arg1, // String* arg2, // String* arg3, // String* arg4, // String* pager, // p4dn::Error* err ); private: bool _runMergeTool; }; }
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#1 | 7341 | Erik Purins |
p4.net --- pull p4.net#head |
||
//guest/shawn_hladky/P4.Net/release/1.0/src/p4dn/ClientUser_m.h | |||||
#1 | 6106 | Shawn Hladky | P4.Net: Branching release 1.0 | ||
//guest/shawn_hladky/P4.Net/main/src/p4dn/ClientUser_m.h | |||||
#6 | 6102 | Shawn Hladky |
P4.Net: Documentation. Fixed SetTicketFile bug. Added form processing with SpecDef. Stubbed-out code for launching external merge tool, but is disabled since it's too difficult to use. |
||
#5 | 5915 | Shawn Hladky |
p4.net Fixed diff2 bug. Re-worked array field logic More unit tests Organized P4Connection w/ #region blocks, and moved methods around |
||
#4 | 5878 | Shawn Hladky |
P4.Net: 1.0, support for raw spec processing. Update copyright. Fix build script. Bugs found along the way. |
||
#3 | 5842 | Shawn Hladky |
P4.Net Update test harness for unicode server. Add methods to support p4 print. |
||
#2 | 5838 | Shawn Hladky | P4.Net: WIP support for unicode server | ||
#1 | 5830 | Shawn Hladky | P4.Net: reorg to support release branches | ||
//guest/shawn_hladky/P4.Net/src/p4dn/ClientUser_m.h | |||||
#5 | 5798 | Shawn Hladky |
P4.Net... still not ready for beta Added license to all files Added several doc files Misc bugs |
||
#4 | 5427 | Shawn Hladky | P4.Net -- several fixes and added sample application | ||
#3 | 5411 | Shawn Hladky | WIP -- forms are working now. | ||
#2 | 5349 | Shawn Hladky |
Initial check-in for the new API interface. Nothing works yet, but it should compile at least. |
||
#1 | 5348 | Shawn Hladky | Re-organizing, for the improved API | ||
//guest/shawn_hladky/PerforceDotNet/p4dn/ClientUser_m.h | |||||
#3 | 5064 | Shawn Hladky |
WIP -- Added ability to parse forms. Added new tester application. ** not ready for human consumption, needs more review and testing. |
||
#2 | 4545 | Shawn Hladky |
Several Fixes: Updated solution to Visual Studio 2003 Implemented InputData Implemented OutPutBinary Changed ClientAPI and Error objects to implement the IDisposable interface to improve Garbage Collection Changed header files so you don't need to add #pragma once to the p4 api headers. Refactored the ClientUserDelagate class Fixed a few minor memory leaks |
||
#1 | 4328 | Shawn Hladky | Branching from //guest/jacob_gladish/PerforceDotNet/... | ||
//guest/jacob_gladish/PerforceDotNet/p4dn/ClientUser_m.h | |||||
#1 | 3787 | Jacob Gladish | initial code submission |