aboutsummaryrefslogtreecommitdiff
path: root/csharp/src/ProtoGen.Test/TempFile.cs
diff options
context:
space:
mode:
authorJan Tattermusch <jtattermusch@google.com>2015-04-16 09:55:22 -0700
committerJan Tattermusch <jtattermusch@google.com>2015-04-16 09:55:22 -0700
commit84fa3e2bbc876428efd0c99700f146115a9d5162 (patch)
tree47baa5dafe3c3ab1c49fe2ca44e9f3ffd0e0b127 /csharp/src/ProtoGen.Test/TempFile.cs
parent813d6d652d8091e9365bfbd01efb5f2ee8bdfbce (diff)
parent836a273544f55c88d8d0988ef0117cb0636707c6 (diff)
downloadprotobuf-84fa3e2bbc876428efd0c99700f146115a9d5162.tar.gz
protobuf-84fa3e2bbc876428efd0c99700f146115a9d5162.tar.bz2
protobuf-84fa3e2bbc876428efd0c99700f146115a9d5162.zip
Imported protobuf-csharp-port into csharp/ tree
Diffstat (limited to 'csharp/src/ProtoGen.Test/TempFile.cs')
-rw-r--r--csharp/src/ProtoGen.Test/TempFile.cs59
1 files changed, 59 insertions, 0 deletions
diff --git a/csharp/src/ProtoGen.Test/TempFile.cs b/csharp/src/ProtoGen.Test/TempFile.cs
new file mode 100644
index 00000000..74a183f5
--- /dev/null
+++ b/csharp/src/ProtoGen.Test/TempFile.cs
@@ -0,0 +1,59 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+
+namespace Google.ProtocolBuffers.ProtoGen
+{
+ internal class ProtoFile : TempFile
+ {
+ public ProtoFile(string filename, string contents)
+ : base(filename, contents)
+ {
+ }
+ }
+
+ internal class TempFile : IDisposable
+ {
+ private string tempFile;
+
+ public static TempFile Attach(string path)
+ {
+ return new TempFile(path, null);
+ }
+
+ protected TempFile(string filename, string contents)
+ {
+ tempFile = filename;
+ if (contents != null)
+ {
+ File.WriteAllText(tempFile, contents, new UTF8Encoding(false));
+ }
+ }
+
+ public TempFile(string contents)
+ : this(Path.GetTempFileName(), contents)
+ {
+ }
+
+ public string TempPath
+ {
+ get { return tempFile; }
+ }
+
+ public void ChangeExtension(string ext)
+ {
+ string newFile = Path.ChangeExtension(tempFile, ext);
+ File.Move(tempFile, newFile);
+ tempFile = newFile;
+ }
+
+ public void Dispose()
+ {
+ if (File.Exists(tempFile))
+ {
+ File.Delete(tempFile);
+ }
+ }
+ }
+} \ No newline at end of file