diff options
author | Jon Skeet <skeet@pobox.com> | 2008-08-14 20:38:07 +0100 |
---|---|---|
committer | Jon Skeet <skeet@pobox.com> | 2008-08-14 20:38:07 +0100 |
commit | 0980982095e5fc99a20b627c188d52a8b63248c7 (patch) | |
tree | 1952fd5258f2e548211e6bfb826c2579727bf509 /csharp/ProtocolBuffers/FieldAccess/Delegates.cs | |
parent | 38da52d3490a329be0407438eeddff6da65e5085 (diff) | |
download | protobuf-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.cs | 23 |
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); } |