Search Results

Search found 15849 results on 634 pages for 'static linking'.

Page 215/634 | < Previous Page | 211 212 213 214 215 216 217 218 219 220 221 222  | Next Page >

  • How to find Key and IV value from .Net to PHP

    - by PHP-Prabhu
    Can any one please let me know is there any way to find a solution for the below stuffs. I need to find out the KEY and IV value from the below byte array. the byte array in .net and this has to be convert into KEY(string) and IV(string) via PHP. private static readonly byte[] Key = { 0xda, 0x3c, 0x35, 0x6f, 0xbd, 0xd, 0x87, 0xf0, 0x9a, 0x7, 0x6d, 0xab, 0x7e, 0x82, 0x36, 0xa, 0x1a, 0x5a, 0x77, 0xfe, 0x74, 0xf3, 0x7f, 0xa8, 0xaa, 0x4, 0x11, 0x46, 0x6b, 0x2d, 0x48, 0xa1 }; private static readonly byte[] IV = { 0x6d, 0x2d, 0xf5, 0x34, 0xc7, 0x60, 0xc5, 0x33, 0xe2, 0xa3, 0xd7, 0xc3, 0xf3, 0x39, 0xf2, 0x16 };

    Read the article

  • C# 'could not found' existing method

    - by shybovycha
    Greetings! I've been fooling around (a bit) with C# and its assemblies. And so i've found such an interesting feature as dynamic loading assemblies and invoking its class members. A bit of google and here i am, writing some kind of 'assembly explorer'. (i've used some portions of code from here, here and here and none of 'em gave any of expected results). But i've found a small bug: when i tried to invoke class method from assembly i've loaded, application raised MissingMethod exception. I'm sure DLL i'm loading contains class and method i'm tryin' to invoke (my app ensures me as well as RedGate's .NET Reflector): The main application code seems to be okay and i start thinking if i was wrong with my DLL... Ah, and i've put both of projects into one solution, but i don't think it may cause any troubles. And yes, DLL project has 'class library' target while the main application one has 'console applcation' target. So, the question is: what's wrong with 'em? Here are some source code: DLL source: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ClassLibrary1 { public class Class1 { public void Main() { System.Console.WriteLine("Hello, World!"); } } } Main application source: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Reflection; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Assembly asm = Assembly.LoadFrom(@"a\long\long\path\ClassLibrary1.dll"); try { foreach (Type t in asm.GetTypes()) { if (t.IsClass == true && t.FullName.EndsWith(".Class1")) { object obj = Activator.CreateInstance(t); object res = t.InvokeMember("Main", BindingFlags.Default | BindingFlags.InvokeMethod, null, obj, null); // Exception is risen from here } } } catch (Exception e) { System.Console.WriteLine("Error: {0}", e.Message); } System.Console.ReadKey(); } } } UPD: worked for one case - when DLL method takes no arguments: DLL class (also works if method is not static): public class Class1 { public static void Main() { System.Console.WriteLine("Hello, World!"); } } Method invoke code: object res = t.InvokeMember("Main", BindingFlags.Default | BindingFlags.InvokeMethod, null, null, null);

    Read the article

  • Statically initialize anonymous union in C++

    - by wpfwannabe
    I am trying to statically initialize the following structure in Visual Studio 2010: struct Data { int x; union { char ch; const Data* data; }; }; The following is fails with error C2440: 'initializing' : cannot convert from 'Data *' to 'char'. static Data d1; static Data d = {1, &d1}; I have found references to some ways this can be initialized properly but none of them work in VS2010. Any ideas?

    Read the article

  • How to determine IP used by client connecting to INADDR_ANY listener socket in C

    - by codebox_rob
    I have a network server application written in C, the listener is bound using INADDR_ANY so it can accept connections via any of the IP addresses of the host on which it is installed. I need to determine which of the server's IP addresses the client used when establishing its connection - actually I just need to know whether they connected via the loopback address 127.0.0.1 or not. Partial code sample as follows (I can post the whole thing if it helps): static struct sockaddr_in serverAddress; serverAddress.sin_family = AF_INET; serverAddress.sin_addr.s_addr = INADDR_ANY; serverAddress.sin_port = htons(port); bind(listener, (struct sockaddr *) &serverAddress, sizeof(serverAddress)); listen(listener, CONNECTION_BACKLOG); SOCKET socketfd; static struct sockaddr_in clientAddress; ... socketfd = accept(listener, (struct sockaddr *) &clientAddress, &length);

    Read the article

  • Print an EObject ?

    - by tul
    I am writing some eclipse emf code and would like to print the content of an EObject (not store it to disk). Here is what I try: public static void print(EObject obj) { Resource eResource = obj.eResource(); try { eResource.save(System.out, null); } catch (IOException e) { e.printStackTrace(); } } but that gives a NullPointerException. I have tried this instead: public static void print(EObject obj) { ResourceSet resourceSet = new ResourceSetImpl(); resourceSet.getResourceFactoryRegistry().getProtocolToFactoryMap() .put("*", new XMIResourceFactoryImpl()); Resource resource = resourceSet.createResource(URI.createURI("dummyfile.xml")); resource.getContents().add(obj); try { resource.save(System.out, null); } catch (IOException ioe) { ioe.printStackTrace(); } } This works, but is it not possible to print to screen without specifying a dummy URI??

    Read the article

  • In WPF XAML how can I concatenate 2 constants so I can use pre-define paths?

    - by toaster24
    I'm new to XAML, so presume I'm missing something simple. I want to replace the path part of the source path with a c# constant for easier path management, for example I have: <Image Source="/Images/Themes/Buttons/MyPicture.png" /> and in another class I have my constant defined: public static readonly string UriImagesButtons = "/Images/Big/PNG/"; I want to have something along the lines of: <Image Source="{static:UriImagesButtons + MyPicture.png}" /> This means that I can change the path globally at a stroke if the need arises. What's the syntax to do this?

    Read the article

  • How Does Domain Know Where Your Web Host Is Located [closed]

    - by icu222much
    Possible Duplicate: How Does Domain Know Where Your Web Host Is Located? I just purchased a domain name from RapidNames, and a hosting plan at JustHost. I was told to enter JustHost's name server (ns1.justhost.com) in my domain name's name server field and wait for 24 hours for the process to be complete. I do not understand how RapidNames can find my account on JustHost's server as I am sure I am not JustHost's only customer. I have read the article How DNS Works that John Conde has posted, but I still do not understand the issue. After reading several other articles, I am beginning to understand how it works, but I would still like someone to confirm if I am correct or not. From my understanding, linking your domain name to your web host is a two step process. First, you need to tell your domain name who your web host is. This is done by providing the two DNS server addresses. Secondly, you need to tell your web host which domain names you own by entering your domain names into the domain name manager. As a result, when someone queries your domain name, they will be forwarded to your web host. The web host will look in their database to match the domain name the account's owner, and then serve the appropriate website. I want to confirm if my understanding of how a domain knows where your web host is located is accurate?

    Read the article

  • How can I link two Java serialised objects back together?

    - by Kidburla
    Sometimes (quite a lot, actually) we get a situation in Java where two objects are pointing to the same thing. Now if we serialise these separately it is quite appropriate that the serialised forms have separate copies of the object as it should be possible to open one without the other. However if we now deserialise them both, we find that they are still separated. Is there any way to link them back together? Example follows. public class Example { private static class ContainerClass implements java.io.Serializable { private ReferencedClass obj; public ReferencedClass get() { return obj; } public void set(ReferencedClass obj) { this.obj = obj; } } private static class ReferencedClass implements java.io.Serializable { private int i = 0; public int get() { return i; } public void set(int i) { this.i = i; } } public static void main(String[] args) throws Exception { //Initialise the classes ContainerClass test1 = new ContainerClass(); ContainerClass test2 = new ContainerClass(); ReferencedClass ref = new ReferencedClass(); //Make both container class point to the same reference test1.set(ref); test2.set(ref); //This does what we expect: setting the integer in one (way of accessing the) referenced class sets it in the other one test1.get().set(1234); System.out.println(Integer.toString(test2.get().get())); //Now serialise the container classes java.io.ObjectOutputStream os = new java.io.ObjectOutputStream(new java.io.FileOutputStream("C:\\Users\\Public\\test1.ser")); os.writeObject(test1); os.close(); os = new java.io.ObjectOutputStream(new java.io.FileOutputStream("C:\\Users\\Public\\test2.ser")); os.writeObject(test2); os.close(); //And deserialise them java.io.ObjectInputStream is = new java.io.ObjectInputStream(new java.io.FileInputStream("C:\\Users\\Public\\test1.ser")); ContainerClass test3 = (ContainerClass)is.readObject(); is.close(); is = new java.io.ObjectInputStream(new java.io.FileInputStream("C:\\Users\\Public\\test2.ser")); ContainerClass test4 = (ContainerClass)is.readObject(); is.close(); //We expect the same thing as before, and would expect a result of 4321, but this doesn't happen as the referenced objects are now separate instances test3.get().set(4321); System.out.println(Integer.toString(test4.get().get())); } }

    Read the article

  • Behaviour to simulate an enum implementing an interface

    - by fearofawhackplanet
    Say I have an enum something like: enum OrderStatus { AwaitingAuthorization, InProduction, AwaitingDespatch } I've also created an extension method on my enum to tidy up the displayed values in the UI, so I have something like: public static string ToDisplayString(this OrderStatus status) { switch (status) { case Status.AwaitingAuthorization: return "Awaiting Authorization"; case Status.InProduction: return "Item in Production"; ... etc } } Inspired by the excellent post here, I want to bind my enums to a SelectList with an extension method: public static SelectList ToSelectList<TEnum>(this TEnum enumObj) however, to use the DisplayString values in the UI drop down I'd need to add a constraint along the lines of : where TEnum has extension ToDisplayString Obviously none of this is going to work at all with the current approach, unless there's some clever trick I don't know about. Does anyone have any ideas about how I might be able to implement something like this?

    Read the article

  • Upload a .pdf file to a Sharepoint Document Library using Access vba

    - by Jim Shaffer
    Within an Access 2007 application, I'm creating a static report in .pdf format. I want to create it, then export the static report (not the data itself) to a Sharepoint Document Library. The intent is for it to be a public repository, no versioning. Each report will carry a unique name. I'm a seasoned vba programmer, but using Sharepoint services is new to me. How do I go about doing this? Assume I can identify the file name and location after I've generated it, and I know the Sharepoint library URL, and have permissions. Where do I go from there?

    Read the article

  • Is it possible to use two different ErrorDocuments for different paths of a website?

    - by tapwater
    this is my first question on stackexchange and it might be a bit confusing. I currently run PmWiki (sorry, you'll have to google it, new user can only have 2 hyperlinks) at mydomain.com/pmwiki. I have a 404 page and .htaccess set up in my site's document root for 404 pages regarding anything that doesn't have to do with my wiki. By default, PmWiki handles URLs a little confusingly so I had to use this in order to get it to look like mydomain.com/pmwiki/Namespace/Page I had to create a .htaccess in /pmwiki to remove parts of the URL. PmWiki also has a custom 404 (Site/PageNotFound) page that has stopped working, now my site uses the /404.htm page. I noticed this when trying to install this "recipe" to enable case-insensitive URLs. Currently the only way to access Site/PageNotFound is by actually linking to it, and, if you read how that recipe seems to function, this is an issue. Currently mydomain.com/pmwiki/blahblah and mydomain.com/pmwiki/legitimate_namespace_but_lowercase/legitimate_lowercase_page_name both direct to mydomain.com/404.htm. I have to admit I'm very confused, and I apologize if I was unclear in any of this, but I could definitely use some help. Thanks!

    Read the article

  • Unlock device, display a text, then lock again

    - by Waza_Be
    For the need of my application, I need to display a message on the screen even if the lockscreen is enabled, then wait 3 seconds, than I have to lock again the phone as I don't want it to make unwanted phone calls in your pockets. First part is easy: if (PreferenceManager.getDefaultSharedPreferences( getBaseContext()).getBoolean("wake", false)) { KeyguardManager kgm = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE); boolean isKeyguardUp = kgm.inKeyguardRestrictedInputMode(); WakeLocker.acquire(ProtoBenService.this); Intent myIntent = new Intent(ProtoBenService.this,LockActivity.class); myIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); if (isKeyguardUp) { ProtoBenService.this.startActivity(myIntent); } else Toast.makeText(ProtoBenService.this.getBaseContext(), intention, Toast.LENGTH_LONG).show(); WakeLocker.release(); } With this class: public abstract class WakeLocker { private static PowerManager.WakeLock wakeLock; public static void acquire(Context ctx) { if (wakeLock != null) wakeLock.release(); PowerManager pm = (PowerManager) ctx.getSystemService(Context.POWER_SERVICE); wakeLock = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.ON_AFTER_RELEASE, "CobeIm"); wakeLock.acquire(); } public static void release() { if (wakeLock != null) wakeLock.release(); wakeLock = null; } } And the Activity: public class LockActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Window window = getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD); window.addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON); window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); TextView tv = new TextView(this); tv.setText("This is working!"); tv.setTextSize(45); setContentView(tv); Runnable mRunnable; Handler mHandler = new Handler(); mRunnable = new Runnable() { @Override public void run() { LockActivity.this.finish(); } }; mHandler.postDelayed(mRunnable, 3 * 1000); } } So, this is nice, the phone can display my text! The only problem comes when I want to lock again the phone, it seems that locking the phone is protected by the system... Programmatically turning off the screen and locking the phone how to lock the android programatically I think that my users won't understand the Device Admin and won't be able to activate it. Is there any workaround to lock the screen without the Device Admin stuff?

    Read the article

  • Searching a Better Solution with Delegates

    - by spagetticode
    Hey All, I am a newbie in C# and curious about the better solution of my case. I have a method which gets the DataTable as a parameter and creates a List with MyClass's variables and returns it. public static List<Campaigns> GetCampaignsList(DataTable DataTable) { List<Campaigns> ListCampaigns = new List<Campaigns>(); foreach (DataRow row in DataTable.Rows) { Campaigns Campaign = new Campaigns(); Campaign.CampaignID = Convert.ToInt32(row["CampaignID"]); Campaign.CustomerID = Convert.ToInt32(row["CustomerID"]); Campaign.ClientID = Convert.ToInt32(row["ClientID"]); Campaign.Title = row["Title"].ToString(); Campaign.Subject = row["Subject"].ToString(); Campaign.FromName = row["FromName"].ToString(); Campaign.FromEmail = row["FromEmail"].ToString(); Campaign.ReplyEmail = row["ReplyEmail"].ToString(); Campaign.AddDate = Convert.ToDateTime(row["AddDate"]); Campaign.UniqueRecipients = Convert.ToInt32(row["UniqueRecipients"]); Campaign.ClientReportVisible = Convert.ToBoolean(row["ClientReportVisible"]); Campaign.Status = Convert.ToInt16(row["Status"]); ListCampaigns.Add(Campaign); } return ListCampaigns; } And one of my another DataTable method gets the DataTable from the database with given parameters. Here is the method. public static DataTable GetNewCampaigns() { DataTable dtCampaigns = new DataTable(); Campaigns Campaigns = new Campaigns(); dtCampaigns = Campaigns.SelectStatus(0); return dtCampaigns; } But the problem is that, this GetNewCampaigns method doesnt take parameters but other methods can take parameters. For example when I try to select a campaign with a CampaignID, I have to send CampaignID as parameter. These all Database methods do take return type as DataTable but different number of parameters. public static DataTable GetCampaignDetails(int CampaignID) { DataTable dtCampaigns = new DataTable(); Campaigns Campaigns = new Campaigns(); dtCampaigns = Campaigns.Select(CampaignID); return dtCampaigns; } At the end, I want to pass a Delegate to my first GetCampaignList Method as parameter which will decide which Database method to invoke. I dont want to pass DataTable as parameter as it is newbie programming. Could you pls help me learn some more advance features. I searched over it and got to Func< delegate but could not come up with a solution.

    Read the article

  • Tomcat custom 404 not shown

    - by Andrey
    Hello! In my web.xml I am using <error-page> <error-code>404</error-code> <location>/static/404.html</location> </error-page> but is doesn't work in Tomcat. It still shows the Tomcat's default 404 page. And no - that's not IE. I tried different browsers. /static/404.html opens if requested directly. Any ideas? Thanks in advance!

    Read the article

  • Which type of data can be garbage collected when app is in background?

    - by Neoh
    Let's say I start from activity A - activity B. While in activity B I press home to exit. After a long time, gc may be called because other apps take higher priority. My question is, which of the following type of data will be garbage collected (I'm pretty sure static fields can be garbage collected any time but I'm not sure about these): i) fields that are declared final or static final ii) intent and its data that I passed from activity A to activity B iii) onSavedInstanceState when orientation is changed during the app running I ask this because I want to ensure that my app won't crash when I restore activity B from background after a long period.

    Read the article

  • while loop / string input not working java

    - by Mikeecb
    I have looked online and all of the tutorials / questions have pointed me to this. I can't see why this isn't working. Any help would be much appreciated. Thanks import java.util.*; public class test { static Scanner userInput = new Scanner(System.in); public static void main(String[] args) { String textEntered = userInput.next(); if (textEntered == "hello") { System.out.println("Hello to you too!"); } } } I enter "hello" but nothing is printed. Also I have tried next() and nextLine();

    Read the article

  • Is it possible for a Grails Domain to have no 'id'?

    - by firnnauriel
    Is it possible to create a table that has no 'id'? For example, this is my domain: class SnbrActVector { int nid String term double weight static mapping = { version false id generator: 'identity' } static constraints = { } } When I run this SQL statement, it fails: insert into snbr_act_vector values (5, 'term', 0.5) I checked the table and 'id' is already set to autoincrement. I'm thinking that another option is to remove the 'id' itself. Or is there another workaround for this? Please assume that it is not an option to change the givent SQL statement.

    Read the article

  • Generate a Constant expression from a function

    - by Lee
    For my Google Wave robot, on the onDocumentChanged event I want to apply a filter as follows: @Capability(filter = FILTER) @Override public void onDocumentChanged(DocumentChangedEvent event) { ... } I want the filter to be generated the first time the robot is run, which I'm trying to do as follows: private static final String FILTER = generateFilter(); private static final String generateFilter(){ ... } However, it complains FILTER isn't a constant expression when used within @Capability. generateFilter() will return the same string every time it is called, I'm only using it to create the string so that when I make changes, I don't need to worry about updating the filter. Now I could be going about this all wrong, so wondered if anyone knew what I'm doing wrong, or knew a better way in which I could generate a constant expression from the function.

    Read the article

  • Incompatible type in assignment

    - by coure06
    Getting error: Incompatible type in assignment at fValue = ..., see the code static float t = 0; float d = .5; static float fValue = 0; fValue = [self easeOutBounce:t andB:0 andC:30 andD:d]; here is the method -(float) easeOutBounce:(float)t andB:(float)b andC:(float)c andD:(float)d { if ((t/=d) < (1/2.75)) { return c*(7.5625*t*t) + b; } else if (t < (2/2.75)) { return c*(7.5625*(t-=(1.5/2.75))t + .75) + b; } else if (t < (2.5/2.75)) { return c(7.5625*(t-=(2.25/2.75))t + .9375) + b; } else { return c(7.5625*(t-=(2.625/2.75))*t + .984375) + b; } }

    Read the article

  • Thread class closing from other Class (Activity) with protected void onStop() Android

    - by user1761337
    I have a Problem with Closing the Thread. I will Closing the Thread with onStop,onPause and onDestroy. This is my Source in the Activity Class: @Override protected void onStop(){ super.onStop(); finish(); } @Override protected void onPause() { super.onPause(); finish(); } @Override public void onDestroy() { this.mWakeLock.release(); super.onDestroy(); } And the Thread Class: public class GameThread extends Thread { private SurfaceHolder mSurfaceHolder; private Handler mHandler; private Context mContext; private Paint mLinePaint; private Paint blackPaint; //for consistent rendering private long sleepTime; //amount of time to sleep for (in milliseconds) private long delay=1000/30; //state of game (Running or Paused). int state = 1; public final static int RUNNING = 1; public final static int PAUSED = 2; public final static int STOPED = 3; GameSurface gEngine; public GameThread(SurfaceHolder surfaceHolder, Context context, Handler handler,GameSurface gEngineS){ //data about the screen mSurfaceHolder = surfaceHolder; mHandler = handler; mContext = context; gEngine=gEngineS; } //This is the most important part of the code. It is invoked when the call to start() is //made from the SurfaceView class. It loops continuously until the game is finished or //the application is suspended. private long beforeTime; @Override public void run() { //UPDATE while (state==RUNNING) { Log.d("State","Thread is runnig"); //time before update beforeTime = System.nanoTime(); //This is where we update the game engine gEngine.Update(); //DRAW Canvas c = null; try { //lock canvas so nothing else can use it c = mSurfaceHolder.lockCanvas(null); synchronized (mSurfaceHolder) { //clear the screen with the black painter. //reset the canvas c.drawColor(Color.BLACK); //This is where we draw the game engine. gEngine.doDraw(c); } } finally { // do this in a finally so that if an exception is thrown // during the above, we don't leave the Surface in an // inconsistent state if (c != null) { mSurfaceHolder.unlockCanvasAndPost(c); } } this.sleepTime = delay-((System.nanoTime()-beforeTime)/1000000L); try { //actual sleep code if(sleepTime>0){ this.sleep(sleepTime); } } catch (InterruptedException ex) { Logger.getLogger(GameThread.class.getName()).log(Level.SEVERE, null, ex); } while (state==PAUSED){ Log.d("State","Thread is pausing"); try { this.sleep(1000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }} How i can close the Thread from Activity Class??

    Read the article

  • CakePHP: How do I change page title from helper?

    - by Zeta Two
    Hello! I'm using a helper for static pages to add a part to the title on every page. Currently I have the following code at the top of every static page: <?php $this->set('title_for_layout', $title->output('Nyheter')); ?> The purpose of $title-output is to append " :: MY WEB SITE NAME". This works fine, but for simplicity I would rather just call: $title->title('Nyheter'); At the top of every page to set the title. The problem is that I can't call $this-set() from within the helper. Is there a way to something like this or am I completely on the wrong path here?

    Read the article

  • HTML5 video element non-seekable when using Django development server

    - by Ory Band
    Hey everyone. I've got a Django app serving a webpage with an HTML5 element. There's a wierd "feature", turning the video element to be non-seekable: video.seekable returns a timeRanges object with length=0, whereas it should be length=1. This means I can't edit the video. JavaScript can't do anything either. The thing is, when I upload the problematic webpage, statically - no Django, just plain HTML/JS/CSS - to my website for testing, it works fine - length=1. However, if I try to serve the same static page on my Django dev server still gives the same problem. I am using Django's static serving for dev/debug purposes - Do you have any idea what is causing this, or how can I fix it? Thanks.

    Read the article

  • SEO consideration for duplicate sites

    - by Malk
    I am building a brochure-ware website for a company that sells products all across the world. They need the site to ask the user what region they are in before using the site; there are 5 regions. This is because there are different products offered to different regions and each region may or may not want to customize their own content. However, at launch and likely forever, most of the pages will be the exact same minus what is listed in the footer and in the product selection menu. My question is how should I structure the sitemap for this site for best SEO? Should I be concerned with duplicate content penalties and/or cannibalizing the site's presence on the SERP? Some considerations: The client wants to be able to print links directly to regional specific content bypassing any prompt for the user to select a region (to ensure they land on the target page). The client cannot have a 'default' region so the user must have a region specified "Clean" urls are important, but there is wiggle room The client does not want each region to have its own domain There will be a link on the page to allow users to specify a different region The client is not concerned with localization ...at this time Some products are available in multiple regions A quick list of options I am considering: www.site.com/region/page region.site.com/page www.site.com/page?region (no cookie, pages require the parameter. If visited without; the user must select a region) www.site.com/page (using cookie and a splash screen if needed; could pass parameter in to set the region for direct linking) Thanks in advance for your advice.

    Read the article

  • Class Template Instantiation: any way round this circular reference?

    - by TimYorke34
    I have two classes that I'm using to represent some hardware: A Button and an InputPin class which represent a button that will change the value of an IC's input pin when it's pressed down. A simple example of them is: template <int pinNumber> class InputPin { static bool IsHigh() { return ( (*portAddress) & (1<<pinNumber) ); } }; template <typename InputPin> class Button { static bool IsPressed() { return !InputPin::IsHigh(); } }; This works beautifully and by using class templates, the condition below will compile as tightly as if I'd handwritten it in assembly (a single instruction). Button < InputPin<1> > powerButton; if (powerButton.IsPressed()) ........; However, I am extending it to deal with interrupts and have got a problem with circular references. Compared to the original InputPin, a new InputPinIRQ class has an extra static member function that will be called automatically by the hardware when the pin value changes. I'd like it to be able to notify the Button class of this, so that the Button class can then notify the main application that it has been pressed/released. I am currently doing this with function pointers to callbacks. In order for the callback code to be inlined by the compiler, I need to pass the function pointers as template parameters. So now, both of the new classes have an extra template parameter that is a pointer to a callback function. Unfortunately this gives me a circular reference because to instantiate a ButtonIRQ class I now have to do something like this: ButtonIRQ< InputPinIRQ< A1, ButtonIRQ<....>::OnPinChange, OnButtonChange > pB; where the <...... represents the circular reference. Does anyone know how I can avoid this circular reference? I am new to templates, so might be missing something really simple. It's important that the compiler knows exactly what code will be run when the interrupt occurs as it then does some very useful optimisation - it is able to inline the callback function and literally inserts the callback function's code at the exact address that is called on a h/w interrupt.

    Read the article

< Previous Page | 211 212 213 214 215 216 217 218 219 220 221 222  | Next Page >