aboutsummaryrefslogtreecommitdiff
path: root/csharp/ProtocolBuffers/FieldAccess/Delegates.cs
diff options
context:
space:
mode:
authorJon Skeet <skeet@pobox.com>2008-08-14 20:38:07 +0100
committerJon Skeet <skeet@pobox.com>2008-08-14 20:38:07 +0100
commit0980982095e5fc99a20b627c188d52a8b63248c7 (patch)
tree1952fd5258f2e548211e6bfb826c2579727bf509 /csharp/ProtocolBuffers/FieldAccess/Delegates.cs
parent38da52d3490a329be0407438eeddff6da65e5085 (diff)
downloadprotobuf-0980982095e5fc99a20b627c188d52a8b63248c7.tar.gz
protobuf-0980982095e5fc99a20b627c188d52a8b63248c7.tar.bz2
protobuf-0980982095e5fc99a20b627c188d52a8b63248c7.zip
Evil reflection optimisation.
Diffstat (limited to 'csharp/ProtocolBuffers/FieldAccess/Delegates.cs')
-rw-r--r--csharp/ProtocolBuffers/FieldAccess/Delegates.cs23
1 files changed, 20 insertions, 3 deletions
diff --git a/csharp/ProtocolBuffers/FieldAccess/Delegates.cs b/csharp/ProtocolBuffers/FieldAccess/Delegates.cs
index 04b1d94c..e6fb4fe8 100644
--- a/csharp/ProtocolBuffers/FieldAccess/Delegates.cs
+++ b/csharp/ProtocolBuffers/FieldAccess/Delegates.cs
@@ -1,11 +1,28 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc.
+// http://code.google.com/p/protobuf/
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
namespace Google.ProtocolBuffers.FieldAccess {
+ // TODO(jonskeet): Convert these to Func/Action family
delegate bool HasDelegate<T>(T message);
delegate T ClearDelegate<T>(T builder);
delegate int RepeatedCountDelegate<T>(T message);
delegate object GetValueDelegate<T>(T message);
+ delegate void SingleValueDelegate<TSource>(TSource source, object value);
+ delegate IBuilder CreateBuilderDelegate();
+ delegate object GetIndexedValueDelegate<T>(T message, int index);
+ delegate object SetIndexedValueDelegate<T>(T message, int index, object value);
}