当前位置:  编程技术>移动开发
本页文章导读:
    ▪common library in nova (一)        common library in nova (1)   转载至www.x9byod.com   nova中把通用的功能模块放在openstack/common下,实现了很多基本的常用功能,比如log,time,包引用等等;这个模块与其它模块高度独立,因此可以被.........
    ▪ 02-NSString的联接、使用和打印        02-NSString的连接、使用和打印 一、NSString字符串连接NSString* string; // 结果字符串 NSString* string1, string2; //已存在的字符串1. string = [NSString initWithFormat:@"%@,%@", string1, string2 ];2. string = [string1 stringB.........
    ▪ 查看某个索引下的文件内容       查看某个目录下的文件内容 grep -r "spring.profiles.active" ./JAVA_OPTIONS="-Xmx512m -Xms512m -Xss256k -XX:MaxPermSize=256m  -Djava.awt.headless=true -Dspring.profiles.active=test" ......

[1]common library in nova (一)
    来源: 互联网  发布时间: 2014-02-18
common library in nova (1)

 

转载至www.x9byod.com

 

nova中把通用的功能模块放在openstack/common下,实现了很多基本的常用功能,比如log,time,包引用等等;这个模块与其它模块高度独立,因此可以被很容易的被各个模块,甚至其它工程复用。这里介绍openstack比较常用和重要的几个模块:

  • db

nova数据库默认采用的后台是sqlalchemy,common/db实现了抽象的DBAPI类,所有对数据库的操作都通过DBAPI来代理。DBAPI只是一个简单的wrapper,真正的实现由它的初始话参数backend_mapping来决定。nova里采用的默认值为“{‘sqlalchemy’: ‘nova.db.sqlalchemy.api’}”,也就是说,db的后台实现在目录nova/db/sqlalchemy下。nova.db.sqlalchemy.api中实现了所有对数据库操作函数的封装,任何一个对数据库状态有修改的函数,都可以在这里找到对应的数据库更新函数。数据库的表定义在nova.db.sqlalchemy.models中。

  • log

nova的log可以认为是对python标准库里logging函数的封装和增强。它根据配置文件,对输出的内容,级别,格式以及输出目的进行控制。同时,配合gettextutils模块,log还支持多语言的数据

  • gettextutils

是对gettext工具的封装,用来提供多语言的输出。典型用法也是通过_(“index message id”)来提供不同语言的输出。gettextutils提供两种模式,如果用普通模式(非lasy),会调用gettext模块中translation的ugettext直接翻译输出。如果用lazy模式,_会返回一个Message对象,只有在访问Message对象的str或者unicode方法时,才会从po文件里查找对应的翻译内容。

  • service

简单说就是把函数或者可执行程序放在后台执行。服务有launch函数启动,有两种启动方式:一是直接在thread里执行,另一个是创建子进程执行。nova中service的实现在nova.service中,由cmd下的all.py来启动对应的服务。启动过程首先创建service或者wsgi_service,wsgi_service由对应的manager启动,service除了manager外,还实现了rpc的接口,用来相应远程命令的实现。nova-compute’, ‘nova-network’, ‘nova-scheduler’都属于Service,’ec2′属于wsgi_service。

  • periodic_task

nova在运行时需要很多定时任务,例如检查vm状态,更新节点信息等等。periodic_task是用来简化nova中定时任务的处理,通过periodic_task我们不必为每一个任务写一个单独的定时器进行调度。periodic_task的核心是一个decorator,一个metaclass,一个定时任务的基类。
periodic_task.periodic_task是decorator,它为函数设置必要的属性(例如定时间隔,执行时间等),保存在函数的属性中(函数也是对象);PeriodicTasks是定时任务的基类,它的run_periodic_tasks函数会在定时器到达时,检查并执行所有需要被执行的成员函数。而_PeriodicTasksMeta作为PeriodicTasks的metaclass,在生成PeriodicTasks类时,会把所有需要定时执行的成员函数(PeriodicTasks中被periodic_task decorated的成员函数)保存到数组_periodic_tasks中。而run_periodic_tasks函数就是在这个数组中进行检查的。

 

待续

<!-- .entry-content -->

    
[2] 02-NSString的联接、使用和打印
    来源: 互联网  发布时间: 2014-02-18
02-NSString的连接、使用和打印

一、NSString字符串连接
NSString* string; // 结果字符串

NSString* string1, string2; //已存在的字符串

1. string = [NSString initWithFormat:@"%@,%@", string1, string2 ];
2. string = [string1 stringByAppendingString:string2];</p>
3 . string = [string stringByAppendingFormat:@"%@,%@",string1, string2];

4 . string = [string stringByAppendingFormat:@"%@%@%@%@%@%@",string1, string2, string3, string4......];

可以拼接很多,%@中间加逗号字符串里也带逗号

 

 

二、NNString用法

 

-----创建字符串的方法-----
//1、创建常量字符串
    NSString *astring = @"This is a String!";  
//2、先创建一个空的字符串,然后赋值;
//    alloc和init组合则适合在函数之间传递参数,用完之后需要手工release
    NSString *astring = [[NSString alloc] init];
    astring = @"This is a String!";
    NSLog(@"astring:%@",astring);
    [astring release];
//3、在以上方法中,提升速度:initWithString方法
    NSString *astring = [[NSString alloc] initWithString:@"This is a String!"];
    NSLog(@"astring:%@",astring);
    [astring release];
//4、创建临时字符串
    NSString *astring;
    astring = [NSString stringWithCString:"This is a temporary string"];
    NSLog(@"astring:%@",astring);
// OR
    NSString *  scriptString = [NSString stringWithString:@" tell application \"Mail\"\r"];
//5、创建格式化字符串:占位符(由一个%加一个字符组成)
    int i = 1;
    int j = 2;
    NSString *astring = [[NSString alloc] initWithString:[NSString stringWithFormat:@"%d.This is %i string!",i,j]];
    NSLog(@"astring:%@",astring);
    [astring release];

-----从文件读取字符串-----
    NSString *path = @"astring.text";
    NSString *astring = [[NSString alloc] initWithContentsOfFile:path];
    NSLog(@"astring:%@",astring);
    [astring release];

-----写字符串到文件----    
    NSString *astring = [[NSString alloc] initWithString:@"This is a String!"];
    NSLog(@"astring:%@",astring);
    NSString *path = @"astring.text";   
    [astring writeToFile: path atomically: YES];
    [astring release];   
-----比较两个字符串-----
//1、用C比较:strcmp函数
    char string1[] = "string!";
    char string2[] = "string!";
    if(strcmp(string1, string2) = = 0)
    {
        NSLog(@"1");
    }
 //2、isEqualToString方法   
    NSString *astring01 = @"This is a String!";
    NSString *astring02 = @"This is a String!";
    BOOL result = [astring01 isEqualToString:astring02];
    NSLog(@"result:%d",result);
//3、compare方法(comparer返回的三种值:NSOrderedSame,NSOrderedAscending,NSOrderedDescending)   
    NSString *astring01 = @"This is a String!";
    NSString *astring02 = @"This is a String!";   
    BOOL result = [astring01 compare:astring02] = = NSOrderedSame;   //NSOrderedSame 判断两者是否相同
    NSLog(@"result:%d",result);   

    NSString *astring01 = @"This is a String!";
    NSString *astring02 = @"this is a String!";
    BOOL result = [astring01 compare:astring02] = = NSOrderedAscending;   
    NSLog(@"result:%d",result);
    //NSOrderedAscending 判断两对象值的大小(按字母顺序进行比较,astring02大于astring01为真)

    NSString *astring01 = @"this is a String!";
    NSString *astring02 = @"This is a String!";
    BOOL result = [astring01 compare:astring02] = = NSOrderedDescending;   
    NSLog(@"result:%d",result);     
    //NSOrderedDescending 判断两对象值的大小(按字母顺序进行比较,astring02小于astring01为真)
 //4、不考虑大小写比较字符串1
    NSString *astring01 = @"this is a String!";
    NSString *astring02 = @"This is a String!";
    BOOL result = [astring01 caseInsensitiveCompare:astring02] = = NSOrderedSame;   
    NSLog(@"result:%d",result);     
    //NSOrderedDescending判断两对象值的大小(按字母顺序进行比较,astring02小于astring01为真)
//5、不考虑大小写比较字符串2
    NSString *astring01 = @"this is a String!";
    NSString *astring02 = @"This is a String!";
    BOOL result = [astring01 compare:astring02
                            options:NSCaseInsensitiveSearch | NSNumericSearch] = = NSOrderedSame;   
    NSLog(@"result:%d",result);     
    //NSCaseInsensitiveSearch:不区分大小写比较 NSLiteralSearch:进行完全比较,区分大小写 NSNumericSearch:比较字符串的字符个数,而不是字符值。

三、打印日志

    NSLog(@"%@ ",order);//打印字典

    NSLog(@"%@ ",imageUrlString);


    
[3] 查看某个索引下的文件内容
    来源: 互联网  发布时间: 2014-02-18
查看某个目录下的文件内容
grep -r "spring.profiles.active" ./

JAVA_OPTIONS="-Xmx512m -Xms512m -Xss256k -XX:MaxPermSize=256m  -Djava.awt.headless=true -Dspring.profiles.active=test"

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android双击返回键退出程序的实现方法 iis7站长之家
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3