private int ForEachInternal(Slice prefix, ForEachCallback callback) { using (var tx = _env.NewTransaction(TransactionFlags.Read)) using (var it = tx.State.GetTree(tx, Index).Iterate(tx)) { Slice key = Slice.BeforeAllKeys; if (prefix != null) { it.RequiredPrefix = prefix; key = prefix; } if (it.Seek(key) == false) { return((int)ReturnCode.GIT_OK); } do { string sha = it.CurrentKey.ToString(); int ret = callback(new ObjectId(sha)); if (ret != (int)ReturnCode.GIT_OK) { return((int)ReturnCode.GIT_EUSER); } } while (it.MoveNext()); } return((int)ReturnCode.GIT_OK); }
/// <summary> /// Performs the specified action for each element in an array. /// </summary> /// <param name="callbackfn">A function that accepts up to three arguments. forEach calls the callbackfn function one time for each element in the array.</param> public void ForEach(ForEachCallback callbackfn) { for (int index = 0; index < this.Length; index++) { callbackfn(this[index], index, this); } }
public void ForEach(ForEachCallback callback) { using (this) while (reader.Read()) { callback(this); } }
public static void ForEach(MethodBodyBlock method, ForEachCallback handler) { GraphProcessor graphProcessor = new GraphProcessor(); Visitor visitor = new ForEachVisitor(graphProcessor, handler); visitor.AddTask(method, null); graphProcessor.Process(); }
protected void Select(IList list) { MSSQLField[] readables = table.GetFields(FieldFlags.Read); StringBuilder sql = new StringBuilder(); sql.Append("SELECT "); if (distinct) { sql.Append("DISTINCT "); } if (selectTop > 0) { sql.Append("TOP ").Append(selectTop).Append(" "); } bool first = true; foreach (MSSQLField f in readables) { if (!first) { sql.Append(","); } first = false; sql.Append(database.QuoteName(f.Name)); } sql.Append(" FROM ").Append(table.QuotedName); if (where.Length > 0) { sql.Append(" WHERE ").Append(where.ToString()); } ForEachCallback callback = new ForEachCallback(delegate(IRow row) { object obj = table.NewObject(); object value = null; int i = 0; foreach (MSSQLField f in readables) { value = row[i++]; if (Convert.IsDBNull(value)) { value = null; } f.SetValue(obj, value); } list.Add(obj); }); using (MSSQLStatement stmt = database.Prepare(sql.ToString()) as MSSQLStatement) using (IQueryResult result = stmt.ExecQuery(values.ToArray())) { result.ForEach(callback); } }
/// <summary> /// Iterates through all the droplet instances. /// </summary> /// <param name="upgradableReadLock">Set it to true if a write lock on the Droplet Collection.</param> /// <param name="doThat">The code to execute on each instance.</param> public void ForEach(bool upgradableReadLock, ForEachCallback doThat) { if (doThat == null) { throw new ArgumentNullException("doThat"); } if (upgradableReadLock) { List <DropletInstance> ephemeralInstances = new List <DropletInstance>(); try { this.Lock.EnterReadLock(); foreach (KeyValuePair <string, Droplet> instances in this.Droplets) { foreach (KeyValuePair <string, DropletInstance> instance in instances.Value.DropletInstances) { ephemeralInstances.Add(instance.Value); } } } finally { this.Lock.ExitReadLock(); } foreach (DropletInstance instance in ephemeralInstances) { doThat(instance); } } else { try { this.Lock.EnterReadLock(); foreach (KeyValuePair <string, Droplet> instances in this.Droplets) { foreach (KeyValuePair <string, DropletInstance> instance in instances.Value.DropletInstances) { doThat(instance.Value); } } } finally { this.Lock.ExitReadLock(); } } }
public override int ForEach(ForEachCallback callback) { foreach (var objectId in m_objectIdToContent.Keys) { int result = callback(objectId); if (result != (int)ReturnCode.GIT_OK) { return(result); } } return((int)ReturnCode.GIT_OK); }
/// <inheritdoc /> public override int ForEach(ForEachCallback callback) { foreach (var entry in _database.FileStorage.FindAll()) { try { ExtractData(entry, out var oid, out int _, out var __); callback(oid); } catch { } } return((int)ReturnCode.GIT_OK); }
public override int ForEach(ForEachCallback callback) { foreach (var objectId in m_objectIdToContent.Keys) { int result = callback(objectId); if (result != (int)ReturnCode.GIT_OK) { return result; } } return (int)ReturnCode.GIT_OK; }
public override int ForEach(ForEachCallback callback) { throw this.exceptionToThrow; }
/// <summary> /// For each with upgradableReadLock set to false. /// </summary> /// <param name="doThat">The callback for each instance.</param> public void ForEach(ForEachCallback doThat) { this.ForEach(false, doThat); }
public void ForEach(bool upgradableReadLock, ForEachCallback doThat) { if (doThat == null) { throw new ArgumentNullException("doThat"); } if (upgradableReadLock) { List<StagingInstance> ephemeralInstances = new List<StagingInstance>(); try { this.Lock.EnterReadLock(); foreach (KeyValuePair<string, StagingInstance> instance in this.Tasks) { ephemeralInstances.Add(instance.Value); } } finally { this.Lock.ExitReadLock(); } foreach (StagingInstance instance in ephemeralInstances) { doThat(instance); } } else { try { this.Lock.EnterReadLock(); foreach (KeyValuePair<string, StagingInstance> instance in this.Tasks) { doThat(instance.Value); } } finally { this.Lock.ExitReadLock(); } } }
public override int ForEach(ForEachCallback callback) { return ForEachInternal(new {match_all = new {}}, callback); }
/// <summary> /// Requests that this backend enumerate all items in the backing store. /// </summary> public abstract int ForEach(ForEachCallback callback);
public override int ForEach(ForEachCallback callback) { return(ForEachInternal(null, callback)); }
public override int ForEach(ForEachCallback callback) { throw new NotImplementedException(); }
public override int ForEach(ForEachCallback callback) { return ForEachInternal(null, callback); }
private int ForEachInternal(Slice prefix, ForEachCallback callback) { using (var tx = _env.NewTransaction(TransactionFlags.Read)) using (var it = tx.State.GetTree(tx, Index).Iterate(tx)) { Slice key = Slice.BeforeAllKeys; if (prefix != null) { it.RequiredPrefix = prefix; key = prefix; } if (it.Seek(key) == false) { return (int)ReturnCode.GIT_OK; } do { string sha = it.CurrentKey.ToString(); int ret = callback(new ObjectId(sha)); if (ret != (int)ReturnCode.GIT_OK) { return (int)ReturnCode.GIT_EUSER; } } while (it.MoveNext()); } return (int)ReturnCode.GIT_OK; }
static int ForEachVoxel( VoxelWorld World, ref VoxelRef v1, ref VoxelRef v2, ForEachCallback f, bool not_zero ) { if( v1.Sector == null || v2.Sector == null ) return not_zero ? 1 : 0; int v1x = v1.x + ( v1.Sector.Pos_x << VoxelSector.ZVOXELBLOCSHIFT_X ); int v1y = v1.y + ( v1.Sector.Pos_y << VoxelSector.ZVOXELBLOCSHIFT_Y ); int v1z = v1.z + ( v1.Sector.Pos_z << VoxelSector.ZVOXELBLOCSHIFT_Z ); int v2x = v2.x + ( v2.Sector.Pos_x << VoxelSector.ZVOXELBLOCSHIFT_X ); int v2y = v2.y + ( v2.Sector.Pos_y << VoxelSector.ZVOXELBLOCSHIFT_Y ); int v2z = v2.z + ( v2.Sector.Pos_z << VoxelSector.ZVOXELBLOCSHIFT_Z ); int del_x = v2x - v1x; int del_y = v2y - v1y; int del_z = v2z - v1z; int abs_x = del_x < 0 ? -del_x : del_x; int abs_y = del_y < 0 ? -del_y : del_y; int abs_z = del_z < 0 ? -del_z : del_z; // cannot use iterate if either end is undefined. if( del_x != 0 ) { if( del_y != 0 ) { if( del_z != 0 ) { if( abs_x > abs_y || ( abs_z > abs_y ) ) { if( abs_z > abs_x ) { // z is longest path int erry = -abs_z / 2; int errx = -abs_z / 2; int incy = del_y < 0 ? -1 : 1; int incx = del_x < 0 ? -1 : 1; int incz = del_z < 0 ? -1 : 1; { int x = v1x; int y = v1y; for( int z = v1z + incz; z != v2z; z += incz ) { errx += abs_x; if( errx > 0 ) { errx -= abs_z; x += incx; } erry += abs_y; if( erry > 0 ) { erry -= abs_z; y += incy; } { int val; VoxelRef v; if( World.GetVoxelRef( out v, x, y, z ) ) { val = f( ref v ); if( ( !not_zero && val != 0 ) || ( not_zero && val == 0 ) ) return val; } } } } } else { // x is longest. int erry = -abs_x / 2; int errz = -abs_x / 2; int incy = del_y < 0 ? -1 : 1; int incx = del_x < 0 ? -1 : 1; int incz = del_z < 0 ? -1 : 1; { int y = v1y; int z = v1z; for( int x = v1x + incx; x != v2x; x += incx ) { errz += abs_z; if( errz > 0 ) { errz -= abs_x; z += incx; } erry += abs_y; if( erry > 0 ) { erry -= abs_x; y += incy; } { int val; VoxelRef v; if( World.GetVoxelRef( out v, x, y, z ) ) { val = f( ref v ); if( ( !not_zero && val != 0 ) || ( not_zero && val == 0 ) ) return val; } } } } } } else { // y is longest. int errx = -abs_y / 2; int errz = -abs_y / 2; int incy = del_y < 0 ? -1 : 1; int incx = del_x < 0 ? -1 : 1; int incz = del_z < 0 ? -1 : 1; { int x = v1x; int z = v1x; for( int y = v1y + incy; y != v2y; y += incy ) { errx += abs_x; if( errx > 0 ) { errx -= abs_y; x += incx; } errz += abs_z; if( errz > 0 ) { errz -= abs_y; z += incz; } { int val; VoxelRef v; if( World.GetVoxelRef( out v, x, y, z ) ) { val = f( ref v ); if( ( !not_zero && val != 0 ) || ( not_zero && val == 0 ) ) return val; } } } } } } else { // z is constant if( abs_x > abs_y ) { // x is longest int erry = -abs_x / 2; int incy = del_y < 0 ? -1 : 1; int incx = del_x < 0 ? -1 : 1; { int y = v1y; int z = v1z; for( int x = v1x + incx; x != v2x; x += incx ) { erry += abs_y; if( erry > 0 ) { erry -= abs_x; y += incy; } { int val; VoxelRef v; if( World.GetVoxelRef( out v, x, y, z ) ) { val = f( ref v ); if( ( !not_zero && val != 0 ) || ( not_zero && val == 0 ) ) return val; } } } } } else { // y is longest. int errx = -abs_y / 2; int incy = del_y < 0 ? -1 : 1; int incx = del_x < 0 ? -1 : 1; // z is longest path { int x = v1x; int z = v1x; for( int y = v1y + incy; y != v2y; y += incy ) { errx += abs_x; if( errx > 0 ) { errx -= abs_y; x += incx; } { int val; VoxelRef v; if( World.GetVoxelRef( out v, x, y, z ) ) { val = f( ref v ); if( ( !not_zero && val != 0 ) || ( not_zero && val == 0 ) ) return val; } } } } } } } else { if( del_z != 0 ) { if( abs_x > abs_z ) { // x is longest. int errz = -abs_x / 2; int incx = del_x < 0 ? -1 : 1; int incz = del_z < 0 ? -1 : 1; { int y = v1y; int z = v1z; for( int x = v1x + incx; x != v2x; x += incx ) { errz += abs_z; if( errz > 0 ) { errz -= abs_x; z += incx; } { int val; VoxelRef v; if( World.GetVoxelRef( out v, x, y, z ) ) { val = f( ref v ); if( ( !not_zero && val != 0 ) || ( not_zero && val == 0 ) ) return val; } } } } } else { // z is longest path int errx = -abs_z / 2; int incx = del_x < 0 ? -1 : 1; int incz = del_z < 0 ? -1 : 1; { int x = v1x; int y = v1y; for( int z = v1z + incz; z != v2z; z += incz ) { errx += abs_x; if( errx > 0 ) { errx -= abs_z; x += incx; } { int val; VoxelRef v; if( World.GetVoxelRef( out v, x, y, z ) ) { val = f( ref v ); if( ( !not_zero && val != 0 ) || ( not_zero && val == 0 ) ) return val; } } } } } } else { // x is only changing. int incx = del_x < 0 ? -1 : 1; for( int x = v1x + incx; x != v2x; x += incx ) { int val; VoxelRef v; if( World.GetVoxelRef( out v, x, v1y, v1z ) ) { val = f( ref v ); if( ( !not_zero && val != 0 ) || ( not_zero && val == 0 ) ) return val; } } } } } else { if( del_y != 0 ) { if( del_z != 0 ) { if( abs_y > abs_z ) { // y is longest. int errz = -abs_y / 2; int incy = del_y < 0 ? -1 : 1; int incz = del_z < 0 ? -1 : 1; { int x = v1x; int z = v1x; for( int y = v1y + incy; y != v2y; y += incy ) { errz += abs_z; if( errz > 0 ) { errz -= abs_y; z += incz; } { int val; VoxelRef v; if( World.GetVoxelRef( out v, x, y, z ) ) { val = f( ref v ); if( ( !not_zero && val != 0 ) || ( not_zero && val == 0 ) ) return val; } } } } } else { // z is longest path int erry = -abs_z / 2; int incy = del_y < 0 ? -1 : 1; int incz = del_z < 0 ? -1 : 1; { int x = v1x; int y = v1y; for( int z = v1z + incz; z != v2z; z += incz ) { erry += abs_y; if( erry > 0 ) { erry -= abs_z; y += incy; } { int val; VoxelRef v; if( World.GetVoxelRef( out v, x, y, z ) ) { val = f( ref v ); if( ( !not_zero && val != 0 ) || ( not_zero && val == 0 ) ) return val; } } } } } } else { // no del_x, no del_z // y is only changing. int incy = del_y < 0 ? -1 : 1; for( int y = v1y + incy; y != v2y; y += incy ) { int val; VoxelRef v; if( World.GetVoxelRef( out v, v1x, y, v1z ) ) { val = f( ref v ); if( ( !not_zero && val != 0 ) || ( not_zero && val == 0 ) ) return val; } } } } else { // no del_x, no del_y... if( del_z != 0 ) { if( del_z > 0 ) for( int z = v1z + 1; z < v2z; z++ ) { int val; VoxelRef v; if( World.GetVoxelRef( out v, v1x, v1y, z ) ) { val = f( ref v ); if( ( !not_zero && val != 0 ) || ( not_zero && val == 0 ) ) return val; } } else for( int z = v2z + 1; z < v1z; z++ ) { int val; VoxelRef v; if( World.GetVoxelRef( out v, v1x, v1y, z ) ) { val = f( ref v ); if( ( !not_zero && val != 0 ) || ( not_zero && val == 0 ) ) return val; } } } else { // no delta diff, nothing to do. } } } return not_zero ? 1 : 0; }
public ForEachVisitor(GraphProcessor processor, ForEachCallback handler) : base(processor) { alreadyVisited = new Hashtable(); this.handler = handler; }
public static void ForEach(MethodBodyBlock method, ForEachCallback handler) { GraphProcessor graphProcessor = new GraphProcessor(); Visitor visitor = new ForEachVisitor(graphProcessor,handler); visitor.AddTask(method,null); graphProcessor.Process(); }
public ForeachState(GitOdbBackend.foreach_callback_callback cb, IntPtr data) { this.cb = cb; this.data = data; this.ManagedCallback = CallbackMethod; }
private int ForEachInternal(object query, ForEachCallback callback) { var curPage = 0; var pageSize = 10; var collectedResults = 0; // TODO better and more stable paging strategy while (true) { var q = new { query = query, from = curPage * pageSize, size = pageSize, fields = new string[] { }, // force returning only the ID }; var results = client.Search<GO>(q, client.DefaultIndexName, GitObjectsType); if (results == null) // TODO smarter error handling { return (int)ReturnCode.GIT_OK; } if (results.hits.hits.Select(hit => callback(new ObjectId(hit._id))).Any(ret => ret != (int)ReturnCode.GIT_OK)) { return (int)ReturnCode.GIT_EUSER; } collectedResults += results.hits.hits.Count; if (results.hits.hits.Count < pageSize || collectedResults == results.hits.total) break; curPage++; } return (int)ReturnCode.GIT_OK; }